ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UE4・UE5】〈Tips〉ActorComponentを自作して回転機能を便利に使おう!!

目次

 

はじめに

 

以前こちらに書いた回転ロジックをアクタコンポーネントで実装して便利に使おうという記事です。BPオンリーです。

namiton.hatenablog.jp

 

▼使ってできたもの

 

このノードだけでStaticMesh/SkeletalMesh/SceneComponentの回転を簡単に制御できます。

 

個人の備忘録としてまとめています。誤った情報がある場合があります。

コメントにてご指摘のほどお願いいたします。

UE5.4.3で解説します。

 

解説

①ActorComponentの作成

ブループリントの新規作成を行い、アクタコンポーネントを選択します。

 

名前はB_SceneRotation_Componentにしました。

 

②変数の追加

作成したActorComponentを開いて変数を追加します。

変数は以下の通りで、すべてプライベートにチェックを入れます。


SceneComponent の TargetSceneComponent


Bool の bEnableRotation 

 

VectorRotationRate 

 

③関数の追加

実際の回転処理を行う関数UpdateRotationを作成します。


実装はこのようにします。

 

それぞれ値を書き換えるためのセッター関数を作成します。

SetEnableRotation

※軽量化のために無効時にTickを止めます。

SetRotationRate

 

SetTargetSceneComponent

※不正な値が入った場合に警告を表示します。

 

最後に初期化をまとめて行うための関数を用意しておきます。

InitializeRotationSettings

 

お好みのデフォルト値を設定しておきます。

 

④イベントグラフへ追加

これにて完成です。

クラスのデフォルトからTick処理が自動で走らないようにStartWithTickEnabledのチェックを外します。

⑤使ってみよう

回転させたいコンポーネントがあるアクタを開きましょう。

 

Scene/StaticMesh/SkeletalMesh のコンポーネントを独立して回転させたいと思います。

 

作成したコンポーネントを追加します。


3つ回転させたいので3つ追加しました。わかりやすいように名前を変更しました。

 

あとはBeginplayでInitilizeRotationSettingsを呼び出し自由に利用できます。

 

お疲れさまでした!

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやX(Twitter)のフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

投げ銭を投げる