38.Actorとは?簡単なアイテムを作ってみよう
Actor(アクタ)とは?
https://scrapbox.io/files/65c2a9a5fa6210002647766d.jpg
レベル上で使用するブループリント付きのアクタを作成したい時に「Actor」を選択します。例えば移動するステージだったり、開閉する扉だったり、ステージに落ちているコインや、武器などのアイテムを作成する場合にはActorを選択します。
体が大きくなるアイテムを作ってみよう
①プロジェクトの作成
今回から、ThirdPersonCharacterを使用していきます。ThirdPersonのプロジェクトを新規で作成しましょう。
レイアウトのロードをも忘れずに行いましょう。
*もしも容量の関係でFirstPersonCharacterのプロジェクトのままで進行したい場合は、コンテンツブラウザの+追加ボタンを押して、機能またはコンテンツパックの追加からサードパーソンを選択して追加してください
https://scrapbox.io/files/65c2ae1579d17b0024718094.jpg
②コンテンツブラウザで右クリック > ブループリントクラス > Actorを選択します。名前をBiggerItemにします。
https://scrapbox.io/files/65c2aac86319c60025ccf34b.jpg
③開いて追加からstaticmeshコンポーネントを追加して、スタティックメッシュにスターターコンテンツのSM_Statueを選択します。
https://scrapbox.io/files/65c2ab142236560024429c22.jpg
透明で少し色がわかり辛いので、透明の部分を変更しておきます。マテリアル(外観)からエレメントをM_Tech_Hex_Tile_Pulseにします。わかりやすくするためなので何でも構いません。
https://scrapbox.io/files/65c2ab2f684b900025898f7f.jpg
④そのままBiggerItemのイベントグラフを開きます。
まずはイベントHitノードを作成します。
https://scrapbox.io/files/65c2ab7263318b002497dffd.jpg
このイベントHitノードはこのアクタ「BiggerItem」のコリジョンが他のアクタのコリジョンと衝突した時に発動するノードです。簡単に言うと他アクタと衝突した時に起動するノードです。
⑤イベントHitからCastToThirdPersonCharacterノードを作成します。
https://scrapbox.io/files/65c2abd0863ac70024fa1837.jpg
ノード解説
イベントHitは他のアクタに触れた時をトリガーに処理を実行します。つまりそのままだと他の全てのアクタに触れた時に処理が実行されてしまいます。そこでCastToBiggerItemノードで触れた対象がThirdPersonCharacterの時の場合にのみ処理を継続するようにします。CastToノードは対象のアクタを検知して一致すれば後続のノードを実行してさらに参照を出力するというノードです。イベントHitのOtherピンが触れたオブジェクトで、そこからCastToノードでそのオブジェクトがBp_ThirdPersonCharacter(プレイヤー)かどうか調べているという事になります。
⑥’その後SetActorScale3DとDestroyActorノードを繋ぎます。SetActorScale3Dには1.5と入力します。
https://scrapbox.io/files/65c2acc61ed2940023ee4626.jpg
SetActorScale3Dノードは拡大縮小を変更するノードでプレイヤーのサイズが大きくなるように変更し、その後自身はDestroy Actorで削除しています。これでノードは完成です。
⑦コンパイルし、レベル上の適当な位置にBiggerItemを配置します。
https://scrapbox.io/files/65c2acfeafa2050024dddad1.jpg
プレイしてみると、アイテムに触れた瞬間にアイテムは削除されてプレイヤーが体が大きくなりました。
https://youtu.be/MrJcJjithEk
こちらのブループリントでもOKです。
https://scrapbox.io/files/66779b8bb281dc001d9224da.png
🌟実践演習
本格的マリオの巨大化
目標:実際のマリオのように三段階に分けて大きさを徐々に大きくするようにしましょう。
①最初の巨大化はスケールが1.5、次の巨大化はスケールが2,最後の巨大化はスケールが3になるようにしましょう。
②巨大化間に挟まれるディレイは0.5にしましょう。
③時間差を考慮して、巨大化アイテムはイベントHit後、即Destroyするようにしましょう。
④巨大化イベントは、ThirdPersonCharacterのイベントグラフ内で、カスタムイベントを使用して行うようにしましょう。
《実践演習の答え》
https://blueprintue.com/blueprint/sxf-jkkv/