記事作成 2019年7月
PlayMaker 1.9.0 / Unity 2018.2.6f1
障害物を避けながら目標を追跡する。このような動きを実現します。@1~@3
Unityに標準で備わっているナビメッシュ(NavMesh)を使います。
ナビメッシュの詳しい解説は省きますが、この記事の内容を実践するだけなら
予備知識無しでも大丈夫です。 (公式マニュアル「Unity の ナビゲーションシステム」)
@1 追加アクションのインストール
PlayMakerにはナビメッシュにアクセスするアクションが、Add-Onとして提供されているので
それをDLして準備します。
Ecosystem から直接インストール (参考記事 [PM] Ecosystem) するか、
Pathfinding アドオンページ
https://hutonggames.fogbugz.com/default.asp?W1174
の、リンクをたどって
このページからダウンロードします。
DLしたパッケージを、プロジェクトにドロップすればインストールできます。
PlayMakerのアクションウィンドウに、[NavMesh] [NavMeshAgent] が加わっていればOKです。
@2 ナビメッシュの作成
こんなフィールドを作成しました。Plane の上に Cube を数個、つぶしたり伸ばしたりして
迷路っぽくしただけの、簡単なものです。
これらのオブジェクトをまとめて、Static 設定にします。ナビメッシュを Bake するために必要です。
(図は Plane だけですが Cube もすべてまとめて設定してください)
Navigation ウィンドウを開きます。
Navigation ウィンドウで [Bake] ボタンを押し、探索範囲を作成。
Agent Radius は境界の余白になります。あんまり大きいと通路が途切れてしまったりも
するので、適宜設定します。
@3 追跡オブジェの設定
Cylinder を作成し追跡者にします。動きやすいように少しサイズを縮小しています。
モデルの用意があればそれを使用しても構いません。
同様に、青いCube を Cylinder が追いかける目標として作成しています。
Cylinder に状態遷移を設定します。はじめの状態に
[Set Agent Destination As Game Object] のアクションを付けます。
すると図のような注意が出るので、クリックすると、NavMeshAgentコンポーネントが
追加されます。
追加されたコンポーネントを確認して、追跡スピードを、適当に設定します。
アクションの Destination には追跡目標物を設定します。
今回は直接、目標のCubu をドロップしていますが、Tag などでシーン上のオブジェクトを
選択し変数に格納した上で設定する、などもできます。
( [Find Game Object] [Get Random Object]等 )
Trigger Threshold は、追跡物体がどれぐらい動いたら再び追うか、の設定のようですが、
このぐらいでよいのかな。適当に設定してください。
これで追跡側の準備ができました。
----------------------------------------------
@ 結果
再生してみます。
目標の Cube はシーン上で操っていますが、Cylinder が Cube の位置を探知して障害物の
壁を避けつつ、追跡しているでしょうか。
----------------------------------------------
@ 結果
再生してみます。
目標の Cube はシーン上で操っていますが、Cylinder が Cube の位置を探知して障害物の
壁を避けつつ、追跡しているでしょうか。
ナビメッシュは多機能で、移動する障害物や、離れた場所へのジャンプなど様々な
表現ができます。 イメージに応じて、対応するPlayMakerのアクションを並べ試行錯誤
することになります。
今回の内容は、公式フォーラムのトピック 「Quick AI Pathfinding 」
https://hutonggames.com/playmakerforum/index.php?topic=10920.0
で示されている方法を、更にシンプルにして実現しています。他の方法も知りたい方は
参考になるかもしれません。
----------------------------------------------
Cube に 十字キーでキャラクターを操作する のコントローラーをつけ、
さらに、カメラの動き のカメラ後方固定ノード、接触の判定 などのTips を
使い、即製のなんちゃってドットイートゲームに仕立ててみました。
WebGlでビルドして、アップしています。(ライトの具合が上手く調整できてないのですが)
ブラウザで実際に操作してみることができます。
パスファインディング参考ゲーム
https://sino.sakura.ne.jp/games/nya_pathgame/ 別ウィンドウで開きます。
表現ができます。 イメージに応じて、対応するPlayMakerのアクションを並べ試行錯誤
することになります。
今回の内容は、公式フォーラムのトピック 「Quick AI Pathfinding 」
https://hutonggames.com/playmakerforum/index.php?topic=10920.0
で示されている方法を、更にシンプルにして実現しています。他の方法も知りたい方は
参考になるかもしれません。
----------------------------------------------
Cube に 十字キーでキャラクターを操作する のコントローラーをつけ、
さらに、カメラの動き のカメラ後方固定ノード、接触の判定 などのTips を
使い、即製のなんちゃってドットイートゲームに仕立ててみました。
WebGlでビルドして、アップしています。(ライトの具合が上手く調整できてないのですが)
ブラウザで実際に操作してみることができます。
パスファインディング参考ゲーム
https://sino.sakura.ne.jp/games/nya_pathgame/ 別ウィンドウで開きます。
0 件のコメント:
コメントを投稿