目次
はじめに
以前こちらに書いた回転ロジックをアクタコンポーネントで実装して便利に使おうという記事です。BPオンリーです。
▼使ってできたもの
このノードだけでStaticMesh/SkeletalMesh/SceneComponentの回転を簡単に制御できます。
個人の備忘録としてまとめています。誤った情報がある場合があります。
コメントにてご指摘のほどお願いいたします。
UE5.4.3で解説します。
解説
①ActorComponentの作成
ブループリントの新規作成を行い、アクタコンポーネントを選択します。
名前はB_SceneRotation_Componentにしました。
②変数の追加
作成したActorComponentを開いて変数を追加します。
変数は以下の通りで、すべてプライベートにチェックを入れます。
SceneComponent の TargetSceneComponent
Bool の bEnableRotation
Vector の RotationRate
③関数の追加
実際の回転処理を行う関数UpdateRotationを作成します。
実装はこのようにします。
それぞれ値を書き換えるためのセッター関数を作成します。
SetEnableRotation
※軽量化のために無効時にTickを止めます。
SetRotationRate
SetTargetSceneComponent
※不正な値が入った場合に警告を表示します。
最後に初期化をまとめて行うための関数を用意しておきます。
InitializeRotationSettings
お好みのデフォルト値を設定しておきます。
④イベントグラフへ追加
これにて完成です。
クラスのデフォルトからTick処理が自動で走らないようにStartWithTickEnabledのチェックを外します。
⑤使ってみよう
回転させたいコンポーネントがあるアクタを開きましょう。
Scene/StaticMesh/SkeletalMesh のコンポーネントを独立して回転させたいと思います。
作成したコンポーネントを追加します。
3つ回転させたいので3つ追加しました。わかりやすいように名前を変更しました。
あとはBeginplayでInitilizeRotationSettingsを呼び出し自由に利用できます。
お疲れさまでした!
最後に
UE4やUE5向けの記事を書いています。
皆様の応援が投稿のモチベーションになりますので
コメントやX(Twitter)のフォローなどしていただけるとありがたいです。
それではよきゲーム開発を。