UnrealEngineをチュートリアル動画で学習する その6

# はじめに
UnrealEngineを学習するにあたってのメモを記事にまとめます。
本記事では完結せず何回か分けて記事にする予定です。

前回

https://qiita.com/Miyakovsky/items/689a74b9668eddce45dd

# 今回やること
UnrealEngineの公式サイトにあるLearningの「Your First Game In Unreal Engine 5」を題材に学習していきます。

https://dev.epicgames.com/community/learning/tutorials/e2V/your-first-game-in-unreal-engine-5


本記事では主に以下を扱います。
- キャラクターの移動
- キャラクターのアニメーション
- BOT(CPU)の作成
- BOT(CPU)が追尾するアイテムの動的生成


[開発環境]
windows 11
UnrealEngine 5.3.2



# Character Movement
動画時間:43:04~

- 「BP_Bot」の編集エディタを開く
- 「コンポーネント」欄の「Mesh(CharacterMesh0)」を選択する
- 「詳細」欄の「Mesh」の「Skeletal Mesh Asset」を「SKM_Antbot」を選択する
- 「詳細」欄の「トランスフォーム」の「位置 Z」を「-70」「回転 Z」を「-90」に設定する
- 「コンポーネント」欄の「Capsule Component(CollisionCylinder)」を選択する
- 「詳細」欄の「形状」の「Capsule Half Height」を「70」、「Capsule Radius」を「25」に設定する
- 「コンパイル」を押して編集を適応させる

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/b6a1b967-364e-4840-74e1-730546deebef.jpeg)

- プレイボタンを押すと、キャラクターが出てくるのが確認出来る

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/08be58e0-cccc-481a-b84b-79d12c6ce3d4.jpeg)

- 「コンポーネント」欄の「Character Movement(CharMoveComp)」を選択する
- 「詳細」欄の検索欄に「rot」と入れる
- 「詳細」欄の「Rotation Rate Z」を「420」、「Orient Rotation to Movement」をONにする
- 「コンパイル」を押して編集を適応させる

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/da596371-4a6b-7507-fa4d-6bf2f482f0eb.jpeg)

- 「コンポーネント」欄の「SpringArm」を選択する
- 「詳細」欄の「回転」を「ワールド」に変えて「絶対回転」にする
- 「コンパイル」を押して編集を適応させる

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/ab6a0c37-a986-f0d4-98db-5ad17323b322.jpeg)



この後、実行するとキャラクターが移動方向を向くのだが、回転しませんでした。キャラクターの回転方法を調べると、以下をやると解消されました。
- 「コンポーネント」欄の「BP_Bot」を選択する
- 「詳細」欄の「ボーン」の「Use Controller Rotation Yaw」を無効にする

次にパラメータの設定をする
- 「コンポーネント」欄の「Character Movement(CharMoveComp)」を選択する
- 「詳細」欄の検索欄に「キャラクタームーブメント:基本セッティング」の「Max Acceleration」を「500」と入れる
- 「詳細」欄の検索欄に「キャラクタームーブメント:歩行」の「Max Step Height」を「60」と入れる
- 「詳細」欄の検索欄に「キャラクタームーブメント:歩行」の「Walkable Floor Angle」を「60」と入れる
- 「詳細」欄の検索欄に「キャラクタームーブメント:歩行」の「Ground Friction」を「0」と入れる
- 「詳細」欄の検索欄に「キャラクタームーブメント:歩行」の「Max Walk Speed」を「400」と入れる
- 「詳細」欄の検索欄に「キャラクタームーブメント:歩行」の「Braking Deceleration Walking」を「800」と入れる

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/e2a898b4-af69-f3e3-88ad-be6b73c2b69d.jpeg)

- プレイボタンを押して、キャラクターが移動方向を向いて移動するようになる

# Animation
動画時間:45:22~

- 「コンテンツドロワー」を開いて、「Character」フォルダに「Animations」フォルダを作成する
- インポートを押して、素材フォルダから「Character/Animations/A_Antbot_Idle.fbx」、「Character/Animations/A_Antbot_Run.fbx」、「Character/Animations/A_Antbot_Walk.fbx」を選択して開く
- インポート設定で「Skeleton」を「SKM_Antbot_Skeleton」を選択し、「Inmprt Mesh」をOFFにする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/6f67b3bf-2ad4-53b0-d82d-655758c98947.jpeg)

- 「全てインポート」して、3つインポートする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/4274b379-01f7-4287-3240-756f9bf79659.jpeg)

- 「Animations」フォルダで右クリックして、「アニーション->アニメーションブループリント」を選択し、名前を「ABP_Bot」にする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/108db4ab-4632-96e5-f613-6fefc9ec25cc.jpeg)

- 「ABP_Bot」をダブルクリックして、編集エディターを開く
- 「AnimGraph」を選択して、「アセットブラウザ」の「A_Antbot_Idle」をドラッグ&ドロップして入れる
- 「A_Antbot_Idle」->「Output Pose(Result)」に接続する

:::note info
アニメーションがループしない
実際に再生するとアニメーションループしないことがありました。以下の設定でLoopするようになりました。
- 「A_Antbot_Idle」を選択
- 「詳細/設定」の「Loop Animation」をONにする

:::

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/63481205-1d57-067c-fb15-c593a07ee47e.jpeg)

- 「Framework」フォルダにある「BP_Bot」の編集エディターを開く
- コンポーネントの「Mesh(CharacterMesh0)」を選択し、「詳細」の「Animation」の「Anim Class」を「ABP_Bot_C」に選択する
- コンパイルを実行する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/4584f989-c507-801b-0661-34902d6b581c.jpeg)

- プレイボタンを押すと、立ちアニメーションが着いているのが確認出来る
- 「ABP_Bot」の編集エディターを開く
- 「A_Antbot_Idle」を削除する
- 「State Machine」コンポーネントを追加し、名前を「Locomotion」にする
- 「Locomotion(StateMachine)」->「Output Pose(Result)」に接続する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/729a7d06-3142-cc95-8edc-8108b18d76de.jpeg)


- 「Locomotion(StateMachine)」をダブルクリックして、ステート編集画面を開く
- 右クリックで「ステートの追加」をして、名前を「Idle」にする
- 「Entry」->「Idle」に接続する
- 右クリックで「ステートの追加」をして、名前を「Walk/Run」にする
- 「Idle」->「Walk/Run」に接続する
- 「Walk/Run」->「Idle」に接続する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/9b7b9b78-d769-2d17-a0ad-69fbcee57552.jpeg)

- 「Idle」ステートをダブルクリックして、ステート編集画面を開く
- 「アセットブラウザ」の「A_Antbot_Idle」をドラッグ&ドロップして入れる
- 「A_Antbot_Idle」->「Output Pose(Result)」に接続する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/6d58668b-cc2e-0d15-4972-9cd259325a71.jpeg)

- 「Locomotion(StateMachine)」に戻る
- 「Walk/Run」ステートをダブルクリックして、ステート編集画面を開く
- 「アセットブラウザ」の「A_Antbot_Walk」をドラッグ&ドロップして入れる
- 「A_Antbot_Walk」->「Output Pose(Result)」に接続する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/d48e7745-c952-e5e8-730e-f674274d2122.jpeg)

- 「Locomotion(StateMachine)」に戻る
- 「Idle」->「Walk/Run」を繋いでる、トランジションルールをダブルクリックで選択する
- 上部タブの「Event Graph」を選択する
- 「? Is Valid」ノードを作成する
- 「Try Get Pawn Owner」->「? Is Valid(InputObject)」に接続する
- 「Event Blueprint Update Animation」->「? Is Valid(Exec)」に接続する
- 「Get Velocity」ノードを作成する
- 「Try Get Pawn Owner」->「Get Velocity」に接続する
- 「Vector Length XY」ノードを作成する
- 「Get Velocity」->「Vector Length XY」に接続する
- ノードメニューの「Promote to variable」を選んで「SET」ノードを作成する
- 「変数」のFloatとパラメーター名を「GroundSpeed」に変更
- 「Vector Length XY」->「SET GroundSpeed」に接続する
- 「? Is Valid(Is Valid)」->「SET GroundSpeed(実行)」に接続する
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/78c9fff3-d8a8-ebb2-400d-cda8080bb872.jpeg)

- 上部タブの「IdleからWalk/Run」を選択する
- 「変数」の「GroundSpeed」をドラッグ&ドロップして「Get」を選択して入れる
- 「>」ノードを作成する
- 「GroundSpeed」->「>」に接続する
- 「>」->「Result」に接続する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/cf8c4337-bde0-0ef1-05e7-c21bf8b025b3.jpeg)

- 「Locomotion(StateMachine)」に戻る
- 「Walk/Run」->「Idle」を繋いでる、トランジションルールをダブルクリックで選択する
- 「変数」の「GroundSpeed」をドラッグ&ドロップして「Get」を選択して入れる
- 「<=」ノードを作成する
- 「<=」ノードのパラメーターを「5.0」する
- 「GroundSpeed」->「<=」に接続する
- 「<=」->「Result」に接続する
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/78e26a2e-3455-8bfb-97b6-0c888c795f03.jpeg)

- プレイボタンを押すと、キャラクターを動かすと、移動速度によって停止と歩きモーションが切り替わります
- 次に走りモーションを付けるため、「Walk/Run」ステートの「A_Antbot_Walk」を削除する
- コンテンツドロワーを開き、「Character/Animations」フォルダを選択する
- 右クリックして「アニーション/ブレンドスペース」を作成する
- ファイル名を「BP_WalkRun」にする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/795c2f8e-e8af-0443-bbf1-a05a5defe98a.jpeg)

- 「アセット詳細」の「水平軸/Name」を「Speed」に変更する
- 「アセット詳細」の「水平軸/Maximum Axis Value」を「400」に変更する
- 「アセットブラウザ」の「A_Antbot_Run」「A_Antbot_Walk」をグラフにドラッグ&ドロップして入れる
- 「A_Antbot_Walk」を左に「A_Antbot_Run」を右に配置する
- 「アセット詳細」の「解析/水平軸関数」を「Locomotion」に変更する
- 「解析/水平軸関数/Anlysis Properties」の「Bone/Socket1」を「foot_l」に変更する
- 「解析/水平軸関数/Anlysis Properties」の「Bone/Socket2」を「foot_r」に変更する
- 保存する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/b6de6db0-b8b6-b5fe-8f3b-66bbf7594870.jpeg)

- 「ABP_Bot」の「Walk/Run」ステートに戻る
- 「アセットブラウザ」にある「BS_WalkRun」をドラッグ&ドロップで入れる
- 「BS_WalkRun」->「Output Animation Pose (Result)」に接続する
- 「変数」の「GroundSpeed」をドラッグ&ドロップして「Get」を選択して入れる
- 「GroundSpeed」->「BS_WalkRun(Speed)」に接続する
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/a860f850-ce03-8c00-75d9-2c0ee351af8d.jpeg)

- プレイボタンを押すと、キャラクターを動かすと、移動速度によって停止->歩き->走りへモーションが切り替わります

# AI Controller
動画時間:52:30~

- コンテンツドロワーを開いて「Framework/BP_Bot」をValleyレベル内(ワールド)にドラッグ&ドロップして入れる

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/44f8a70e-1ac6-b60f-216f-e4d87197b23a.jpeg)

- コンテンツドロワーを開く
- 「Framework」内で右クリックして「ブループリントクラス」を選択する
- 「All CLASSES」の検索で「ai」と入力する
- 検索候補から「AI Controller」を選択する
- 作成する名前を「BP_AIController」にする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/dcd141ec-0acd-3b47-69a6-3aab52b4307e.jpeg)

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/60d50fc2-a303-38b5-fedd-6c1f24a243df.jpeg)


- 「AI Controller」をダブルクリックして、編集エディターを開く
- 「イベントグラフ」タブを選択する
- 「Event Tick」を削除する
- 「AI MoveTo」ノードを追加する
- 「Set Timer by Event」ノードを追加する
- 「Event BeginPlay」->「Set Timer by Event(実行)」に接続する
- 「Set Timer by Event」の「Time」を「3」にする
- 「Custom Event」ノードを追加し、名前を「Move」にする
- 「Set Timer by Event(Event)」->「Move Custom Event(デリゲート)」に接続する
- 「Move Custom Event(実行)」->「AI MoveTo(実行)」に接続する
- 「Get Controlled Pawn」ノードを追加する
- 「Get Controlled Pawn」->「AI MoveTo(Pawn)」に接続する
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/8ccf223e-1a0e-cb7a-0b80-c653ebb6f405.jpeg)

- Valleyレベルを開き、追加した「BP_Bot」を選択する
- 「詳細/ポーン」の「AI Controller Class」を作成した「BP_AIController」にする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/edfe9867-a23b-7b0b-e8c1-91a186ff385f.jpeg)

- 「ナビメッシュバウンズボリューム」を追加する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/fb08d44a-25ab-7b08-30e7-f4c1e7abe0f3.jpeg)

- 追加した「NavMeshBoundsVolume」を選択して「P」キーを押すと、地面との接触面が可視化される


![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/282edb56-b56c-459b-628a-89d9049f92fd.jpeg)

- 「NavMeshBoundsVolume」のXZ軸のスケールをステージに収まるように拡大する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/1d0c2e8d-308c-8947-803a-f5cbbe82eb10.jpeg)

- プレイボタンを押すと、ポッドが特定の位置(0,0,0)に自動で移動するのが確認出来る

- 「コンテンツドロワー」を開いて、「Framework/BP_Bot」をダブルクリックして編集エディターを開く
- 「Construction Script」タブを選択する
- 「コンポーネント/BP_Bot/Capsule Component/Mesh」をグラフの中にドラッグ&ドロップして入れる
- 「Create Dynamic Material Instance」ノードを追加する
- 「Meshh」->「Create Dynamic Material Instance(Target)」に接続する
- 「Construction Script」->「Create Dynamic Material Instance(実行)」に接続する
- 「Create Dynamic Material Instance」の「Return Value」から「Set Vector Parameter Value」ノードを追加する(個別に「Set Vector Parameter Value」追加しても別のが出てくるので「Return Value」からラインを引っ張って作る)
- 「Set Vector Parameter Value」の「Parameter Name」を「Color」にする
- 「Set Vector Parameter Value」の「Value」を「R:0.17 G:0.24 B:0.78」にする
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/bd446553-a595-f5b7-c6f8-d20335b3ce9d.jpeg)

- 「M_BotBase」マテリアルで色指定しているパラメーター名を「Color」にする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/64451df3-15aa-4a9b-e7ea-0519ced766e9.jpeg)

- 追加したボットの色が変わっている

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/101cebc7-6b4d-145f-54a2-de7995c02bce.jpeg)

- 「BP_Bot」の編集エディターを再度開く
- 「Set Vector Parameter Value」の「Value」からラインを引いて「Promote to variable」を選択してノードを作成する
- 変数にColorのパラメーターが追加されるので、名前を「Color」にし、瞳アイコンをクリックして表示をONにする
- コンパイルを実行して変数定義を更新する
- 「Color」変数を選択する
- 「詳細」の「Color」を「R:0.78 G:0.34 B:0.00」にする
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/65d188a5-bfad-a5fc-ca44-07bac2ef09f1.jpeg)

- レベルに戻って追加したボットの色が変わっている

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/9fb8c07b-ef89-790b-d328-25546e7454ab.jpeg)

- レベルの「BP_Bot」を選択する
- 「詳細」の「Color」を「R:0.014 G:0.072 B:0.780」にする
- ボットの色が変わる

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/578bde03-ba5d-d4fe-a5a8-de25b8f615f3.jpeg)

# Spawn and collect Orbs
動画時間:55:46~

- 「コンテンツドロワー」を開いて、「Props」を選択する
- 素材フォルダの「Props」から「SM_Door.FBX」「SM_Modular_WallDoor.FBX」「SM_Pickup_Orb.FBX」「SM_PressurePlate_Frame.FBX」「SM_PressurePlate_Platform.FBX」をそのままインポートする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/97decf63-3546-2f85-70a2-83f817c804ad.jpeg)

- 「コンテンツドロワー」を開いて、「GameElements」を選択する
- 右クリックして「プループリント/Actor」を選択し、名前を「BP_Orb」にする
- 「BP_Orb」をダブルクリックして編集エディターを開く
- 「コンポーネント」に「SM_Pickup_Orb.FBX」をドラッグ&ドロップで入れる
- 「SM_Pickup_Orb」をドラッグ&ドロップで「DefaultSceneRoot」に上書きする
- 「詳細/コリジョン/コリジョンプリセット」を「OverlapOnlyPawn」にする
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/873cd3f2-30bd-cb34-7bb9-c9e7e693b5f5.jpeg)

- 「編集」から「プロジェクト設定」を開く
- 「インプット」の「アクションマッピング」に新規でアクションマッピングのグループを追加し、名前を「SpawnOrb」にする
- グループ内にアクションマッピングを追加し「キーボード」の「スペースバー」にする

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/796cffb3-0e19-dcb3-4fb1-b2b707846970.jpeg)

- 「コンテンツドロワー」を開いて、「Framework/BP_PlayerController」の編集エディターを開く
- ノード追加でAction Eventの「Spawnorb」を選択した「inputAction SpawnOrb」ノードを追加する
- 「inputAction SpawnOrb」の「Released」からラインを引いて「Spawn Action form class」を選択して「Spawn Action」ノードを追加する
- 「Spawn Action」の「Class」を「BP_Orb」を設定する
- 「Spawn Action」の「Spawn Transform」を右クリックして「構造体ピンの分割」を選択する
- イベントグラフ内に以前作成した「GetControlled Pawn」「Get Actor Location」のセットを複製する
- 「Get Actor Location」->「Spawn Action(Spawn Transform Location)」に接続する
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/67eb711d-cc92-8523-9995-15df8fbf9790.jpeg)

- プレイボタンを押して実行すると、スペースキーを押すと、BP_Orbが生成される

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/9d6f8f9b-b672-be48-22eb-c0cacb973bfd.jpeg)

- 「コンテンツドロワー」を開いて、「Framework/BP_AIController」の編集エディターを開く
- 「マイプループリント」の「関数」に新規の関数を追加し、名前を「FindOrb」にする
- 「FindOrb」関数を選択する
- 「詳細/アウトプット」に追加して、名前を「Success」にする
- さらに「アウトプット」に追加をして、名前を「OrbActor」にする
- 「OrbActor」の変数のタイプを「オブジェクトタイプ/Actor/オブジェクト参照」を選択する
- 「Find Orb」ノードと「Return Node」ノードの接続句を切る
- 「Get All Actors of Class」ノードを追加する
- 「Find Orb」->「Get All Actors of Class(実行)」に接続する
- 「Get All Actors of Class」の「Actor Class」を「BP_Orb」にする
- 「Get All Actors of Class(OutActors)」->「LENGTH」に接続する
- 「LENGTH」->「>」に接続する
- 「>」->「Branch」に接続する
- 「Get All Actors of Class(実行)」->「Branch(実行)」に接続する
- 「Return Node」を複製して片方の「Success」をOnにする
- 「Branch(True)」->「Return Node(実行)」(Success On)に接続する
- 「Branch(False)」->「Return Node(実行)」(Success Off)に接続する
- 「Get All Actors of Class(OutActors)」->「Get」に接続する
- 「Get」->「Return Node(OrbActor)」(Success On)に接続する
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/83d820f3-a111-fbc6-28c3-c1e029083520.jpeg)

- 「BP_AIController」の「イベントグラフ」を開く
- 「FindOrb」関数を選択する
- 「詳細/グラフ」の「純粋」をONにする
- 「関数」の「FindOrb」をドラッグ&ドロップしてグラフに入れる
- 「Branch」ノードを作成する
- 「Move(実行)」->「Branch(実行)」に接続する
- 「FindOrb(Success)」->「Branch(Condition)」に接続する
- 「Branch(True)」->「AI MoveTo(実行)」に接続する
- 「FindOrb(OrbActor)」->「AI MoveTo(Target Actor)」に接続する
- 「Move」ノードを作成する
- 「AI MoveTo(on Success Actor)」->「Move(実行)」に接続する
- 「Set Timer by Event」の「Looping」を「ON」にする
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/a8f2d9b7-9d40-64f3-37b6-8f0e0fd3d69f.jpeg)

- プレイボタンを押して実行すると、生成されたBP_OrbにBotが移動する

![スクリーンショット 2024-06-24 200823.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/0bbc590a-1c10-4491-a54c-7721becf8d0f.jpeg)

- 「BP_Orb」の編集エディターを開く
- 「コンポーネント/SM_Pickup_Orb」を右クリックして、「イベントを追加/ComponentBeginOverlapを追加」を選択すると「OnComponentBeginOverlap」が作成される
- 「Cast to Pawn」を追加する
- 「OnComponentBeginOverlap(実行)」->「Cast to Pawn(実行)」に接続する
- 「OnComponentBeginOverlap(Other Actor)」->「Cast to Pawn(Object)」に接続する
- 「Cast to Pawn」の「As Pawn」から「Is Player Controller」ノードを生成する
- 「Is Player Controller」の「Return Value」から「Branch」ノードを生成する
- 「Cast to Pawn(実行)」->「Branch(実行)」に接続する
- 「Destroy Actor」ノードを作成する
- 「Branch(False)」->「Destroy Actor(実行)」に接続する
- コンパイルを実行して更新する

![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3553099/b6b6be26-8f53-6c41-e897-f71f5e902069.jpeg)

- プレイボタンを押して実行すると、生成されたBP_OrbにBotが触れると消える。これによって生成されたBP_OrbにそってBotが移動する挙動になる


次回

https://qiita.com/Miyakovsky/items/eba171706e8f802b0d5c