17
2017  18:00:00

NPCの普段の行動 - Package


1024px-Bethesda_Game_Studios_logo 1


スカイリムに配置されているNPC、例えば、街を守る衛兵やスカイリムで出会う盗賊の類は、それほど重要な存在ではありません。しかし、それぞれが一日に何をするのか、一人一人が行動を設定されています。今回の記事では、このようなNPCの普段の行動を作ってみようと言う記事です。


リンク


今回の記事は、Creation Kit Wikiにチュートリアル記事を参考にしました。2つありますが、今回の記事は1番目の記事の方を参考にしています。

Packageを作成して、ある時間だけ、特定の行動をさせるというものです。

 ・Creation Kit Wiki: Bethesda Tutorial Packages


こちらの記事は、"Default Master Package"と言うものを使用しています。今回説明するPackageと違って、特定のPackageを使わなくても良い設定です。ザコ敵等の設定に良いみたいです。

 ・ Creation Kit Wiki: Bethesda Tutorial Encounters



Package - パッケージ


NPCの行動を決める方法は、スクリプトを使用するというもののありますが、基本的に"Package - パッケージ"と呼ばれるものを使用して設定します。

 ・Creation Kit Wiki: Package (Form)

 ・Creation Kit Wiki: Category:Packages



今回の記事では、Package Templateの細かい説明を省いています。いくつかはCreation Kit Wikiに解説が書かれています。残念ながら説明されていないものもありますが、他からの類推、単語からの推測で補うしかないですね。テンプレートについての解説は、こちらになります。

 ・Creation Kit Wiki: Category:Package Templates



ニラナイの場合


先日出したフォロワーModでは、"Niranye - ニラナイ"と言う商人NPCを参考にしました。昼間は、ウィンドヘルムの市場の屋台で仕事をして、夜は"New Gnisis Cornerclub - ニューグニシス・コーナークラブ"で食事をして、時間がすぎると家に移動すると言うものです。ちなみに、このNPCには裏の顔がありますが、それは別内容なので今日は関係ないです。たぶん。

Creation Kitで設定を見てみましょう。Object WindowのActors → Actorから、"Niraney - ニラナイ"の、タブは、AIPackagesです。フォロワーModを作る場合、この部分は、フォロワーになる前、一人でブラブラしてる時に使用されます。

Niranye - ニラナイ



AIPackage 010-1 Niranye AIPack 1



このNPCは普段の生活で4種類のPackageを使用しています。Packgeの設定で必要な項目は、"Packge"と"Schedule"です。また、あとの説明のために少し順番を変更しました。

Packageの名前には書式があるようで、「誰が」 + 「何をする」 + 「時間」の順に書かれています。「時間」の部分だけ少し特殊です。スカイリムでの時間の表示は24時制で、6時とあれば午前6時で、20時とあれば午後の8時です。また、"x2"は2時間続けると言う意味で、"x6"なら6時間続けると言う意味です。

名前だけでも結構なことがわかります、ニラナイは、朝8時から12時間仕事をし(どこで?)、夜の8時から6時間ニューグニシス・コーナークラブで酒を飲み、その後4時間は?となり、朝の6時から2時間朝食をとる(どこで?)と言うことが名前からわかります。

大体わかるのですが、不明な部分があるので、次に一つ一つ見ていきましょう。


8時から12時間


ニラナイは、この時間帯、ウィンドヘルムの市場で仕事をしています。Packageで指定する場合、"SandboxWorking"と言う"Template - テンプレート"を使用しています。

Package Template - SandboxWorking



AIPackage 102-1 Tmplate SandboxWorking 1



Locationで場所を設定できます。指定出来るものはCell View Windowに表示されたものです。大体は"Marker"と名前に入っているものを使用します。今回は、"WindhelmNiranyeStallMarketREF"を使用し、このREFから半径100を範囲としています。2枚目の画像の赤い直方体が"WindhelmNiranyeStallMarketREF"です。


移動した後、仕事をするのですが、スカイリムで仕事するというのは、"Furniture"(直訳すれば「家具」)と呼ばれるものを使用することのようです。Cell Viewだと、人の姿をしたものとオレンジ色の板で表現されています。ニラナイの場合は、赤い直方体の直ぐ目の前にある人形っぽいものです。このFurnitureは、"LeanTableMarker"と言うものです。Furnitureについてはよく知らないので、Furnitureを置けば勝手に仕事をしてくれるんだろうと思うことにして、先に進みます。

LeanTableMarker



AIPackage 044-1 Niranye Work Ref 1


ニラナイは、とりあえずここまで来るには来るのですが、他のMarkerを使用したり、別のNPCがニラナイのMarkerを使用する可能性があります。そこで、"Ownership"(所有者)を設定して、使用するNPCを限定します。"LeanTableMarker"をダブルクリックしてReferenceウィンドウを出して"Ownership"のタブを見ると、NPCの部分に"Niranye"の名前が見えます。

LeanTableMarker: Ownership



AIPackage 045-1 Niranye Work Ref 1


 ・Creation Kit Wiki: Reference

こう言う部分では、Rankは使用していないそうです。



このようにNPCを設定すると、使用するNPCを限定できるそうです。他の仕事をするMarkerを見ると、別のNPCの設定がされています。また、指定されていないものもあります、例えば付呪や鍛冶で使うための施設です。これは"None"(だれでもない)でした。プレイヤーが使えるようにするため、何も指定されていないんだろうと思います。

20時から6時間


この時間帯ニラナイは、ニューグニシス・コーナークラブで酒を飲んでいます。Package Templateは、"Eat"が使用されています。このテンプレートは、座れる場所を見つけて、どこからか食べ物を取り出して食事をすると言うものです。

Package Template: Eat



AIPackage 101-1 Tmplate Eat 1


 ・Creation Kit Wiki: Eat (Procedure)



これも場所を指定することが出来ます。"WindhelmNewGnisisCornerclubCenterMarker"をLocation(場所)に指定して、半径は500です。これは、ニューグニシス・コーナークラブの目印によく使われるMarkerです。画面の中央にある、赤いXのマークです。

WindhelmNewGnisisCornerclubCenterMarker



AIPackage 051-1 Niranye Eat Ref 1



移動後、座って食事をするための椅子を探します。酒場ですので、椅子は置かれていますが、ここの椅子も使用制限があって、"Ownership"が設定されています。ちょっと近くの椅子のReferenceを見ると、Factionが指定されています。

WindhelmCornerclubPatronSeat5



AIPackage 053-1 Niranye Eat Ref 1



ここでの設定はFactionです。"WindhelmCornerclubPatrons"となっています。FactionはActorのところで、アクター一人一人に指定するものです。Rankは上でも書きましたが、ここでは使用していないそうです。今回は、"WindhelmCornerclubPatrons"と言うFactionに加入しているNPCだけが、この椅子を使えるようにしています。酒場の他のFurnitureも見ましたが、どれもFactionが指定されていました。では、当のニラナイは、どうでしょう。Factionを見ると、こうなっています。

Actor: Niranye - ニラナイ: Faction



AIPackage 054-1 Niranye Eat Ref 1



入って、、、ませんね。色々調べたんですが、CK上ではFactionに加入していないようです。うーん、一体どういうことなんだろう。ゲームで確認する限り、椅子に座って食事をしてるんだけどなぁ。下の画像で座ってる椅子は、"WindhelmCornerclubPatronSeat3"です。調べると、こちらも"WindhelmCornerclubPatrons"がFactionに指定されていました。

ゲーム内のニラナイ



AIPackage 055-1 Niranye Eat Ref 1



Scriptを使わないと、ゲーム内でFactionを確認できないのが面倒ですね。他の客の"レヴィン・サドリ - Revyn Sadri"はちゃんとFactionに加入してます。まあ、Wikiにも説明がありますし、レヴィン・サドリの方が普通なんだと思うことにします。


2時から4時間


上で、この時間は何をしてるんだろうと書きましたが、ニラナイは、この時間、家で寝てます。Packageだと、"NiranyeSleepPackageAnyTime"が使用されています。PackageのTemplateは"Sleep"と言うもので、自分の家で、ベッドを見つけて寝ます。

Package Template: Sleep



AIPackage 100-1 Tmplate Sleep 1


 ・Creation Kit Wiki: Sleep (Procedure)



このPackageもLocationで場所を指定する事ができるのですが、今回は指定されていません。場所が指定されていない場合、NPCは自分が配置されている場所に戻るようです。ニラナイが配置されている場所は、ニラナイの家です。また、Scheduleも設定されていませんので、Packageがなければいつでも寝ていいよと言うことですね。今回指定されていない時間は、午前2時から6時までです。

ニラナイの家



AIPackage 081-1 Niranye House Ref 1



6時から2時間


最後に、ニラナイは早朝ベッドから起きると朝食を取ります。ここでもニューグニシス・コーナークラブで使用した"Eat"と言うTemplateを使用しています。Location(場所)を使用していないので、上の睡眠のPackageと同じように、自分の配置された場所の近くで、食事を取ります。

これで1日分見ました。この後、再度8時からの仕事のPackgeに移行します。しかし、毎日1日4時間の睡眠と12時間仕事をする勤勉な生活をしてるんですね、、、、。


まとめ


Actorの日常生活は、Scheduleを設定したPackgeを使います。それを、ActorのAIPackageに登録するだけで、NPCは指定された日常生活を送るようになります。また、NPCがフォロワーになると、この設定は無視されます。正確に言えば、より優先度の高いPackgeが使用されます。


おわり



追記)
途中ObjectとReferenceを混同した感じに書いちゃいました。ObjectはObjectWindowにあるもので、ReferenceはCell View上で確認できるもの、と、私は考えています。例えば、椅子とは何かを設定するのは、Objectです。ここで椅子のモデルを指定したり、アニメーションが指定できます。このObjectは、スカイリム上で大量に配置されています。Objectで椅子に座れ、と指定した所で、どの椅子だよと言うことになります。そこで、Cell Viewで配置された椅子には、それぞれ個別のREFが割り当てられています。椅子に座れと言う指示は、このREFを指定することで、個々の椅子を区別する事ができるようになります。

REFは、何かしらの指定をされると、Persistentと言うものが設定されるようです。この設定がされていないと、クエストが動かなかったり、NPCと会話するとか、回復魔法を使用してもらう等の指定ができません。たぶん、ゲームのシステムが監視する対象にするために必要なんじゃないかと思います。


感想)
久しぶりに、長い説明を書いたので、流石に疲れたー。
スポンサーサイト



 NPCの設定

 Skyrim

0 Comments

Leave a comment