忍者ブログ

方向音痴のSkyrim

PCゲーム「Skyrim」の雑多なCKいじり日記

NPCに毒リンゴを食べさせる

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

NPCに毒リンゴを食べさせる

前作オブリビオンでは、NPC達は食事の時間になるとその場にある食べ物アイテムを探して拾い、実際に消費するお食事AIを持っています。
このAIのために闇の一党クエストでは、「毒リンゴ」という食べ物アイテムをNPCの食卓に置き、食べるのを待つという暗殺手段が使えるようになっています。

ところが残念なことに、スカイリムのお食事AIは飲食アニメーションを再生するだけの「食べているふり」になってしまってます。しかし「アイテム取得→消費」の行動パターンはちゃんと用意されていて、設定値1つでそちらの行動に切り替えることが可能。
簡単ですのでさっそく試してみました。


CKを起動し、Skyrim.esmとUpdate.esmを読み込みます。
Object Windowの左欄で、Character > Packageを選択。右側にずらっとAI Packageが出るので、「FaendalEatStump12x1」というPackageを見つけてダブルクリックで開きます。名前の通り、ファエンダルがリバーウッドの製材所にある大きな切り株で昼食をとるAIです。
開いたら、まずは「Package Template」が「Eat」なのを確認します。テンプレートが「Eat」じゃないとこの方法は使えません。食事用スケジュールとして「Sandbox」のテンプレートが指定されている場合もありますが、「Sandbox」では食べているふりしかできません。

ファエンダルの昼食Packageはテンプレートが「Eat」ですので改造可能です。
Public Package Dataを見ていきましょう。
一番上にある「Eat Location」は食事をする場所です。ここでは切り株に目印として設置された  XMarker の周囲 256 Radius が食事場所として指定されています。この範囲が食べ物を探す範囲にもなるため、余裕をもって512 Radius に変更しておきます。



さて、こちらが「食べるふり」をするかしないかの設定になります。
恐らくほぼすべてのNPCが「CreatFakeFood」が "True" になっていると思います。これだと「食べるふり」をするだけになります。
そういったわけで、"False" に変更します。これだけで「食べ物を探す→拾って食べる」という行動がONになります。



最後に「AllowAlreadyHeld」を "False" にしておきます。推奨設定は "True"ですが、今回は動作テストのために変更します。

これは自分のインベントリもアイテム捜索範囲に含めるかどうかの設定です。自分のインベントリから優先的にアイテムを探してほしい時は "True" 。食べ物を持っていたらそれを食べ、持っていなかったらEat Locationの範囲で探して拾う行動になります。
今回は「アイテム探して拾う→食べる」の行動を明確に観察したいので、自分のインベントリは無視できるよう"False"にしました。

これでOKボタンを押してPackageを確定。ファイルをセーブして、ゲーム内でファエンダルの行動を観察しましょう。



製材所の切り株に、テストとして赤いリンゴを転がしました。
このAIでは、NPCは他人のアイテムは拾いません。プレイヤーが捨てたアイテムは所有権がないので、確実に拾ってくれるはず。



置いた場所が悪くてなかなか近づいてくれませんでしたが、切り株の上にワープして取ってくれました。
こちらが拾った直後。



リンゴを拾ったファエンダルが座って食事を始めました。リンゴがなくなっています。
食事を始める瞬間、プレイヤーが食べ物アイテムを使用した時と同じ音がします。これがNPCに実際に食事をさせる時の欠点です。人が多いと食事開始時はかなりうるさいかも。



ファエンダルが拾って食べてくれればAIの変更は成功です。
最後に「毒リンゴ」を用意しましょう。デフォルトでは食べてダメージを受けるような食品は存在しないので。

Object WindowにてMagic > Potion > CLUTTER > Foodを選択。右側の欄から「FoodApple」のデータを探して選択し、右クリック > Duplicate でコピーを作成。
コピーを開いて右側の「Results」欄にあるEffectをダブルクリック。上図のようにEffectを「AlchDamageHealthDuration」に変更します。Magnitudeは10、Durationは1分。



計600ポイントの体力ダメージを与える毒リンゴが出来上がりました。
いわゆるModで追加されたアイテムとなりますが、右下の「Food Item」のところにチェックが入っていれば食べ物として扱われるため、問題ありません。



作成したリンゴは製材所の机の上に設置しました。
これを一度拾って、切り株の所に置きます。



先ほどと同様に、切り株の上のリンゴを拾って食事を始めたファエンダル氏。
再生されるアニメーションはランダムみたいです。リンゴ食べてるのにコップを持っています。



食事を初めて数十秒後。突然断末魔を上げてお亡くなりになりました。
すごく分かりにくいですが、切り株に埋まってます。死んだ場所が悪かったのかもしれません。
なおこの殺人で、プレイヤーにお咎めが来ることはないです。

このようにAI Packageの「CreatFakeFood」の項目を "False" にするだけで、NPCは実際にアイテムを消費し、その効果も受けるようになります。毒のスリ渡しとはまた違った楽しみが味わえるのではないでしょうか。
ドラゴンズリーチの広間にいる人々のAIをこれに変更し、食べると変な効果の出るアイテムを作って暖炉前に配置。誰が一番運が悪いか観察するのも面白いかもしれません。

スカイリム全土の人々にも実装するとなれば、「Eat」のテンプレート側を編集してしまうのが一番楽でしょう。

前へ | 次へ
PR

コメント

※スパム対策のため、コメント内やその他の項目に「http://」や「https://」があると投稿できません。全角で入れていただくか、URLであることを明記して以降のアドレスのみ入れていただくかでお願いします。 For stopping spam comments, this form doesn't accept the following words, "http://" and "https://".

Author

UNI
Skyrimで遊ぶのも、CKで改造するのも好きなファンタジー好きです。
戦闘苦手で難易度は基本EASY、慣れてもNORMAL程度。 アンデッド恐怖症なので、ノルド遺跡探索が辛い……。

ブログ内検索