ハドバル&レイロフの生活スケジュールを作成中……。
一日の行動を細かく決めるだけで、結構な数のAI Packageが必要になります。
1人2人の生活スケジュールを作るだけならまだいいのですが、これが9人くらいになるとかなりの重労働。
Packageひとつで一日の行動を決めたいなぁ、と思い、自作のAI Package Templeteをせっせと作ってみました。作り方自体は
こちら。
こちらはその一例。Scheduleタブでは、すべて「Any」か「0」を指定し、常時このPackageが実行される状態にします。
Procedure Treeの条件設定だけで、24時間の生活スケジュールを決めてしまおうという魂胆。
"Stacked"Branch以下に、それぞれの時刻の行動を並べていきます。
黄色に塗った各"Sequence"には、Item Conditionsに時刻を設定。複雑に見えますが、時間によって「椅子を探してご飯食べる」か「ベッドを探して寝る」か「仕事する」かいずれかの行動をとらせるだけのものです。
例えば、ゲーム内の時刻が「6」以上「7」未満の時は、朝食をとる行動を設定した"Sequence"が実行されます。
一番下の"Procedure: Sandbox"には条件を設定していません。上の三つで指定されている時刻以外では、仕事をしてもらいたいため。
また、条件を設定しなかった理由はもうひとつあります。上記三つの条件判定が「False」になってしまった場合、なんらかのProcedureが実行されないと、AIが止まった状態、棒立ち状態になってしまうからです。条件なしで実行できるProcedureを「落とし所」として最後につけてやると、条件設定を少々ミスってもAIが止まる事態にはなりません。
Conditionsで時刻設定をしているため柔軟性には欠けますが、一日の生活スケジュールをAI Packageひとつで決められるので、とても便利です。共同生活をしている労働者などに最適そう。シドナ鉱山の面々しか思い浮かびませんが。
"Procedure: LockDoors"を組み合わせれば、寝る前にプレイヤーを追い出して家の鍵をかけることもできます。
もう少し柔軟性を高めてみたのはこちら。Templete化して名前をつけるなら、「DefaultSandboxMultiLocation0x24」でしょうか。
朝、昼、晩、就寝時間でそれぞれのLocationを指定できるSandboxのみの簡単ProcedureTree(最初のTravelは、Package開始時に朝のLocationへ駆け足で行かせているだけ)。
一番下にある就寝時のSandboxは落とし所ですから、条件指定は何もしていません。
細かいところでは「Flag Overrides」をいじって、妙にはっきりした寝言を言わないよう"Allow Idle Chatter"などのフラグを切っています。
一番下にこのAI Packageを置き、その上に短時間の食事や、ちょっとした例外的行動のAI Packageを重ねるだけで、複雑な生活スケジュールを作れます。
こちらは旅人などによさそうな、Eat Packageの簡易バージョン。近くに座るものがあったら座り、なければ立ったまま食べるProcedure Treeです。
慣れてくると用途に合わせて自由にできるので、Procedure Treeを作りはけっこうはまります。
次へ