06/08/10 19:35:30 NJPP0nww
>>244
そこまで複雑な動作だと、たぶんどこを探してもサンプルは無いんじゃないか?
要求を上手く分解して、順序立てて実現していくしかないと思う。
俺が勝手に分解してみると、
・知覚範囲のある敵群(または味方群)から個々互いに見つからないように移動する
→分解すると「気付く→隠れる」の流れ。
→気付く: 1.視線には必ず気付く 2.自分を見ている敵を見ないと気付かない
→隠れる: 移動先候補について相手の視線を計算し、遮られる場所のうちいずれかに向かう。
・苦手キャラがいると避ける
→これも「気付く→回避」の流れ。
→回避: 一定の距離に入らないように動く。(「ゲーム開発者のためのAI入門」に書いてあったと思う)
・仲間と一緒に行動する
→「移動→回避」の流れ
→周囲(半円or見えている範囲)の仲間の移動ベクトルを平均し、その方向に動く。
→障害物があった場合、回避を行う。
(→回避のベクトルを「仲間の移動ベクトルの平均」にフィードバックして、グループ全体で回避する)
・NPCが壁や他の知覚範囲にぶつからないようにする
→回避: キャラクターの進行方向に触覚(見えない線)を延ばして、その線が
障害物に触れていたら向きを変えさせる。(パラメタは試行錯誤して決める)
最低速度と最高速度に開きがある場合は、線を速度に合わせてある程度伸縮させる。
(「ゲーム開発者のためのAI入門」に書いてあったと思う)
こんな感じ |>---- ■