|
前回、NPCの基本設定を終えましたので、今回はNPCの生活する場所を決めそこに設置し、生活サイクルであるAIを設定してみます。
※記事の最下部でサンプルMODを配布しています。
1.NPCを設置する
AIを設定する際はあらかじめNPCの配置場所が決まっていた方がやりやすいので、最初にNPCを設置してみます。
ICの西門を出て橋を渡ると、「Wawnet Inn」という宿屋があると思います。
このNPCをその宿屋の看板娘としてそこに住ませてみようと思います。
まず、「Cell View」の「World Space」のプルダウンメニューからから「 Interiors」を開きます。
一番上にあるので恐らく最初から表示されていると思います。
ここには建物内のCellが格納されています。
下の一覧からエディターID「WawnetInnTavern」というものを見つけてダブルクリックして、Render Windowに表示させてください。
Render Windowにセルが表示されたら、作成したNPCをそこに配置します。
この建物は非常に天井が低く、Render Windowではものすごく内装が見難いのですが、なんとか1Fの真ん中当たりに配置してください。
配置が完了したら、AIの設定に移ります。
2.AIの設定
作成したNPCの編集画面を開き下にある「AI」ボタンを押すと、AI設定画面が表示されます。
まずは上部にある「AI Attributes」の項目を設定していきましょう。
[Aggression]
他のアクターに対して、友好度がここで設定した数値以下になると戦闘を開始します。
この数値を5以下に設定すると、このNPCはどんなに友好度が下がっても戦闘を始めませんが、攻撃をされると戦闘を開始します。
この数値を0に設定すると、攻撃を受けても戦闘は開始しません。
今回は5に設定します。
[Confidence]
戦闘中に戦うか逃げるかの設定。数値が高いほど逃げません。
一般NPCなので50のままでOKです。
[Energy Level]
AIのWenderパッケージを実行中、どの程度動き回るかの設定。
若いので多少頻繁に動いてもらいましょうってことで70に設定しました。
[Responsibility]
犯罪に対しての責任感の設定。
30以下にすると、このNPCは犯罪を犯します(食べ物を盗むなど)。
100に設定すると、このNPCが犯罪を目撃した場合直接ガードに通報できます(鬼の速さでガードが現れます)。
ここは50のままでOKです。
このような状態になりました↓
次はAIパッケージの設定を行います。
注意!!
既存のAIパッケージに変更を加えてしまった場合、そのAIを搭載している全てのNPCに影響が出ますので、なるべく新規にパッケージを作成したほうが安全です。
今回は全て新規にパッケージを作成します。
まず設定を始める前に、このNPCの生活パターンを決めます。
あまり複雑だと上手くAIが作動しなくてイライラするので、とりあえず簡単なAIのみで構成します。
- 12〜2時まで食事。
- 20〜22時まで食事。
- 0〜8時まで睡眠。
- 空いてる時間はうろつく。
こんな感じでやってみましょう。
※全て説明するとかなり大変なので、今回必要なことだけ説明します。
3.Wanderパッケージの作成
まず最初に、うろつくための「Wander」パッケージを作成します。
新たなAIパッケージを作成するので、下の画像の位置で右クリック>Newを選択してください。
下のようなAI Package画面が出るので、任意の分かりやすいパッケージIDを入力し、package typeから「Wander」を選択してください。
今回は空いた時間(どのAIも当てはまらない時間帯)にうろつかせたいので、このパッケージは時間の設定をしません。ロケーション(うろつかせる場所)の設定のみいたします。
下にある「Location」タブを開いてください。
開いたら「Near Editor Location」にチェックを入れ、その下にある「Radius」の欄に500と入力してください。
これは「NPCの初期位置(設置した場所)から半径500の範囲でうろつく」というAIになります。
この500というのが一体どの程度の範囲なのか良く分からないのですが、室内の場合はこれで大丈夫だと思います。
ちなみに隣の「Near Current Location」とは、「NPCが現在いる位置を中心に」という意味です。
広い野外ならこちらの方が行動範囲が広がりますが。室内ではNear Editor Locationにした方が良いと思います。
出来たら「OK」ボタンを押してこの画面を閉じてください。
NPCのAI Package Listに今作成したAIが搭載されました。
4.Eatパッケージの作成
次は食事をさせるための「Eat」パッケージを作成します。
☆Eatパッケージについて☆
指定されたロケーションで食事をします。基本的に所持している食べ物を食べますが、所持していない場合は食べ物を探して徘徊します。
最初に設定したResponsibilityが30以下の場合は、人のものを盗んで食べます。(犯罪です)
食べ物を所持している場合、移動範囲内に椅子がある場合はランダムで座りますが、座る椅子を指定することもできます。
今回の場合、食べ物を所持していないので、このままでは食べ物を探してうろつくだけになってしまいますが、対処法は後記いたします。
先ほどと同じようにAI Package List内で右クリック>Newを選択し、AI Package作成画面に移ります。
同じく分かりやすいIDを決めて入力し、package typeから「Eat」を選択します。
まず最初にこのパッケージの動作する時間の設定をしますので、下記画像のように設定してください。
TimeとはそのAIが作動する時間で、DurationはそのAIの継続時間です。
今回はTimeが「12」、Durationが「2」なので、「12時から2時間食事をする」ということになります。
その他に「Day of week」は曜日、「Month」は月、「Date」は日にちになります。
今回は毎日食事をさせるのが目的なので、「-Any-(指定無し)」の状態になっています。
次にロケーションの設定をします。
内部セルを設定しておけば勝手にどこかの椅子に座りますが、今回はあえて座る椅子を指定してみます。
Render Windowで、座らせたい椅子を選択しダブルクリックして、そのオブジェクトのReference画面を開きます。(AIパッケージ作成画面は開いたままでOKです。)
Reference画面が開いたら、「Persistent Reference」にチェックを入れてください。
AIやスクリプトで特定のオブジェクトを指定する場合は、この「Persistent Reference」にチェックを入れなければ選択できないようになっています。
チェックを入れたらOKを押してReference画面を閉じます。
AI Package画面に戻り、「Location」タブを選択します。
Locationタブを開いたら、「Location」にチェックを入れ、そのすぐ下にある「Near Reference」にチェックを入れます。
ロケーションに特定のセルやオブジェクトを指定する場合は、ここで指定することになります。
チェックを入れたら、すぐ下にある「Select Reference in Render Window」というボタンをクリックします。
すると、自動的にRender Windowへ移動します。
そのときポインタが赤いマークになっていると思いますので、先ほど「Persistent Reference」にチェックを入れた椅子の上に持っていきましょう。
するとポインタが白に変わると思います。
その状態で椅子をダブルクリックすることで、Near Referenceにその椅子がロケーションとして設定されます。
※ポインタが赤いマークに変わっているときにRender Window内で視点を動かしたりすると、ポインタが普段の矢印に戻ってしまいますが、その場合は再度「Select Reference in Render Window」ボタンを押してボタンを元に戻し、もう一度ボタンを押してやり直してください。
これでこのEatパッケージが発動したときは、NPCは指定した椅子に座って食事をするようになりました。
「OK」を押してAI Package画面を閉じてください。
続いてもう一つのEatパッケージを作成しますが、これは今し方作成したEatパッケージを利用し、時間とIDだけ変更して作ります。
AI Package Liasから先ほど作ったEatパッケージを選択し、右クリック>Editを選択します。
AI Package画面が開きますので、IDを変更した後、ScheduleタブでTimeを20に変更します。
するとお馴染みの「IDが変更されました。新しく登録しますか?」のメッセージが出るので「はい」をクリックします。(いいえを選ぶと先ほど作ったパッケージが変更されてしまいます)
これでもうひとつのEatパッケージが出来上がりました。
しかし、AI Package Listには載っていませんね。
でもAI Packageとしてきちんと登録されていますので、上部メニューバーの「Character」から「Packages」を選択しAI Package一覧を表示させます。
そこから作成したEatパッケージを選択し、AI Package Listへドラック&ドロップで持ってきます。
これで新たなEatパッケージがAI Package Listに登録されました。
現在は3つのAIが搭載されたことになります。
5.Sleepパッケージの作成&寝床の確保
☆Sleepパッケージについて☆
特定のロケーションが設定されている場合は、そのローケーション内で寝床を探し、所有者がおらずなおかつ誰も使用していない寝床があればそこで寝ます。
寝床を直接指定することもできます。
特に特定のロケーションが設定されていない場合は、現在いるセル内で寝床を探します。
Sleepパッケージを作成するわけですが、その前に寝床を確保しなければなりません。
このセル内には客室以外で寝床が2つあります。
1つは女将(Nerussa)の足元(カウンターの中)、もう一つは地下です。
Nerussaの足元の寝床には特に所有者はいないようですが、地下のベッドはNerussaの所有物に設定されています。
つまりこのままだと寝れる場所はNerussaの足元のベッドロールのみとなってしまうわけですが、どうやら地下のベッドは所有者はNerussaとなっていますが、Nerussa自体は特にそこで寝るようには設定されているわけではないようです。
所有者として設定されているのは、他人やPCがそのベッドで眠るのを防ぐためだと思われます。(金払わずに眠れてしまうので。誰かの所有物だと「人のベッドでは寝れません」というメッセージが出る)
クエストに影響するような大事なベッドだったら変更するのはまずいですが、今回は特に問題なさそうなので、地下のベッドの所有者を、作成したNPCにしてしまいましょう。
Render Windowから地下のベッドをダブルクリックしReference画面を表示させます。
「Ownership」タブを開き、NPCのプルダウンメニューから、作成したNPCを選択します。
ついでに「Persistent Reference」にもチェックを入れ、後ほどSleepパッケージ作成時にロケーションとしてこのベッドを直接指定できるようにしておきましょう。
出来たらOKを押して画面を閉じます。
これで寝床が確保できたので、Sleepパッケージの作成に入ります。
他のパッケージを作成したときと同様の手順で、NPCのAI画面のAI Package Listで右クリック>Newを選択し、AI Package画面を開きます。
分かりやすいIDを入力し、Package typeを「Sleep」に変更した後、ScheduleタブでTimeを0に、Durationを8に変更します。
これで0時から8時間眠るという時間の設定が出来ました。
次は眠る場所を設定します。
Eatパッケージを作成したときと同じ要領で、Locationタブを開き「Location」と「Near Reference」にチェックを入れた後、「Select Reference in Render Window」ボタンを押してRender Windowから先ほどのベッドをダブルクリックします。(ポインタが白くなっていることを確認。白くならない場合は、ベッドのReferenceで「Persistent Reference」のチェックを入れ忘れてる可能性が高いです)
このような状態になればOKです。OKを押してAI Package画面を閉じてください。
これでNPCのAI Package Listには4つのAIが搭載されたはずです。
早速テストプレイと行きたいところなのですが、その前にAIパッケージの並び順を調整しましょう。
基本的にAIはAI Package Listの上から順に優先度の高いものを実行します。
なので、時間順に並べた方が不具合が少なくて済みます。
時間の設定されていないWanderパッケージは一番下に持ってきましょう。
下記の画像を参考に、並び順を調整してください。
ここまで出来たら、Saveボタンを押してAI画面を閉じます。
NPCの編集画面に戻ったらOKボタンを押して画面を閉じましょう。
とりあえずここでespをセーブしておきます。
そしてテストプレイ!と行く前にもう一つだけやることが・・・;
Eatパッケージを作りましたが、食べ物の問題を解決しなければなりません。
現在は食べ物を持っていないので、Eatパッケージが働くと食べ物を探してうろうろします。
Responsibilityを下げて犯罪を犯すようにすれば、テーブルの上のものなどを適当に盗んで食べますが、ガードにぶっ殺されてしまいます。
とりあえず問題を解決するには2つ方法があります。
1つは「Faction」を新たに作り、そのFactionを女将であるNerussaと作成したNPCに設定することです。
現在の建物は、所有者がNerussaに設定されており、建物内にあるアイテムは自動的にNerussaの所有物となっています。(個別に設定してるものは除く)
なので、新たなFactionを作り、Nerussaと作成したNPCに設定し、この建物の所有者をそのFactionの所有物と設定することで、建物内のアイテムをとっても犯罪にはなりません。(ギルドと考えると分かりやすいかも。ギルドに加入した際にギルド内の建物のアイテムをとっても犯罪にならないのはこのFactionが設定されているからです)
もう一つは単純に食べ物を持たせることです。
しかし、当然ですが食べ物は食事のたびに減っていきます。食べ物が無くなれば結局探して歩き回ることになります。
だからといって大量に持たせるわけにもいかないので、解決策としては永遠になくならない食べ物を持たせることです。
Eatパッケージがもっとも美しく働くにはやはり食べ物を所持していた方が良いので、今回は永遠になくならない食べ物を持たせてみようと思います。(ちなみにこの宿屋によく現れるガードは、永遠になくならないエール酒を持ってますw)
ちなみにこの方法を行うと、ピックポケットやMODなどを使用してゲーム内でNPCのインベントリ画面を開くたびにそのアイテムが倍に増殖するという現象が起こります。やり続ければすさまじい数に増えます。
それが気になる人はアイテムを持たせずにうろつかせておいても問題はありませんし、Eatパッケージ自体を外してしまっても構いません。(食事をしなくてもNPCは死にません)
6.永遠になくならない食べ物を持たせる
まず作成したNPCの編集画面を開きます。
その後に、Object Windowから適当な食べ物を、NPCのInventoryタブのリストの中にドラック&ドロップで放り込みます。
Object Windowの左のツリーから「Item」を展開し「Ingredient」を選択して右側に一覧を表示させてください。
一覧が表示されたら、適当なアイテムを選択して、NPCのInventoryにぶち込みます。
食べ物なら何でもよいですが、Corn(トウモロコシ)あたりにしておきましょう。
放り込んだら、NPCのInventoryのリストの「Count」という欄に注目してください。
ここの数字は、そのアイテムの所持数を意味しています。
現在は全て1になっているはずです。
Cornの横の数字も当然1になっていますが、その数字を変更し「-1」にしてください。
数字の変更方法は、まずリスト内のアイテムを選択後、もう一度クリックします。(ダブルクリックではない点に注意!少し間を空けてからもう一度クリックします)
すると数字の部分が変更可能になりますので「-1」と入力してください。
これで永遠になくならない(増え続ける?!)トウモロコシができました。
OKを押してNPCの編集画面を閉じたらespをセーブしてください。
お疲れさまでした。
7.ゲーム内で確認
それではMODを適用し、ゲーム内で確認してみましょう。
中に入ると、何故かTwin Tailの姿が見当たらない・・・と思ったら、2Fに上がってました。
そして食事の時間。
指定した席できちんと食べてます。
食後は女将と会話。
そして2度目の食事。1口食べるたびに見ないで下さい(;´ω`)
おやすみの時間。指定したベッドで寝てくれました。
寝顔サービス。顔が埋まってますね・・・
そして女将・・・w
一通り確認しましたが、上手く動いてくれました。(良かった・・・)
もし上手く行かなかった人はどこに原因があるか探ってみてください。
「お前の説明が原因だ!」とかは無しでお願いします^^;(がんばったんですよ、これでも・・・orz)
今回作成したNPCのサンプルMODを一応配布いたします。
AIの確認などに使用してください。
しかし、いくつか問題があります。(大した問題ではないですが・・・)
まずフェイスについて。
lainはMysticElfのFeminineに限り、フェイステクスチャを別のものに差し替えています(しかもNec MysticElf用)。
なので、標準のRen's Beauty Packのテクスチャを使用している人はかなり見た目が変わります。
それと目がちょっと寄りすぎている感があり、少し離した方がいいかも・・・
もう一つは髪形について。
lainは髪型によって追加種族の頭部がハゲるのを防止する為に「THE CONFORMULATOR」というツールを使用して、頭の形に合わせて髪の毛も変化するようにしています(THE CONFORMULATORの使用方法はOblivion WikiJPを参考にしました)。
なので上記の処理を行っていない場合、もしかしたら頭部がハゲている可能性があります(未確認)。
それと、今回説明したこと以外は全く手を付けていませんので、あくまで確認用と割り切って使用してください。
上級者の方には無用の産物です^^;
以上のことを踏まえたうえで、ご利用は自己責任でお願いしますm(_ _)m
2007/12/14 追記
フェイスを変更、現在記事で使用しているツインテールちゃんと同じにしました。
それとlainが使用しているフェイステクスチャは、「BABFINALUPDATE」に同じものが同封されていましたので、使いたい方はBABFINALUPDATEをDL後、Textures\Characters\Ren\Nec_MysticElf\Female内の「Nec - FaceFemale.dds」というテクスチャをリネームして使ってください。
Construction Set(CS)弄り
- CSを使って取れない装備を無理やり入手する方法
- MODから特定の品のみ抜き出してMOD化する方法
- オリジナルNPCを作ろう! 1.既存NPCのクローンを作ってみよう
- オリジナルNPCを作ろう! 2.新規NPCを追加する
- オリジナルNPCを作ろう! 3.NPCの基本設定
- オリジナルNPCを作ろう! 4.装備品の設定
- オリジナルNPCを作ろう! 5.AIパッケージの作成・設定
lainさんの記事読んで、はじめてCSの使い方がわかりました。ほんとにありがとう〜!
通常記事も楽しく読んでます! 羽っこさんのその後がとても気になります。
コメントありがとうございます(T▽T)
とにかく作業手順をハショらずに書くということを念頭に置いたので、分かりやすいといっていただけて良かったです><
また気が向いたら何かやるかも知れませんのでよろしくお願いします^^
アサシンクエの方は更新がちょっと止まってますが、近いうちにUPします!
クエも終盤に入ってきたので、このまま終わってしまうのがなんか寂しい気持ちに^^;
lainさんの書いているように、CSとゲーム内で顔の見え方がぜんぜん違うので驚きました。
CSだとすっごい不細工に見えても、ゲーム内だと「あら、意外と見られる」って感じだったり(その逆も)。
こんな開発ツールまでついてて、Oblivionすごいゲームだなぁ。でも、CSに手を出し始めてから、ますますクエストしなくなりそう^^;
羽っこさんのお話のつづきも、楽しみにしてま〜す!
ちなみに羽っこさんはCSだと完璧に魔女になります。
でも、どちらかというとそれが真の姿なのかも…。
家なんか作り始めると本当にゲームどころではないので注意してください(笑
でも楽しいんですよね〜。
「オリジナルNPCを作ろう!」の記事がすごく参考になりました。
分かりやすく一から丁寧に説明してくださっているので、CS 超初心者の私でもなんとか作れました!
どうもありがとうございます!
これからもプレイ日記がんばってください。
簡単なことしかやっていませんが、作成の流れを掴んでいただければm(_ _)m
他にも何かCS講座記事を書いてみようかとも思ったのですが、どんなことをやればいいかまだ決めかねています^^;
こういうコメントいただけると力がわいてきます 笑
とても参考になりました。
NPCのAI設定が理解できなくて、うろつくだけのNPCしか作れなかったんですが、生活するNPCを作れるようになりました。おかげさまで、Oblivionの楽しみが倍増です。
私のブログからこちらの記事にリンクを貼らせていただきました。ご迷惑でなければ、幸いです。
これからの記事も楽しみにさせていただきます。
しかもリンクまで張っていただいて恐縮千万でございます<(_ _)>
pelaさんもブログ持ってらっしゃるんですね。
見に行かせていただきます−=≡ヘ(* - -)ノ
最近おぶり始めたばかりの初心者です。
CSの基本の使い方がなかなか理解できなかったのですが、こちらの記事を参考にさせて頂いたおかげで思い通りにできました(´∇`)
ありがとうございます!
自分のブログでこちらの記事を紹介させて頂きました。
もし問題などあればご一報下さいm(._.)m
そちらのブログにコメント入れておきました><
オブリ初心者です。
記事どおりにやったらNPC作成うまくいきました!
これからも参考・・・
いや、バイブルとして読ませていただきます!!
ありがとうございましたw
最近CSをいじり始めたのでこういった解説はホント助かります
CS使えると幅が広がって楽しいですね
(使い勝手はかなりアレですががががが)
いざ我が家にもツインテールちゃん召還!と思ったら
4sharedからのDlが出来なくなっておりました
なんという、時既にお寿司!_/\○_
CSはいじり始めるときりが無いですね〜。
うちも一時期寝る間も惜しんでいじり倒してました^^;
今では面倒でほとんどCS使わずに済むようにしていますw
使い勝手はホントにさいあく;何とかなら無いモンですかねぇ・・・
4sharedのほうは、おそらく数ヶ月間放置していたためアカロックされた模様;
ヤフブリのほうも1ヶ月でアカウントロックされるようになったみたいだし、どうしたものか・・・
ツインテールちゃんに罵られる夢の日々ががが。・゚・(ノД`)・゚・。
ナイスな保管庫でもあれば良いんですがねえ・・・
あと、最近自分もblogをつくろうかなとチョコチョコやっとります
こちらのblogも紹介させて頂きたいなと思っています(*´ω`)ゞ
ネタ集めが難しいです(ノ∀`)