アニメーション通知 (Animation Notifies または単に Notifies) は、アニメーション シーケンス に同期された繰り返し可能なイベントを作成する手段を提供します。これらのイベントは、サウンド (歩行アニメーションまたは走行アニメーションの足音など)、スポーンされたパーティクルなどである可能性があります。アニメーション通知にはさまざまな用途があり、カスタム タイプでシステムを拡張することができます。
このドキュメントでは、各種アニメーション通知の概要、作成方法、およびさまざまな使用方法について説明します。
前提条件
- アニメーション通知は アニメーション シーケンス 内で作成されるため、プロジェクトに スケルタル メッシュ と アニメーション シーケンス が必要です。
使用を開始する
アニメーション通知は、通常、アニメーション シーケンス内でアクセスおよび作成します。まず、Animation Sequence アセット を開いて、タイムラインで Notifies トラックを特定します。
Notifies トラックは、実際の通知キーフレームを含む、下の個々の子トラックの親グループです。デフォルトでは、1 つの子トラックが存在します (名前は 1)。子トラックがない場合、または通知トラックを追加する場合は、Notifies トラックで [(+) Track (トラック追加)] > [Add Notify Track (通知トラックを追加)] をクリックします。
また、子トラック自体の [(+) Track (トラック追加)] ドロップダウン メニュー をクリックし、[Insert Notify Track (通知トラックを挿入)] または [Remove Notify Track (通知トラックを削除)] を選択すると、通知トラックを挿入または削除することができます。
Notify トラックの名前を変更するには、トラック テキストをトリプルクリックすると、文字列を編集できます。
アニメーション通知のタイプ
作成できるアニメーション通知には複数のタイプがあります。通知を作成する際に Notify トラックのタイムライン領域を右クリックすると、作成可能なタイプが表示されます。
通知
最も基本的なアニメーション通知は、単に Notify という名称で、指定した時間に異なる事前作成済みのイベントをトリガーします。[Add Notify… (通知を追加…)] メニューを表示すると、次の通知が表示されます。通知を選択すると、カーソル位置に Notify キーフレームが作成されます。
通知キーフレームを編集するには、タイムラインでキーフレームをドラッグします。また、Shift キーを押しながら操作すると、Notify と同期して 再生ヘッド が動くため、アニメーションの特定の時間に通知を簡単に合わせることができます。
パーティクル エフェクト
パーティクル エフェクト 通知を使用すると、ループしないパーティクル システムをスポーンして再生することができます。次のいずれかを選択できます。
- Play Niagara Particle Effect (Niagara パーティクル エフェクトを再生)。Niagara パーティクル をスポーンします。
- Play Particle Effect (パーティクル エフェクトを再生)。従来のカスケード パーティクル をスポーンします。
この通知は、キャラクターがジャンプして着地したときのエフェクト、スケルタル メッシュの武器の射撃エフェクトなど、繰り返し可能なパーティクル エフェクトを作成するうえで役立ちます。
Particle Notify キーフレームを選択すると、以下の関連プロパティが [Details (詳細)] パネルに表示されます。
名称 | 説明 |
---|---|
Particle System / Niagara System | この通知でスポーンするカスケード システムまたは Niagara システム。 |
Location / Rotation / Scale Offset | スポーン ポイントからシステムをオフセットするための、位置、回転、およびスケール トランスフォーム プロパティの配列。 |
Attached | ソケット に対してスポーンされた場合、このプロパティを有効にするとパーティクル システムが、存続期間全体を通じて、ソケットに完全に追従します。このプロパティを無効にしても、ソケットの位置でパーティクル システムがスポーンされるものの、システムが引き続きソケットに追従することはありません。 |
Socket Name | このプロパティでボーンまたは ソケット を指定すると、その位置でパーティクル システムがスポーンされます。何も指定しない場合は、オブジェクトのルートでシステムがスポーンされます。 |
サウンド
Sound 通知を使用すると、インポートしたサウンド ウェーブ、 サウンド キュー、 MetaSound から効果音を再生できます。この通知は、足音や衣擦れなどの繰り返し発生する音をフォーリータイプのサウンドをアニメーションに同期させるうえで役立ちます。
Sound Notify キーフレームを選択すると、以下の関連プロパティが [Details] パネルに表示されます。
名称 | 説明 |
---|---|
Sound | この通知で再生する Sound アセット。以下のアセットから選択できます。
|
Volume Multiplier | 再生されているサウンドのボリュームをアップ/ダウンする乗数です。 |
Pitch Multiplier | 再生されているサウンドのピッチを増減する乗数です。 |
Follow | 有効にすると、サウンド エフェクトの音源がアニメートしたメッシュの動きに追従します。無効の場合、スポーンした場所にサウンドが残ります。 |
Preview Ignore Attenuation | 有効にすると、サウンドの再生時に サウンドの減衰 が無効になります。この設定はエディタ専用で、ゲームのプレイ時やシミュレート時の通常のサウンドの減衰動作には影響しません。 |
Attach Name | Follow が有効な場合は、アタッチ先のボーンまたはソケットを指定できます。何も指定しない場合は、オブジェクトのルートでサウンドがスポーンされます。 |
クロス シミュレーション
Clothing Simulation (クロス シミュレーション) 通知を使用すると、キャラクターのクロス シミュレーションを一時停止、再開、リセットすることができます。これらの通知は、アニメーション中にキャラクターがテレポートしたり、クロスの評価を一時停止またはリセットする必要がある場合に役立ちます。また、アニメーションによってクロス シミュレーションが過剰に反応している場合にも役立ちます。
次の通知を選択できます。
- Pause Clothing Simulation。シミュレーションを一時停止します。
- Resume Clothing Simulation。一時停止されているシミュレーションを再開します。
- Reset Clothing Simulation。シミュレーションをデフォルトの参照ポーズに初期化します。
ダイナミクス リセット
Reset Dynamics (ダイナミクス リセット) 通知を使用すると、スケルタル メッシュで使用されているすべての AnimDynamics を元の状態にリストアできます。この通知は、アニメーションによって AnimDynamic シミュレーションが過剰に反応したり、壊れたような見かけになる場合に役立ちます。
スケルトン通知
Skeleton (スケルトン) 通知は、 スケルトン アセット に保存され、 アニメーション ブループリント 内のイベントとして使用されるカスタム通知です。この通知は、通知を実行する任意のブループリント ロジックを作成するのに役立ちます。
スケルトン通知を作成するには、通知トラックを右クリックし、[Add Notify (通知を追加)] > [New Notify… (新規通知…)] を選択します。
新しく作成された通知の名前を入力するプロンプトが表示されます。名前を付けて Enter キーを押し、スケルトン通知を作成します。
スケルトン通知は、スケルトン アセット に格納されます。そのため、スケルトン通知の作成時には、 スケルトン も編集していることになり、そのスケルトンも保存する必要があります。
また、Notify トラックを右クリックし、[Add Notify] > [Skeleton Notifies (スケルトン通知)] メニューからスケルトン通知を選択すると、既存のスケルトン通知をタイムラインに追加することができます。
スケルトン通知は、アニメーション ブループリントの イベント グラフ または 遷移グラフ で、Notify イベント として使用されます。Skeleton Notify イベント を追加するには、アニメーション ブループリント の イベント または 遷移グラフ で右クリックし、[Add Anim Notify Event (アニメーション通知イベントを追加)] メニューから [Notify (通知)] を選択します。これにより、イベント ノードがグラフに追加され、このノードが配置されているアニメーションから通知が呼び出されるとノードが実行されます。
通知ステート
Notify States (通知ステート) は、標準の通知と同様に機能するものの、単一のイベントに対してではなく、特定の期間で機能します。そのため、通知ステートでは、start (開始)、update (更新)、end (終了)の 3 種類のイベントを提供します。このイベントは、 通知ステートの子クラス を作成するときにアクセスすることができます。
また、標準の通知と同じように、複数の事前作成済みのクラスが提供されており、その中から選択することができます。[Add Notify State… (通知ステートを追加…)] メニューを表示すると、次の通知が表示されます。通知を選択すると、カーソル位置に Notify キーフレームが作成されます。
Notify State キーフレームは、通常の通知と同様にタイムライン上でドラッグして編集することができます。開始または終了をドラッグして範囲を編集するか、通知全体をドラッグして編集できます。
時間制限パーティクル エフェクト
パーティクル エフェクト 通知と同様に、Timed Particle / Niagara Effects 通知は、アニメーション中にパーティクルを再生するために使用されます。主な違いは、パーティクルがループするように設定されている場合、パーティクルの存続期間も定義できることです。パーティクル通知は次のタイプから選択できます。
- Timed Particle Effect (時間制限パーティクル エフェクト)。従来のカスケード パーティクル をスポーンします。
- Timed Niagara Effect (時間制限 Niagara エフェクト)。Niagara パーティクル をスポーンします。
- Advanced Timed Niagara Effect (高度な時間制限 Niagara エフェクト)。Niagara パーティクル内のパラメータを制御する追加オプションを使用して、Niagara パーティクルをスポーンします。
Timed Particle (時間制限パーティクル) 通知は、通常の Particle Effect 通知と詳細は同じですが、Advanced Timed Niagara 通知では、以下のプロパティが追加されます。
名称 | 説明 |
---|---|
Enable Normalized Notify Progress | このプロパティを有効にすると、通知ステートが、[User Parameter (ユーザー パラメータ)] で指定された Niagara User Parameter (ユーザー パラメータ) に通知の持続期間にわたって正規化された値 (0-1) を出力します。このパラメータは 0 から開始し、通知が終了すると 1 に補間されます。このプロパティは、特定のパーティクル パラメータを通知の持続期間に関連付ける必要がある場合に役立ちます。 |
User Parameter | [Enable Normalized Notify Progress] が有効な場合に、制御する Niagara ユーザー パラメータの名前。 |
Anim Curve Parameters | アニメーション カーブ 値を Niagara ユーザー パラメータにリンクできる配列。[Add (+) (追加 (+)] をクリックして配列にアイテムを追加し、以下のプロパティを指定することができます。
|
トレイル
Trail (トレイル) 通知は、Timed Particle Effects と類似しており、通知の持続期間中にパーティクル システムをスポーンします。この通知は他の通知と異なり、主に AnimTrail Cascade Particles、 で使用され、トレイルのアタッチとプロパティを制御するための追加のプロパティを含んでいます。
Trail 通知を選択すると、[Details] パネルに以下のプロパティが表示されます。
名称 | 説明 |
---|---|
PSTemplate | 使用対象の AnimTrail カスケード パーティクル システム。 |
First / Second Socket Name | AnimTrail のアタッチ ポイントを定義するために使用される各プロパティに対して、このプロパティで個別のボーンまたはソケットを指定できます。また、これら 2 つのアタッチ ポイント間の距離に基づいて、トレイルのデフォルトの幅を定義します。 |
Width Scale Mode | Width Scale Curve が使用されている場合、トレイルの幅の相対的なスケール ポイントを定義します。以下のオプションから選択できます。
|
Width Scale Curve | このプロパティでは、必要に応じて、 アニメーション カーブ を指定することができ、アニメーション中にトレイルのスケール幅をアニメートするのに使用できます。1.0 の値ではデフォルトの幅を維持し、より高い数値では幅を広げ、より低い数値では幅を狭めます。 |
Render Geometry | メインのトレイル ジオメトリのレンダリングを有効にし、有効な状態を維持します。 |
Render Spawn Points | トレイルの主なスポーン ポイントのデバッグ レンダリングを有効にします。 |
Render Tangents | カーブ接線のデバッグ レンダリングを有効にします。 |
Render Tessellation | カーブ上の全頂点のデバッグ レンダリングを有効にし、スポーン ポイント間でカーブがどのようにテッセレーションされるかを示します。 |
同期マーカー
Sync Markers (同期マーカー) は、 マーカーベースのアニメーションの同期 を通知するために使用される通知で、複数のアニメーションをブレンドして全体のモーションが同期した状態を維持するのに役立ちます。スケルトン通知 と同様に、同期マーカーはスケルトン アセットに保存されるため、同期マーカーを追加する際にはスケルトンを保存する必要があります。ブレンド時に同期する必要のあるアニメーションでは、同一の同期マーカーを繰り返し使用することができます。
同期マーカーの使用方法の詳細については、「同期グループ」を参照してください。
モンタージュ通知
アニメーション モンタージュ を作成する際は、モンタージュ固有のワークフローをサポートするために、追加のアニメーション通知タイプを使用できます。モンタージュでは、以下の通知を追加することができます。
- Montage Notify (モンタージュ通知)。追加するには、通知タイムライン上で右クリックし、[Add Notify] > [Montage Notify (モンタージュ通知)] を選択します。
- Montage Notify Window (モンタージュ通知ウィンドウ)。追加するには、通知タイムライン上で右クリックし、[Add Notify State] > [Montage Notify Window (モンタージュ通知ウィンドウ)] を選択します。
- Disable Root Motion (ルート モーションを無効化)。追加するには、通知タイムライン上で右クリックし、[Add Notify State] > [Disable Root Motion (ルート モーションを無効化)] を選択します。
モンタージュ通知
Montage Notify (モンタージュ通知) は、Notify キーフレームに到達するとイベントを実行するという点で、標準の通知と同様に機能します。到達すると、On Notify Begin イベントが Play Montage ブループリント関数で実行されます。このため、Play Anim Montage ノードではなく Play Montage ノードを使用してモンタージュを再生する必要があります。
モンタージュ通知ウィンドウ
Montage Notify Window (モンタージュ通知ウィンドウ) は、通知が定義した期間にわたって機能するという点で、通知ステートと同様に機能します。このため、On Notify Begin と On Notify End の両方が、通知の開始と終了に達したときに実行されます。このため、Play Anim Montage ノードではなく Play Montage ノードを使用してモンタージュを再生する必要があります。
ルート モーションを無効化
Disable Root Motion (ルート モーションを無効化) 通知は、通知が定義した期間にわたって機能するという点で、通知ステートと同様に機能します。この通知は、ルート モーションを抑制し、通知の持続期間にわたってユーザー入力によるキャラクターのコントロールを可能にします。これは、デフォルトで入力をロックしているモンタージュの一部で入力コントロールを可能にする必要がある場合に役立ちます。
通知を管理する
アニメーション通知を作成および使用する際は、ワークフローと通知動作のカスタマイズに使用できる複数の機能とプロパティがあります。
キーフレーム編集
Notify キーフレームを右クリックすると、情報やコマンドを表示することができます。このコンテキスト メニューでは以下が表示されます。
名称 | 説明 |
---|---|
Notify Begin Time (通知開始時間) | この通知がアニメーションに配置される時間 (秒単位)。 |
Notify Frame (通知フレーム) | 通知がアニメーションに配置される時間 (フレーム単位)。 |
Min Trigger Weight (最小トリガー ウェイト) | 通知をトリガーするために必要なアニメーションのウェイト (0 ~ 1) を決定します。これは、アニメーションが他のアニメーションとブレンドされる場合に限り適用されます。デフォルト値の 0.00001 は、このアニメーションがほとんどブレンドされていない場合でも、通知が実行されることを意味します。この値をより高い値に設定すると、アニメーションが完全にブレンドされていないと、通知が正常に実行されないことを意味します。 |
Anim Notify State Duration (アニメーションの通知ステート時間) | 通知ステートの持続時間 (秒単位)。 |
Anim Notify State Frames (アニメーションの通知ステートのフレーム数) | 通知ステートの持続時間 (フレーム数)。 |
Copy (コピー) | 通知をコピーします。 |
Delete (削除) | 通知を削除します。 |
Replace with Notify… (通知を置き換える…) | 通知を同じタイプの別の通知に置き換えます。 |
キーフレームの整列をサポートするには、タイムライン上で右クリックし、[Frames (フレーム)] または [Notifies (通知)] のいずれかを有効にすることで、スナップ オプションを有効にできます。
通知の共通プロパティ
通知の各タイプで変更可能なプロパティに加えて、通知には以下の共通のプロパティがあります。
名称 | 説明 |
---|---|
Notify Color | Notify キーフレームのカラーを設定します。 |
Should Fire in Editor | エディタで通知をプレビューする際に、通知を実行できるようにします。これは、通常のゲームプレイやシミュレーションには影響しません。 |
Notify Trigger Chance | 通知が正常に実行される確率を定義します。値が 0 の場合、通知は一切実行されず、1 の場合は常に通知が実行されます。 |
Trigger on Dedicated Server | このプロパティを有効にすると、専用サーバーで通知を実行できます。 |
Trigger on Follower | このプロパティを有効にすると、 同期グループ を使用している場合、アニメーションがフォロワーであるときにも通知が実行されます。デフォルトでは、同期グループのリーダーアニメーションのみが通知を実行します。 |
Notify Filter Type | 通知をフィルタして、通知を実行するかどうかを制御する方法を定義します。LOD でフィルタし、通知をフィルタする最大 LOD を指定することができます。 |
Trigger Weight Threshold | 通知をトリガーするために必要なアニメーションのウェイト (0 ~ 1) を決定します。これは、アニメーションが他のアニメーションとブレンドされる場合に限り該当します。デフォルト値の 0.00001 は、このアニメーションがほとんどブレンドされていない場合でも、通知が実行されることを意味します。この値をより高い値に設定すると、アニメーションが完全にブレンドされていないと、通知が正常に実行されないことを意味します。 |
Montage Tick Type | Montage 通知を使用する場合、このプロパティは、その正確さとシーケンシャルな順序に関して、通知がどのようにティックされ、実行されるかを決定します。次のいずれかを選択できます。
|
Slot | モンタージュ通知を使用する場合、このプロパティは通知を特定のスロット内のアニメーションにリンクさせます。これは、 モンタージュによっては複数のスロット を含む場合があるためです。 |
Link Method | Montage Notify を使用する場合、このプロパティは通知をアニメーションにリンクさせる方法を定義します。リンクさせることで、Notify キーフレームが調整された場合、モンタージュ アニメーションのセクションに追従するようになります。以下の中から選択できます。
|
Linked Sequence | 現在リンクされているアニメーション シーケンスを表示する、読み取り専用のプロパティ。これは、複数のシーケンスからなるモンタージュで、通知を別のシーケンスに揃えると、変わります。 |
Animation Notify (アニメーション通知) パネル
[Animation Notify (アニメーション通知)] パネルを使用すると、既存の スケルトン通知 を管理することができます。Notify タイムライン領域で右クリックし、[Manage Notifies (通知の管理)] を選択すると、アクセスすることができます。
Notify を右クリックして、以下のアクションを実行できます。
名称 | 説明 |
---|---|
New (新規作成)… | 新しくスケルトン通知を作成します。 |
Rename (名前変更) | 現在選択されているスケルトン通知の名前を変更します。 |
Delete (削除) | 現在選択されているスケルトン通知を削除します。 |
Find References (参照を検索) | [Animation Asset Browser (アニメーション アセット ブラウザ)] パネル を開き、この通知を使用するアニメーション アセットのみを表示するようにリストをフィルタします。 |
カスタム通知クラス
プロジェクトで提供されているものとは異なる通知クラスが必要な場合、独自の事前定義されたブループリント ロジックを持つカスタム通知と通知ステートを作成することができます。これは、異なる通知テンプレートを拡張して作成するための方法です。
新しい通知クラスを作成するには、 コンテンツ ブラウザ に移動して、[Add (+) (追加 (+))] > [Blueprint Class (ブループリント クラス)] をクリックします。[All Classes (すべてのクラス)] セクションに移動し、 Notify の子クラスを作成する場合は AnimNotify を、 Notify State の子クラスを作成する場合は AnimNotifyState を選択します。
AnimNotify クラスに固有の関数の作成を開始するには、[My Blueprint (マイ ブループリント)] の [Override] 関数ドロップダウン メニューをクリックし、[Received Notify] を選択します。これにより、関数グラフが開き、Received Notify エントリ ノードからカスタム ロジックのスクリプトを作成できます。
AnimNotify クラスまたは AnimNotifyState クラスのいずれかで、以下の関数をオーバーライドして実装することができます。
関数 | 説明 |
---|---|
Get Default Trigger Weight Threshold | この関数は、通知の Trigger Weight Threshold のデフォルト値を設定します。ただし、 Notify キーフレームの詳細 でオーバーライドできます。 |
Get Notify Name | この関数は、タイムラインの Notify キーフレームまたは State キーフレームの名称を設定します。 |
Received Notify | 標準の通知で使用され、Notify キーフレームに到達したときに一度のみ実行されます。 |
Received Notify Begin | Notify State で使用され、Notify 領域が開始するときに一度のみ実行されます。 |
Received Notify End | Notify State で使用され、Notify 領域が終了するときに一度のみ実行されます。 |
Received Notify Tick | Notify State で使用されるこの関数は Notify State の持続期間全体にわたり継続的に実行されます。 |
カスタム Notify クラスを作成したら、[Add Notify] または [Add Notify State] メニューのいずれかから Notify タイムラインに追加することができます。