教室長の藤井です。
プログラメイツではゲームの開発にも取り組んでいます。
ここではゲーム中でプレイヤーを敵が追いかけてくる仕組みについて解説します。
障害物や複雑な経路を追いかける難しさ
追いかけると一口に言ってもゲーム中には目標に到達する間に障害物やあったり、通過できる経路に制限があったりします。経路の左右どちらかの境界を辿るようなやり方もありますが、ゲームのキャラクタはもう少しスマートに動いてほしいものです。
NavMeshという仕組み
障害物を避け、経路を上手にたどる手法としてゲームエンジンにはNavMeshと呼ばれるものが用意されています。
これは障害物や通過不能な領域を設定すれば通過可能な領域を自動計算し目標物への経路を算出してくれるものです。
トップの写真は以下はUnityでの例ですが、黒い三角形が動くオブジェクトであり、赤い四角形が目的地になります。
二重丸の書かれた四角形が障害物であり、それ以外は単なる背景です。三角形は障害物を超えることは出来ません。
NavMeshを活用するとまず経路が計算されます。青い線で囲まれた部分が通過可能な領域です。
三角形にNavMesh用のエージェントをセットし、目標物として四角形の位置を設定します。
すると青い領域を通過して目標物に到達いたします。写真にもありますが、
下の動画をご参照ください。よくわかると思います。
実際の目標物到達の動画
https://www.programates.net/images/scenes/NavMesh00.mp4
目標物は移動の途中で変えることもできますので、目標物が移動している場合にも対応できます。
追いかけ機能を必要とするゲームには大変便利な機能になります。
ぜひプログラメイツに体験に来てください。
それでは。