アニメーション属性

アニメートされたカスタム FBX 属性をアニメーション シーケンスにインポートして使用します。

カスタム ノード属性を FBX アニメーション シーケンス にインポートして、アニメーション データ駆動のさまざまな設定を作成できます。カーブ などの他のアニメーション データとは異なり、属性はシーケンスごとに格納されて、さまざまなプロパティ タイプをサポートします。

このドキュメントでは、Unreal Engine でアニメーション属性をインポートして参照する方法の概要を説明します。

前提条件

属性をインポートする

アニメーション属性のインポートをアニメーション シーケンスで始めるには、アニメーションを含む属性がボーンに含まれることを確認する必要があります。通常、これは Autodesk Maya などの DCC ソフトウェアで行われます。この例では、root Bone にカスタム浮動小数属性が含まれています。

custom attribute in maya

現在、インポートがサポートされている属性データ タイプは、浮動小数 (Float)整数 (Integer)文字列 (String)、そして トランスフォーム (Transform) です。

[Project Settings (プロジェクト設定)] の設定

属性を正しくインポートするには、それらが [Project Settings (プロジェクト設定)] で定義されていることを確認する必要があります。Unreal Engine のメイン メニューから [Edit (編集)] > [Project Settings (プロジェクト設定)] に行き、[Engine (エンジン)] > [Animation (アニメーション)] セクションに含まれる [Custom Attributes (カスタム属性)] 設定を見つけます。以下の設定を使用できます。

project settings custom attributes

名称

説明

Bone Timecode Custom Attribute Name Settings (ボーン タイムコード カスタム属性名の設定)

タイムコード関連の一連のプロパティと、それらのカスタム属性へのデフォルト マッピングです。プロジェクトで異なる属性名を使用している場合は、これらの設定を変更して、異なるタイムコード属性にマッピングできます。

  • Hour Attribute Name (時間属性名) - 整数 属性で、デフォルトで TCHour に設定されています。

  • Minute Attribute Name (分属性名) - 整数 属性で、デフォルトで TCMinute に設定されています。

  • Second Attribute Name (秒属性名) - 整数 属性で、デフォルトで TCSecond に設定されています。

  • Frame Attribute Name (フレーム属性名) - 整数 属性で、デフォルトで TCFrame に設定されています。

  • Subframe Attribute Name (サブフレーム属性名) - 浮動小数 属性で、デフォルトで TCSubframe に設定されています。

  • Rate Attribute Name (レート属性名) - 整数 属性で、デフォルトで TCRate に設定されています。

  • Takename Attribute Name (テイク名属性名) - 文字列 属性で、デフォルトで Takename に設定されています。

timecode custom attributes

これらはインポートする属性名のリストに含まれて、[Bone Custom Attributes Names (ボーン カスタム属性名)] 配列に追加されたかのように動作します。

Bone Custom Attributes Names (ボーン カスタム属性名)

アニメーションのインポート時に検索するカスタム属性名を定義する配列です。このリストで属性名を定義すると、スケルトンに含まれるすべてボーンでその属性が検索されます。

+ (追加) アイコン をクリックして属性をリストに追加し、次のプロパティを設定します。

  • Name (名前) - カスタム アニメーション属性に一致する名前です。

  • Meaning (意味) - オプションのフィールドで、属性の追加コンテキストを定義できます。

bone custom attribute names

Bone Names with Custom Attributes (カスタム属性を持つボーン名)

アニメーションのインポート時にカスタム属性をフィルタリングするボーンのリストを定義できる配列です。このリストでボーンを定義すると、アニメーションのインポート時に、そのボーンからのすべてのカスタム属性がインポートされます。

+ (追加) アイコン をクリックしてアイテムをリストに追加し、ボーン名を定義します。

bones names with custom attributes

Attribute Blend Modes (属性ブレンド モード)

ブレンド時における特定の属性の動作を定義する配列です。この設定は、グローバルな [Default Attribute Blend Mode (デフォルトの属性ブレンド モード)] の設定を属性ごとに上書きするものです。

+ (追加) アイコン をクリックしてアイテムをリストに追加し、属性名を定義してブレンド モードを設定します。

  • Override (オーバーライド) - ブレンド時に、最も大きな重みに応じてカスタム属性の値を上書きします。

  • Blend (ブレンド) - アニメーションの重みに従って、アニメーション間のカスタム属性の平均値を設定します。

attribute blend modes

Default Attribute Blend Mode (デフォルトの属性ブレンド モード)

すべてのカスタム属性に使用するデフォルトのブレンド モードです。[Attribute Blend Modes (属性ブレンド モード)] に似ており、[Override (オーバーライド)] または [Blend (ブレンド)] を選択できます。

Transform Attribute Names (トランスフォーム属性名)

トランスフォーム属性 のインポート時に検索するトランスフォーム ノードの名前です。

カスタム属性のインポート方法に応じて、[Bone Custom Attribute Names] または [Bone Names with Custom Attributes] のいずれかで値を設定します。例えば、root Bone で作成した 2 つのカスタム属性をインポートしたい場合は、次のいずれかを行います。

  • [Bone Custom Attributes Names] で 2 つの配列エントリを作成し、それらの名前を目的の属性と一致させます。

    bone custom attribute names example

  • [Bone Names with Custom Attributes] で 1 つのエントリを作成し、その名前を「root」に設定します。

    bone names with custom attributes example

[Project Settings] でカスタム属性を設定したら、カスタム属性を含む アニメーション シーケンスをインポートできます。FBX をインポートする際は、[Import Custom Attribute (カスタム属性をインポート)] が有効になっていることを確認してください。

import custom attribute

アニメーション シーケンス

カスタム属性を含むアニメーション シーケンスをインポートすると、その属性を アニメーション シーケンス エディタ で表示できるようになります。属性は、タイムライン[Attributes (属性)] > ボーン名 > 属性名 にトラックとして表示されます。

attributes in animation sequence

マウス カーソルを属性名に合わせると、タイプやキーフレーム数など、その属性の詳細が表示されます。

attribute information

トランスフォーム属性

カスタム トランスフォーム属性 もインポートすることができますが、インポートには異なるワークフローが必要になります。トランスフォーム属性は、追加の ソケット やボーンを加えることなく、アニメーション シーケンス内に補助的なトランスフォーム情報を提供する際に便利です。

transform attribute

FBX 設定

ボーンにはすでに基本的なトランスフォーム属性が含まれているため、代わりに、カスタム属性の適用先となるボーンの子ノードを作成する必要があります。これは、ロケーター または空白の ノード になります。

この例では、「MyTransformAttribute」という名前の ロケーターhand ボーン の子に設定されています。これは、他のノードや属性と同様に、任意の方法でキーフレーム化することができます。

create and parent locator to bone

設定とインポート

次に、[[Project Settings] の Custom Attributes] でトランスフォーム属性の名前を定義する必要があります。[Transform Attribute Names] を見つけて + (追加) アイコン をクリックし、アイテムを作成して、トランスフォーム属性ノードの名前を追加します。

transform attribute names

これで、カスタム トランスフォーム属性を含む アニメーション シーケンスをインポートできます。インポートが完了すると、トランスフォーム属性が タイムライン[Attributes] > ボーン名 > 属性名 にトラックとして表示されます。

transform attributes in animation sequence

ビューポート メニューの [Character (キャラクター)] > [Bones (ボーン)] をクリックして [Attributes (属性)] を有効にすることで、アニメーション シーケンス ビューポートでカスタム トランスフォーム属性を視覚化することができます。

show transform attribute

属性を参照する

属性は、スケルタル メッシュ コンポーネント をターゲットとする Get Attribute 関数を使用することで、ブループリント で参照して読み取ることができます。次の関数を使用できます。

  • Get Float Attribute

  • Get String Attribute

  • Get Integer Attribute

  • Get Transform Attribute

reference attributes in blueprints

これらの関数には、次の共通ピン情報が含まれます。

名称

説明

Target

ターゲットとする スケルタル メッシュ コンポーネント

Bone Name

カスタム属性を含むボーンの名前。

Attribute Name

検索するカスタム属性の名前。

Default Value

属性が見つからない場合は、この値が Out Value (値を出力) に送信されます。

Lookup Type

スケルトンでの属性の検索方法を指定します。次のオプションがあります。以下の選択肢があります。

  • Bone Only (ボーンのみ) - 属性の検索は指定した Bone Name のみで行われます。

  • Immediate Parent (直接の親) - 属性の検索は指定した Bone Name と、その最初の親ボーンで行われます。

  • Parent Hierarchy (親階層) - 属性の検索は指定した Bone Name と、直接的な上の階層 (ルート ボーンまで) で行われます。

Out Value

属性の値を渡すか、属性が見つからない場合は Default Value (デフォルト値) を渡します。

Return Value

この関数の実行時に属性が見つかった場合は true を出力し、それ以外の場合は false を出力します。

Get Attribute Ref

Get Attribute Ref 関数を使用することもできます。これらの関数は、Out Value に接続された 変数 を必要とします。これにより、このピンにリンクした変数に値が書き込まれます。Get Attribute 関数とは異なり、属性が見つからなかった場合、Get Attribute Ref では属性の最後の値を維持します。

get attribute ref

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル