少し前にUnity SteerでAIが実現できることを紹介したが、より具体的なことについて本家サイトに記載があったので紹介したい:
http://arges-systems.com/blog/2010/07/03/unitysteer-changes-and-re-organization/
7/3/2010
Unity Steerのデモをみていくこととして、群れ行動を表現したいと仮定する。この場合、必要なSteerは3種類ある:
各々のクラスはそれぞれのロジックを綺麗に分離しており、新たなSteerが必要となった場合もコード数の短いクラスを新たに作成するのみである。(例えばある場所付近に拘束するためのスクリプト)
このアプローチの便利なところはそれぞれのスクリプトがゲームオブジェクトに対して加えている力の大きさが明白であることだ。また拘束(Tether)スクリプトがある場所から離れすぎた場合のみに実行され、障害物を回避するSteerは衝突しそうなときのみに実行される。
このようなアプローチでアセット作成を行うなかで、不要なメソッドや使うことのないクラスは隔離するようにし、残したコードにコメント入れを意識した。まだ加えたい変更はあり(障害物回避を改善するとか、サンプルとなるシーン数を追加するなど)、今後追加していく予定としている。
(訳者注. 2012/10/18時点ですでに追加済み)
-------
これまで何回かに分けて紹介してきたUnity Steerはスクリプトをアタッチするだけであり、プログラミング経験の少ない人でも分かりやすい仕様なので応用を利かせやすいとおもう。
さてAIとひとくちにいっても、紹介してきた範囲はきわめて限られた範囲だがAI専門で幅広く情報を提供している会員制のサイトもあり、そのなかの無料コンテンツについては機会あれば紹介してみたいとおもう:
http://aigamedev.com/
Unity Steerでゲームに自分だけのAIを追加しようぜ!
Unity Steerのデモをみていくこととして、群れ行動を表現したいと仮定する。この場合、必要なSteerは3種類ある:
- 隣接する物体と並ぶSteer
- 隣接する物体との距離を保つSteer
- 隣接する物体と凝集するSteer
各々のクラスはそれぞれのロジックを綺麗に分離しており、新たなSteerが必要となった場合もコード数の短いクラスを新たに作成するのみである。(例えばある場所付近に拘束するためのスクリプト)
このアプローチの便利なところはそれぞれのスクリプトがゲームオブジェクトに対して加えている力の大きさが明白であることだ。また拘束(Tether)スクリプトがある場所から離れすぎた場合のみに実行され、障害物を回避するSteerは衝突しそうなときのみに実行される。
このようなアプローチでアセット作成を行うなかで、不要なメソッドや使うことのないクラスは隔離するようにし、残したコードにコメント入れを意識した。まだ加えたい変更はあり(障害物回避を改善するとか、サンプルとなるシーン数を追加するなど)、今後追加していく予定としている。
(訳者注. 2012/10/18時点ですでに追加済み)
-------
これまで何回かに分けて紹介してきたUnity Steerはスクリプトをアタッチするだけであり、プログラミング経験の少ない人でも分かりやすい仕様なので応用を利かせやすいとおもう。
さてAIとひとくちにいっても、紹介してきた範囲はきわめて限られた範囲だがAI専門で幅広く情報を提供している会員制のサイトもあり、そのなかの無料コンテンツについては機会あれば紹介してみたいとおもう:
http://aigamedev.com/
Unity Steerでゲームに自分だけのAIを追加しようぜ!
0 件のコメント:
コメントを投稿