221Games開発記録

痔と腰痛に苦しみながらゲームを作った記録

第六話 Behavior Designer④

【注意】この記事は「とりあえず動いた」を記録するものです。記されている内容は、正しい用法ではない可能性があります。

 

今回はEnemyをPrefab化する話をします。

 

  • Prefab化するぞ

しました。

f:id:kaninoyokonov:20180623232344p:plain

すると…

SeekやCan See ObjectのInspectorをみるとTargetがNoneになっとるやんけ!!!!

f:id:kaninoyokonov:20180623232502p:plain

Scene内のPlayerをTargetにすると怒られます。

f:id:kaninoyokonov:20180623233422p:plain

というわけでツリーの中に「追跡対象を取得する」を実装しよう!!!!

  • 変数をつくる

Variablesから変数をアレできます。今回はPlayerというGameObjectをゲットしたいのでGameObjectを選びます。名前はPlayerObjectにしました。

f:id:kaninoyokonov:20180623234108p:plain

Addを押すかName欄でエンターキーを押すと追加されます。

f:id:kaninoyokonov:20180623234517p:plain

  • Playerを取得する

という訳でタスクを追加していきましょう…なんか見覚えのある名前がたくさんありますね!!!!

f:id:kaninoyokonov:20180624000203p:plain

今回は大人しくGameObjectのFindを選びます。

Game Object Nameの欄には取得したいGameObjectの名前を入力しましょう。今回はPlayerと入力します。次にStore Valueを先ほど作ったPlayerObjectに指定します。これでPlayerと言う名前のGameObjectをPlayerObjectに格納してくれるようになりました。

f:id:kaninoyokonov:20180624000514p:plain

このタスクを一番初めに実行してほしいので、Sequenceの一番左に設置します。これでPlayerを取得してからほかの処理が実行されるようになったぞ!

f:id:kaninoyokonov:20180624002333p:plain

これで完成…と言いたいところなんだけどもうちょっとだけ付き合ってくれ!

  • おまけ:視界の問題

この状態でPrefabをいくつか配置して追いかけっこしてみるとお分かり頂けると思うんだけど、EnemyがEnemyによって視界を遮られるので、Enemyの後ろのEnemyが追跡を止めてしまう問題が起こります。

なので、第四話でちょっと話した気がするIgnor Layer Maskを使ってEnemyはEnemyを透視できるようにしましょう。やり方は簡単というか皆様お察しの通り透視できるLayerを選ぶだけです。

まずEnemyにLayerを指定します。今回は適当にEnemyというLayerを作りました。

f:id:kaninoyokonov:20180624003039p:plain

次にすべてのCan See ObjectIgnor Layer MaskEnemyを追加しましょう。

f:id:kaninoyokonov:20180624003313p:plain

これでOK!!!!!!!!縦に並んで追ってくるようになった。

f:id:kaninoyokonov:20180624004030p:plain

これでAIっぽいものが組めました。

次回のネタは考え付いていません。お疲れ様でした。

みんなもBehavior Designerを買って楽しいAI製作ライフをおくろう!!!!