今更なオブリビオンブログ
おもにMOD関連のメモを書いていくと思います、MODをいじったり、作ってるのが楽しいです。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AutoToggleMOD
前の記事のMODなんですが、ちょっとだけ機能を追加しました。

http://www.4shared.com/zip/zLgpANC0ba/AutoToggleMOD_v101.html

■概要

・三人称視点時に弓を構えた時に自動で一人称視点に切り替えをします。

・スニークの意味が無い状態の時に自動でスニークの解除をします。

 これは要するに、スニーク中に武器を構えていて、戦闘中という条件の時に時に自動でスニークの解除をします。
 おそらくスニークアタック成功(失敗)後に自動でスニークの解除をすると思います。

続きを読む

テーマ:Oblivion - ジャンル:ゲーム

便利MODを作ってみよう2
また、ちょっとした便利MODを作っています。

三人称の視点の時に弓矢を構えた時に自動的に一人称に変更するMODです。


float fQuestDelayTime

begin gamemode
 if fQuestDelayTime != 1
  set fQuestDelayTime to 1
 endif

 if IsThirdPerson == 1 && player.getweaponanimtype == 3 && Player.IsWeaponOut == 1
  TapControl 14
 endif
end


以上が全文です。
上記のものを適当な名前でクエストスクリプトとして作り、新規クエストに付ければ作れます。
わりと単純で、このスクリプトを書く時間よりも、CSWikiで使える関数を探している時間のほうが長かったくらいです。

これにはOBSEの追加関数を二つ使っています。「IsThirdPerson」と「TapControl」がそうです。
・「IsThirdPerson」は、現在三人称の視点の時に1を返すコマンドで、現在の視点を判断するのに使えます。
・「TapControl」は、各種ボタンを押した時の操作をスクリプトで実行できるコマンドで、「TapControl 14」だと、視点変更(デフォルトでFキー)の機能になります。

テーマ:Oblivion - ジャンル:ゲーム

HotKeyConsumables
というわけで、作りました。
各種消耗品用のHotKeyです。

http://www.4shared.com/zip/mUcR-x7e/HotKeyConsumables.html

■概要
各種消耗品のHotKeyを追加します。

各種ポーションと、修理ハンマー、松明用のHotKeyが追加されます。
クエストアイテムにはしていないので、不要なものは捨てることが出来ます。


…本当はソウルジェム用のも作りたかったんだけど、手持ちのソウルジェムに現在魂が入っているかどうかを調べる方法がわからなかったので、それは保留です。

テーマ:Oblivion - ジャンル:ゲーム

便利MODを作ってみよう
いくつかのMODを出し入れしながらゲームをしていたらセーブデータが壊れてしまったので、また最初からやり直しています。
通算4回目となります。
それぞれ数百時間やってるから…結構長くやってるな。

自キャラはどうせあんまり顔を正面から見ないので、不快ではない程度の顔が出来ればそれでいいので、10分くらいで顔を作り終えて、さっさと初めちゃいました。
コンパニオンの場合はこだわりますが。


ちょっと話は変わりますが、自分は「ANB Item Switchers」というMODを使っています。
http://oblivion.nexusmods.com/mods/11256/
(正確には忘却のオブリビオンさんの所の日本語化された物を)
これはショートカットキーに登録することで、一つのキーだけで任意の複数のアイテムを種類ごとにショートカットとして使える、Switchersというアイテムを追加します。
いわゆるHotKeyのMODです。

便利ですが、それでもこれに個人的に足りないと思うものがいくつかあります。
そこで、追加のHotKeyのMODを作ろうと思います。


まず、個人的に足りないと思っている物の一つがリペアハンマーのHotKeyです。
ショートカットには基本的にどんなアイテムでも登録できますが、登録していても消費アイテムは、持っている分を全て使い切ると外れてしまいます。
リペアハンマーのHotKeyがあれば、ハンマーを使い切ってもショートカットから外れないため便利です。
前から作ろうと思っていたのをゲームをやり直し中に、思い出しました。(途中でこの現象に遭遇したため)


以下のスクリプトを付けた適当なMiscItemを作るだけです。
中身も結構単純なものです。

begin OnEquip
if MenuMode 1002 ==1
 Return
endif
 if Player.GetItemCount RepairHammer >= 1
  Message " "
  Message " "
  player.equipitem RepairHammer
  Return
 endif
 Message "修理ハンマーがありません"
end



・まず、開始条件には「begin OnEquip」を使います。
一見不自然ですがシステム的には「アイテムを装備する=アイテムを使う」なので、これでいいのです。

・最初に条件が「MenuMode 1002」の時に「Return」をしています。
この条件は、インベントリメニューを開いている時にアイテムを使った場合処理をスキップするためのものです。
これが無いと、メニューを開いている時のクリックでも以下のスクリプトを実行してしまいます。
無くてもいいかもしれませんが、事故防止のために付けた処理です。

・次の部分が本体の部分で、プレイヤーが修理ハンマーを持っているときに「equipitem」のコマンドを使ってアイテムを使わせて(装備させて)います。
半角スペースの「Message」が二つあるのは「equipitem」の時のメッセージを表示させないためです。
あとは、修理ハンマーを持っていない時にはその旨のメッセージを表示。
こんな所です。


SI等のMODで追加される、形態が変わる武器なんかは、その武器形態ごとにif文を増やせばその武器専用のHotKeyを作れます。

if 武器形態Aを所持
 武器形態Aを装備
elseif
if 武器形態Bを所持
 武器形態Bを装備
elseif
 Message "武器を持っていません"
endif


という感じです。ただし、これはその武器が一つしか所持していないことを想定しての処理です。
ホットキーMODを作る際の参考にしてください。

テーマ:Oblivion - ジャンル:ゲーム

スクリプトのスキップ
以前作ったMODで何故か実行されるべきコマンドが実行されていない、という現象がありましたが、(ZoomModDropTorchMOD、解決済み)調べてみた所、どうやら「オブジェクトスクリプト」や「マジックエフェクトスクリプト」は、実行頻度が高いかわりにスクリプトの実行がスキップされることがあるようです。

今までの自分のMODの動きから見ると、全部のスクリプトがスキップされるのではなく、最後の命令文のみがスキップされています。
なので、最後に実行する命令文にはスキップされても問題の無いものを持ってくるといいのかもしれません。

もしかすると、もっと重たい環境で実験すれば変わるかもしれませんが、それだとたぶんもうまともにゲームが出来ない環境になると思うので考えなくてもいいでしょう。
…いや、でもよく考えたら1フレームだけスキップされてもゲーム中にはよくわからないし、全部の処理がスキップされているかも…?

一方、クエストスクリプトは他と比べて実行頻度が低いものの必ず反応するようになっているそうです。
実際自分で作っていた時にクエストスクリプトはオブジェクトスクリプト並みの実行頻度には出来ないのは確認しています。


ヴァニラのクエストで、ダイアログのスクリプトでも、スキップされることがあるのを確認しました。
シーフギルドのクエストで、あるアイテムのクエストアイテムフラグがオフになるべき所を、クエストが終わってもそのままになっていることがありました。

そういえば、シギルストーンを取得しても、オブリビオン内に取り残されるという原因不明のバグがありますが、これって、このスクリプトのスキップが原因なんじゃないでしょうか?

テーマ:Oblivion - ジャンル:ゲーム



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。