2.

【UE5】C++で編集となっているコンポーネントをブループリントで編集する方法

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!

Unreal Engine 5(UE5)では、一部のコンポーネントが「C++で編集」となっており、ブループリントから直接編集できないことがあります。しかし、いくつかの方法を使えば、ブループリント側で設定や動作を変更することが可能です。本記事では、その方法について詳しく解説します。

1. C++で編集可能なコンポーネントとは?

UE5では、C++で作成されたアクタ(Actor)やコンポーネントの中には、デフォルトではブループリントで直接変更できないものがあります。例えば、C++で定義されたプロパティ関数が「EditAnywhere」などの修飾子を持っていない場合、それらはブループリント上で編集することができません。

2. ブループリントで編集可能にする方法

ブループリントで編集するためには、C++側でいくつかの設定を行う必要があります。

2.1 プロパティを編集可能にする

C++のコード内で変数をブループリントから編集可能にするには、以下のようにUPROPERTYマクロを使用します。

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings") float ExampleValue;

この設定を行うことで、ブループリントエディタ上で「ExampleValue」を変更できるようになります。

2.2 関数をブループリントで呼び出す

ブループリントからC++の関数を実行できるようにするには、UFUNCTIONマクロを使います。

UFUNCTION(BlueprintCallable, Category = "Actions") void ExampleFunction();

この設定を行うことで、ブループリントのノードとして「ExampleFunction」を呼び出せるようになります。

3. 継承を利用してブループリントから編集する

完全にC++で定義されたコンポーネントを直接ブループリントで編集できない場合でも、C++で定義したクラスをブループリントクラスとして継承することで、設定を変更できるようになります。

手順は以下の通りです。

  • C++で基底クラス(親クラス)を作成
  • UE5のエディタ上で新規ブループリントを作成し、基底クラスを指定
  • ブループリントで変数や関数をオーバーライドして編集

4. コンストラクタでの初期化を見直す

コンポーネントがブループリントで変更できない理由の一つに、C++のコンストラクタで初期化が行われている場合があります。この場合、プロパティがブループリントで変更できるようにするには、以下のようにPostInitPropertiesをオーバーライドすることで解決できます。

void AMyActor::PostInitProperties() { Super::PostInitProperties(); MyValue = 100.0f; // デフォルト値を設定 }

5. まとめ

「C++で編集」となっているコンポーネントをブループリントで編集するためには、いくつかのアプローチが必要になります。

  • UPROPERTYマクロを使用してプロパティを公開
  • UFUNCTIONマクロでブループリント呼び出しを許可
  • ブループリントクラスをC++クラスから継承
  • コンストラクタでの初期化方法を見直す

これらの方法を活用することで、C++で作成されたコンポーネントをブループリント側で柔軟に編集・操作できるようになります。ぜひ試してみてください!

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
  1. ブループリントで途中から親クラスを指定する方法
  2. C++で編集となっているコンポーネントをブループリントで編集する方法
  3. ブループリントでBoolean変数の初期値を変更する方法
  4. ブループリントで特定のキーが押された時にイベントを発火させる方法
  5. ブループリントで配列からインデックスを指定して取得する方法
  6. Blueprintで「Esc」キーを使ってイベントを発生させる方法
  7. Blueprintで「Cast To」を使い、複数のクラスに対応する方法
  8. Blueprintで指定した確率で処理を分岐させる方法
  9. FrameGrabberをBlueprintで使用する方法
  10. ブループリントで現在日時を取得する方法