Unity の人気アセット TopDown Engine でAIキャラクターを作成します。
AIキャラクターの作り方
公式ドキュメント
(英語ですが)公式ドキュメントがありますので、詳しくはこちらをご覧ください。
使用するアセット
Cute Pet
こちらのアセットの羊を使っています。
AIキャラクターを作成する手順
プレイヤーを追いかけて回転するシンプルな AI
シーンを開く
MinimalScene3D シーンを開きます。
MyChar オブジェクトを作成する
空のゲームオブジェクトを作成します。
MyChar という名前を付けます。
position を (0, 0, 0) に設定します。
MyModel オブジェクトを作成する
Cube を作成します。
MyModel という名前を付けます。
MyChar の子オブジェクトにします。
Character コンポーネントを追加する
MyChar に Character コンポーネントを追加します。
Character コンポーネントの下の方にある AutoBuild AI Character 3D を押します。
CharacterOrientation3D を設定する
MyChar の CharacterOrientation3D コンポーネントの MovementRotatingModel スロットに MyModel を設定します。
Rotation Mode を MovementDirection に設定します。
AI関連のコンポーネントを追加する
MyChar に AIBrain コンポーネントを追加します。
AIDecisionDetectTargetRaduis3D コンポーネントを追加します。
AIActionMoveTowardsTarget3D コンポーネントを追加します。
AIActionRotateTowardsTarget3D コンポーネントを追加します。
DetectTargetRadius の TargetLayerMask を設定する
DetectTargetRadius の TargetLayerMask を Player に設定します。
AIBrain に Detect ステートを追加する
AIBrain に Detect ステートを追加します。
トランジションに DetectTargetRadius を追加します。
True の場合、Move に遷移します。
AIBrain に Move ステートを追加する
AIBrain に Move ステートを追加します。
アクションに Move と Rotate を設定します。
動作確認
Unity エディターを再生します。
AI がプレイヤーを追いかけて、プレイヤーの方を向くことを確認します。
シンプルな砲塔のような回転 AI
シーンを開く
MinimalScene3D シーンを開きます。
Test オブジェクトを作成する
空のゲームオブジェクトを作成します。
Test という名前を付けます。
position を (0, 0, 0) に設定します。
Model オブジェクトを作成する
Cube を作成します。
Model という名前を付けます。
Test の子オブジェクトにします。
Character コンポーネントを追加する
Test に Character コンポーネントを追加します。
Character コンポーネントの下の方にある AutoBuild AI Character 3D を押します。
Character コンポーネントの CharacterModel スロットに Model を設定します。
CharacterOrientation3D を設定する
Test の CharacterOrientation3D コンポーネントの MovementRotatingModel スロットに Model を設定します。
Rotation Mode を MovementDirection に設定します。
ShouldRotateToFaceWeaponDirection のチェックを外します。
ForcedRotation にチェックを付けます。
AI関連のコンポーネントを追加する
Test に AIBrain コンポーネントを追加します。
AIActionDoNothing コンポーネントを追加します。
AIDecisionDetectTargetRaduis3D コンポーネントを追加します。
AIActionRotateTowardsTarget3D コンポーネントを追加します。
DetectTargetRadius の TargetLayerMask を設定する
DetectTargetRadius の TargetLayerMask を Player に設定します。
AIActionRotateTowardsTarget3D を設定する
AIActionRotateTowardsTarget3D の LockRotationX にチェックを付けます。
AIBrain に Wait ステートを追加する
AIBrain に Wait ステートを追加します。
アクションに AIActionDoNothing を設定します。
トランジションに DetectTargetRadius を追加します。
True の場合、Rotate に遷移します。
AIBrain に Rotate ステートを追加する
AIBrain に Rotate ステートを追加します。
アクションに Rotate を設定します。
動作確認
Unity エディターを再生します。
AI がプレイヤーの方を向くことを確認します。
プレイヤーを攻撃する砲塔のような敵 AI
シーンを開く
MinimalScene3D シーンを開きます。
Test オブジェクトを作成する
空のゲームオブジェクトを作成します。
Test という名前を付けます。
position を (0, 0, 0) に設定します。
Model オブジェクトを作成する
Cube を作成します。
Model という名前を付けます。
BoxCollider を削除します。
Test の子オブジェクトにします。
position を (0, 0, 0) に設定します。
Character コンポーネントを追加する
Test に Character コンポーネントを追加します。
Character コンポーネントの下の方にある AutoBuild AI Character 3D を押します。
Character コンポーネントの CharacterModel スロットに Model を設定します。
CharacterOrientation3D を設定する
Test の CharacterOrientation3D コンポーネントの MovementRotatingModel スロットに Model を設定します。
Rotation Mode を WeaponDirection に設定します。
CharacterHandleWeapon コンポーネントを追加する
Test に CharacterHandleWeapon コンポーネントを追加します。
InitialWeapon に LoftAIAssaultRifle を設定します。
AI関連のコンポーネントを追加する
Test に AIBrain コンポーネントを追加します。
AIActionDoNothing コンポーネントを追加します。
AIDecisionDetectTargetRaduis3D コンポーネントを追加します。
AIActionShoot3D コンポーネントを追加します。
AIActionRotateTowardsTarget3D コンポーネントを追加します。
DetectTargetRadius の TargetLayerMask を設定する
DetectTargetRadius の TargetLayerMask を Player に設定します。
AIBrain に Detect ステートを追加する
AIBrain に Detect ステートを追加します。
アクションに AIActionDoNothing を設定します。
トランジションに DetectTargetRadius を追加します。
True の場合、Shoot に遷移します。
AIBrain に Shoot ステートを追加する
AIBrain に Shoot ステートを追加します。
アクションに Rotate と Shoot を設定します。
動作確認
Unity エディターを再生します。
AI がプレイヤーの方を向いて、攻撃してくることを確認します。
まとめ
TopDown Engine アセットでAIキャラクターを作成しました。
ゲームの中に攻撃してくる敵キャラクターを作って面白くできそうです。
コメント