Property Access を使用すると、アニメーション ブループリント内の ゲーム スレッド でのみアクセスできるコンポーネントと変数にアクセスできます。Property Access を使用してコンポーネントまたは変数を呼び出すと、そのデータのスナップショットが取得されます。これを使用して、アニメーション グラフ、アニメーション ノード関数、Blueprint Thread Safe 関数、またはイベント グラフで関数ロジックを動作させることができます。プロパティ アクセスを使用すると、プロジェクトが ゲーム スレッド で評価する必要のある作業量が減り、手動で実行する必要のあるブループリント スクリプトの量も減り、ゲームとワークフローのパフォーマンスが向上します。
プロジェクトのアニメーション システムの最適化に使用できるプロパティ アクセス ノード、ピン、関数の詳細については、下記のドキュメントからご確認いただけます。
概要
アニメーション ブループリントでロジックを作成する場合、通常はイベント グラフを使用して、他のブループリントやコンポーネントに変数やインターフェースを設定します。イベント グラフは常にプロジェクトの ゲーム スレッド で評価されます。
アニメーション システムのパフォーマンスを向上させるために、Property Access 関数 を使用して、アニメーション グラフが更新されているのと同じ ワーカー スレッド で イベント グラフ の関数を実行することもできます。たとえば、Property Access を使用すると、キャラクタ ブループリントにキャストしたり、速度ベクターを抽出するための関数ノードを作成したりしなくても、キャラクターの速度に直接アクセスできます。
| Property Access なし | Property Access あり |
|---|---|
![]() |
![]() |
Property Access 関数
Property Access は、関数グラフを評価してゲーム スレッド変数またはコンポーネントのデータのスナップショットを取得し、そのデータをスレッドセーフと互換性のあるデータに変換することによって機能します。Property Access ノードを作成する際、またはアニメーション ブループリント ノード ピンでプロパティ アクセス関数を呼び出す際は、プロジェクトの基本コンポーネントおよび変数にアクセスする、事前に生成された多数の関数から選択できます。
これらの関数により、キャラクターの速度、移動方向、移動コンポーネント参照などの変数やコンポーネントを用意できます。そしてこれらは、アニメーション ポーズの選択や AnimGraph でのブレンドの制御に使用できます。
Property Access ノードとピンのバインドの詳細については、「Property Access バインディング」セクションを参照してください。
カスタムの Property Access 関数
より具体的な値または一意の値を出力するために、カスタムの Property Access 関数を作成することもできます。カスタムの Property Access 関数を作成するには、まず [My Blueprint (マイ ブループリント)] パネルで [Add (追加)] (+) を選択して、新しい関数をグラフに追加します。
Return ノードを作成し、Function ノードに接続します。
Return ノード を選択し、[Details (詳細)] パネルで [Pure] プロパティを有効にします。
[Add] (+) を使用して新しい出力値を追加し、出力に「ReturnValue」という名前を付けます。
出力には、正確に「ReturnValue」という名前を付ける必要があります。名前が違う場合、Property Access ノードまたはピン バインディングから Property Access 関数にアクセスできなくなります。
これで、Return ノードの出力ピンを設定するロジックを構築できるようになりました。これが、関数にバインドされた Property Access ノードまたはピンの出力になります。
[Bind (バインド)] ドロップダウン メニューから関数を選択することにより、Property Access 関数を任意の Property Access ノードまたはピンにバインドできるようになりました。Property Access 関数は、出力のデータ型に応じて色分けされます。
パフォーマンスを最適化するには、Property Access 関数の Thread Safe プロパティを有効にすることをお勧めします。関数をスレッド セーフとして有効にした後に、Property Access も使用してすべての変数とコンポーネントの参照を作成する必要があります。カスタムの Property Access 関数をスレッド セーフにすることで、アニメーション システムのパフォーマンスを大幅に向上させることができます。
Property Access バインディング
Property Access ノードを使用するか、既存のアニメーション ブループリント ノードのピンのバインディングとして、アニメーション ブループリント内の任意の場所でデフォルトおよびカスタムのプロパティ アクセス関数にアクセスできます。
ノードとして使用する
Property Access ノードは、アニメーション ブループリント内のどこにでも作成できます。Property Access ノードを作成するには、 AnimGraph を右クリックして、[Variables (変数)] カテゴリから Property Access を選択します。
Property Access ノードを作成した後、アクセスするコンポーネントまたは変数を参照するには、それを 関数 にバインドする必要があります。必要な要件を満たしている場合は、カスタムの Property Access 関数グラフをバインドすることもできます。関数をプロパティ アクセス ノードにバインドするには、[Bind (バインド)] ドロップダウン メニューから関数を選択します。
関数は階層別に編成されており、親コンポーネント関数にはその子プロパティに対応する子関数が含まれています。たとえば、親関数を超えて移動して、それに含まれるより具体的なプロパティを分離することが可能です。この例では、 Get プロパティのパスが TryGetPawnOwner から GetActorLocation、特定の軸の浮動小数値 (X、Y、Z) まで作成されます。
Property Access ノードをバインドすると、そのノードを使用してグラフ内のコンポーネントまたは変数にアクセスし、ノードのロジックを操作できるようになります。
ピンとして使用する
プロパティ アクセス関数をいくつかの AnimNode ピンに直接バインドすることもできます。Property Access 関数を AnimNode ピンにバインドするには、グラフ内のノードを選択し、ノードの [Details] パネルで入力ピンのバインド設定に移動します。[Pin (ピン)] ドロップダウン メニューから [Function (関数)] を選択して、ピンの値を動的に操作します。
プロパティ アクセスの設定
プロパティ アクセスのコンテキスト メニューには、以下の選択項目とプロパティがあります。
| 名前 | 説明 |
|---|---|
| Call Site (呼び出しサイト) | [Call Site] は、バウンドされた Property Access 関数をどの CPU スレッドで実行するかを制御します。以下のオプションから選択できます。
|
| Functions (関数) | ノードまたはピンにバインドする Property Access 関数を選択します。 |
| プロパティをプレビュー | アニメーション ブループリント内に含まれる変数またはコンポーネント参照を選択し、Property Access ノードまたはピンにバインドできます。 |
追加リソース
ブループリントのスレッド セーフ関数とプロパティ アクセスを使用してアニメーション システムを最適化する方法の詳細については、「アニメーションの最適化」ドキュメントを参照してください。
ブループリントのスレッド セーフな関数とプロパティ アクセスを使ってアニメーション変数を取得するワークフロー例については、「アニメーション変数を取得する方法」ドキュメントを参照してください。
スレッド セーフな関数を使用するために Unreal Engine プロジェクトを最適化するワークフロー例については、「Lyra アニメーションを UE5 ゲームに適応する方法について」ブログ記事を参照してください。

