ハトをイマーシブにしてみた

Modを作ろう

ハトはPigeons- Mihail Monsters and Animals (MIHAIL SSE PORT)になります。街中にハトが出現するようになり、クルックーと鳴きます。
残念なのが、雨の日も雪の日も路上をウロウロしていることです。これを何とかしてみました。

Packageを作って割り当てる

元はEncCreatureSandboxEditorLocation512が割り当てられています。これを複製してaaaEncCreatureSandboxEditorLocation512を作ります。

このような感じで作ります。

親のBranchはRepeat When Completeにチェックを入れておき、無限ループするようにします。

子のBranchその1はItem Conditionsに「天候が雨もしくは雪である」を設定します。

Findで近くのドアを検索して、ドアに向かってTravelで移動します。

そしてドア付近でSandboxを使いじっとさせます。BranchをSimultaneousにしてWaitと並列実行させるのがポイントです。Waitは時間切れを60秒に設定し、Success Completes Packageにチェックを入れておきます。

WaitのProcedureが60秒後に終了し、Package全体を完了(Complete)とさせます。これでPackageが先頭から再実行されます。

子のBranchその2はFindをなくしてEditor LocationにTravelさせてSandboxでウロウロさせます。こちらも60秒の時間切れを設定しておきます。

内部動作の仕組みをきちんと把握したわけではないのですが、Packageはどうやら一度評価されると、他のPackageに移るまではそのままのようです。そのため、Package内でループするように作らないと処理が行き止まりになってしまい、進まなくなってしまうようです。

SandboxというProcedureは無限に動くタイプで処理が完了しないため、一度ドア付近でSandboxを開始すると、晴れてもその場所から動かなくなってしまいます。そこでWaitを併用するわけです。

今回はPackageを1つにしたかったので上記の形となりましたが、Packageを複数用意する方法もあります。

Package自体にConditionsタブで条件を設定することができます。この場合は定期的に評価が行われて、その時に条件の合うPackageが選択されるため、晴れの日のPackageと雨の日のPackageを用意しておけば、Packageが切り替わるタイミングでPackageが先頭から実行されるので、Waitは要らないと思います。

タイトルとURLをコピーしました