Language:
Page Info
Skill Level:
Engine Version:

Animation Modifier

この機能は現在、実験的段階にあります。そのため、一部の機能は期待通りの動作をしない場合があります。

Animation Modifiers (Anim Modifier) は、ネイティブまたは ブループリント クラス の一種で、 アニメーション シーケンス または スケルトン アセットにアクション シーケンスを適用することができます。 これには、足の自動同期マーカーを作成するなどが考えられます。左または右の足が地面に触れるのはどのフレームであるかをピンポイントで示します。こうした情報を使って、足の骨が最も低いポイント (フロアに接触する) にくる場所に Animation Sync Markers を追加します。

ここでは、Anim Modifier を使って足の自動同期マーカーを作成しています。

Anim Modifier は、アニメーション エディタ または スケルトン エディタ[Animation Data] タブから適用します。 Anim Modifier をスケルトンに適用する場合、そのスケルトンに基づいたすべてのアニメーション シーケンスに適用されます。 アニメーション シーケンスに Animation Modifier を適用する場合、そのシーケンス自体にのみ適用されて他のシーケンスには適用されません。

Anim Modifier を作成する

まず、Anim Modifier Blueprint クラスを作成する必要があります。

  1. プロジェクトの コンテンツ ブラウザ[Add New] ボタンをクリックして、[Blueprint クラス] を選択します。

    Create_01.png

  2. [Pick Parent Class (親クラスを選択)] ウィンドウで [All Classes] を展開し、Animation Modifier を検索して選択し、[Select] をクリックして名前を付けます。

    Create_02.png

  3. 新規 Animation Modifier ブループリントをダブルクリックしてブループリント エディタで開きます。

    Create_03.png

Anim Modifier が作成された状態で、ブループリント スクリプトと Animation Blueprint Library (アニメーション ブループリント ライブラリ) に入っているブループリント スクリプトと関数を使用してアニメーション データにアクセスして操作することができます。

Animation Blueprint Library

Anim Modifier ブループリントのグラフで右クリックして、コンテキスト メニューと利用可能な関数のリスト、特に Animation Blueprint Library に入っているものを確認します。

AnimBPLibrary.png

上の画像では、Marker Syncing に関連する関数が展開されています。これにより、マーカー データを使ってアニメーションを同期させることができます。

利用可能な様々な関数を使ってデータにアクセスするための作業を開始する前に、OnApply event と OnRevert event を実装します。 OnApply Event では、アニメーションのデータを変更、アニメーションにデータを追加、またはアニメーションからデータを取り除くことができます。OnRevert は、以前適用した変更を取り除くことができます (またはシーケンスをオリジナルの状態に戻します)。 各イベントは、Animation Blueprint Library の操作を入力するアニメーション シーケンスを戻します。

EventNodes.png

上の画像では、Anim Modifier を適用する場合に、新規 Notify トラックが定義した名前で作成されています。Anim Modifier をリバートするとトラックが取り除かれます。

Anim Modifier を実装する

Anim Modifier の実装は、Skeleton アセット (スケルトンに関連するすべてのアニメーションに対して Anim Modifier を追加するため) 内または単一のアニメーション シーケンスで行うことができます。

  1. スケルトン エディタ または アニメーション エディタ 内で、[Window] メニュー オプションに進んで、[Animation Data Modifiers] を選択します。

    Implement_01.png

  2. [Animation Data Modifiers] タブで、[Add Modifier] を選択し、必要な [Anim Modifier Blueprint] を選択します。

    Implement_02.png

  3. Anim Modifier ブループリント上で右クリックします。次に、Apply Modifier をクリックして Anim Modifier および変更 (変更を取り除くには、Revert Modifier) があれば適用します。

    Implement_03.png

    適用するまで Anim Modifier は、Out of Date と表示されます。

    以下は、スケルトン アイコンで示されている Skeleton アセットに適用された Anim Modifier の例です。

    SkeletonModifier.png

Instance Editable として設定したプロパティは、[Animation Data Modifiers] タブで利用することができます。

Implement_04.png

上の画像では、足を自動的に同期させるために使用可能なプロパティを定義しています。

プロパティを公開する

Anim Modifier ブループリント内で、アニメーション ツールの Animation Tab で操作できるパラメータを Instance Editable を使って公開することができます。

InstanceEditable.png

上の画像では、ボーン名に対して設定可能な情報を含み、オフセットも提供する構造体変数を使用しています。

アニメーション シーケンス内で、Anim Modifier を実装して適用すると、公開されたパラメータが見えます。

AnimDataVariables.png

上の画像では、アニメーション データ (Bone Transform など) を集める Anim Modifier に含めたいボーン名を入力しています。

Animation Blueprint Library のリファレンス

Animation Blueprint Library 内には数種類のノードがあります。このセクションでは、Anim Modifier の中でも一般的に使用されるものを取り上げます。

Add/Remove Notify と Curve Tracks

NotifiesAndCurves.png

こうしたノードを使うと、指定したアニメーション シーケンスに Notify または Curve Track を動的に追加することができます。 Notify または Curve Track が追加されると、様々なタイプのキーやイベントをこうしたトラックに追加することができます。 例えば Add Float Curve Keys を Curve Track に、Add Animation Notify Events または Add Animation Sync Markers を Notify Track に追加することができます。

AddMarkers.png

Get Bone Pose

GetPose.png

使用可能な Bone Transform データを取得するために、Get Bone Pose for Frame ノードまたは Get Bone Pose for Time ノードを使用して、指定したアニメーション シーケンスに対して指定したボーン名のボーン トランスフォームを戻します。 または、Get Bone Poses for FrameGet Bone Poses for Time を使用して、指定した一連のボーン名に対するボーン トランスフォームを収集することができます。

ボーン トランスフォームを取得する場合、トランスフォーム データはローカル空間のものになります。コンポーネント空間である必要があれば、手動でトランスフォームを変換する必要があります。

Helper Node

HelperNodes.png

Animation Blueprint Library ノードには、フレームと時間の情報を変換するためのノード (Get Time at Frame または Get Frame at Time) を含むいくつかのヘルパー ノードがあります。 情報取得に役立つもうひとつのノードとして、Find Bone Path to Root があります。これは、アニメーション シーケンスとボーン名 (通常はルート ボーン) を使って、一連のボーン名のリストを出力します。