3D アクションゲーム制作に役立つ!? 三次元空間を経路探索する PatrolJS!
three.js に組み込み可能
今回ご紹介するのは、3D のアクションゲームなどを制作する際に非常に役に立ちそうな、経路探索を三次元空間内で行うことが可能なライブラリです。
私個人は three.js を使ったことがないのでわからないのですが、このライブラリ自体は three.js に組み込んで使えるように設計されているみたいですね。
実際に動くデモを見ると、そこそこちゃんと動いているみたいで関心しました。
ロジックの研究としてありがたく拝見しよう
PatrolJS は日本の「Tokyo WebGL Meetup」にも登壇した経験を持つ、Nick Janssen さんの開発したライブラリです。
Nick Janssen 氏はミートアップの会場でも MMO ゲームに関するプレゼンテーションをしてくれたのですが、そういったゲームにも、今回の PatrolJS が使われているようです。
デモは非常にシンプルなものですが、動作を確認するには十分です。キャラクターを模した緑い色の球体が、ユーザーのアクションに応じて三次元空間内を移動します。
なかなか探索のしがいがありそうなフィールドモデルです。
シーンは余白でのドラッグ操作で、自由にカメラの位置を変更できるようになっており、オブジェクトの上でクリックすると、クリックされた座標に向かって緑の球体が経路探索を行ったのち、移動します。
実際に動かしてみると、経路探索に対しての処理時間の遅れなど、そういった負荷のようなものはほとんど感じません。
高台に登って……
再び下に戻ってくる!
Github のリポジトリが公開されているので、基本的にソースコードは自由に閲覧可能です。
最終コミットの日付を見ると、今現在は頻繁にアップデートがなされているわけではないようですが、こういった実装の中身が公開されているケースは珍しいと思うので、とてもありがたいですよね。
二次元での経路探索でも結構難しいロジックを考えないといけないことが多いので、こういった貴重な資料はありがたく活用させてもらいましょう。
アクションゲームでの NPC の動きなどに使えそうな今回のライブラリ。ぜひチェックしてみてください。