【TopDown Engine】AIキャラクターの作り方

AIキャラクター TopDown Engine
AIキャラクター

Unity の人気アセット TopDown Engine でAIキャラクターを作成します。

  1. AIキャラクターの作り方
    1. 公式ドキュメント
    2. 使用するアセット
      1. Cute Pet
    3. AIキャラクターを作成する手順
      1. プレイヤーを追いかけて回転するシンプルな AI
        1. シーンを開く
        2. MyChar オブジェクトを作成する
        3. MyModel オブジェクトを作成する
        4. Character コンポーネントを追加する
        5. CharacterOrientation3D を設定する
        6. AI関連のコンポーネントを追加する
        7. DetectTargetRadius の TargetLayerMask を設定する
        8. AIBrain に Detect ステートを追加する
        9. AIBrain に Move ステートを追加する
        10. 動作確認
      2. シンプルな砲塔のような回転 AI
        1. シーンを開く
        2. Test オブジェクトを作成する
        3. Model オブジェクトを作成する
        4. Character コンポーネントを追加する
        5. CharacterOrientation3D を設定する
        6. AI関連のコンポーネントを追加する
        7. DetectTargetRadius の TargetLayerMask を設定する
        8. AIActionRotateTowardsTarget3D を設定する
        9. AIBrain に Wait ステートを追加する
        10. AIBrain に Rotate ステートを追加する
        11. 動作確認
      3. プレイヤーを攻撃する砲塔のような敵 AI
        1. シーンを開く
        2. Test オブジェクトを作成する
        3. Model オブジェクトを作成する
        4. Character コンポーネントを追加する
        5. CharacterOrientation3D を設定する
        6. CharacterHandleWeapon コンポーネントを追加する
        7. AI関連のコンポーネントを追加する
        8. DetectTargetRadius の TargetLayerMask を設定する
        9. AIBrain に Detect ステートを追加する
        10. AIBrain に Shoot ステートを追加する
        11. 動作確認
    4. まとめ

AIキャラクターの作り方

公式ドキュメント

(英語ですが)公式ドキュメントがありますので、詳しくはこちらをご覧ください。

Advanced AI | TopDown Engine Documentation
This page describes how to setup advanced AI to create more interesting enemies (or friends).

使用するアセット

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 がプレイヤーの方を向いて、攻撃してくることを確認します。

AIキャラクター
AIキャラクター

まとめ

TopDown Engine アセットでAIキャラクターを作成しました。
ゲームの中に攻撃してくる敵キャラクターを作って面白くできそうです。

コメント

タイトルとURLをコピーしました