Unityで次のようなテーマのAIキャラクターを作成してみる:
- 敵キャラの門番は特定の地点を巡回
- 主人公キャラが一定の距離に近づく
- 敵キャラが反応して、主人公に向かっていく
- ただし、背後から迫った等、視界にいない場合は近くても反応しない
- 至近距離まで近づいてきたら近接攻撃
- 主人公キャラが逃げていく
- 敵キャラは近接攻撃をやめるが、追ってくる
- 一定の距離から離れると、再び巡回の動きに戻る
![AI_Character] (http://1.bp.blogspot.com/-vOza_cj2KXE/URicjMiNGKI/AAAAAAAAAsI/2LRcv1xnfmE/s320/AI_Character.png)
[プロジェクトサンプルのYoutube動画へ] (http://www.youtube.com/watch?v=u2kq0G2tzHE)
サンプルのダウンロード
ブログの一番下のリンクからUnityプロジェクトの形式でダウンロードできる。Unity 4.0以降でも動作する。
目次
特に勉強になるところ
- 完成プロジェクトをダウンロードしてイメージがつかめる。あとは目次ごとにその段階でのスクリプトがあるので、段階的に学習を進められる
巡回点の追加
- A -> B -> C -> Aなど、循環して巡回する場合、空のゲームオブジェクトをUnity 上で配置するだけなので応用が利く
![Waypoint_Picture] (http://4.bp.blogspot.com/-yOpinr_tEfQ/URim5KRRt9I/AAAAAAAAAtI/geh60xweRrI/s320/AI_waypoint.png)
さあ近づいてこい(距離のチェック)
- Vector3.Distance を使用することも出来るが平方根演算は遅いので、sqrMagnitudeを使用して平方根演算をさける。これは [Unity公式マニュアル] (http://docs-jp.unity3d.com/Documentation/Manual/DirectionDistanceFromOneObjectToAnother.html) でも明記されてますね