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

MOD作り15
「落とす松明」に付けるスクリプトの中身をどんなものにしたか、簡単に解説していきたいと思います。

都合、4つのブロックに分かれました。

■まず一つ目、「begin OnActivate」で「落とす用の松明」を拾った時に「ヴァニラの松明」に交換するスクリプトを書きました。
このブロックは、スクリプトの中でも最初に書いています。
後ろのほうに書くと、なぜか正常に動きませんでした。
ちなみにこの部分は「begin OnAdd」でもよさそうですが、そうすると後述するリスポーン時の処理の時に誤動作を引き起こしそうだったので「begin OnActivate」で書きました。

以下が実行する内容で、
Player.AddItem Torch02 1
LightRef.Activate Player
Player.RemoveItemNS Torch02DropLight 1
Activate Player
Player.RemoveItemNS Torch02Drop 1

…という感じです。

1行目でヴァニラの松明を追加しています。
2行目で「LightRef」をスクリプトでアクティベートしています。このRefIDは、「松明の明かり」です。
 明かりは「Can carry」にチェックを入れて作ったため、このスクリプトで強制的にアクティベートして持ち物の中に入れます。
3行目で持ち物の中の「松明の明かり」を「RemoveItemNS」を使って消去します。
4行目で「落とす用の松明」をアクティベートして持ち物の中に入れます。
5行目で「落とす用の松明」を「RemoveItemNS」を使って消去します。


プレイヤーが落としたアイテムはリスポーンしても消えず、Disableしても残っていることは以前の記事で実験済みなので、このようにして「落とす松明」と「松明の明かり」を一旦取得してから消すことで、世界から完全に消去しています。


■二つ目の「begin OnLoad」では、主に「松明の明かり」を召喚する部分です。
 それが、
Set LightRef to PlaceAtMe Torch02DropLight

ここでは、「PlaceAtMe」というコマンドを使っています。これは指定したモノを呼び出す(実質新しく作り出す)ことが出来るコマンドで、しかも、呼び出すと同時にそのオブジェクトのRefIDを取得することも出来ます。
この命令文では、「Torch02DropLight」というモノを呼び出すと同時にそれを「LightRef」というRef変数に格納しています。


・また、ここでは「SetOwnership」のコマンドも実行しています。どうやら、スクリプトで落としたアイテムの所有権は、そのセルの所有者のものになるらしく、お店の中で落としたら、泥棒呼ばわりされてしまいました。
 なので、このコマンドで松明の所有権をプレイヤーの物にする必要があります。


・さらに、2度目のロードが起こるまで放っておいたら、消すという処理も付け加えました。
 上記のものと内容は同じです。


■三つ目の「begin OnReset」は、リスポーン時にまで放っておいたら、消すという処理です。

「落とす松明」と「松明の明かり」を一旦取得してから消すことで、世界から完全に消去しています。
上記のものと内容は同じです。



■四つ目の「begin GameMode」では、明かりを松明に追従させる処理です。

set fPosX to getpos x
set fPosY to getpos y
set fPosZ to getpos z
LightRef.SetPos x, fPosX
LightRef.SetPos y, fPosY
LightRef.SetPos z, fPosZ

まず、「getpos x, y, z 」で「落とす用の松明」の指定した軸(X, Y, Z)におけるその現在の位置を取得して、「fPosX」「fPosY」「fPosZ」という変数に格納しています。
その後、「SetPos x, y, z 」で「LightRef(松明の明かり)」を取得した数値にセットしています。
これを毎フレーム繰り返すことで、明かりを松明に追従させることが出来ます。

初めは、「MoveTo」を使ってみたのですが、それだとうまく動きませんでした。
どうも、「MoveTo」は対象がActorの場合でしか正常に働かないようです。



これが、大まかな内容です。
スポンサーサイト

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

コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://5588ob.blog.fc2.com/tb.php/45-9c5d61b7
この記事にトラックバックする(FC2ブログユーザー)

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