Choose your operating system:
Windows
macOS
Linux
アニメーション通知 (AnimNotifies または単に Notifies) は、アニメーション シーケンス の特定ポイントでイベント発生をアニメーション プログラマーが設定できるようにします。通知は、一般的に歩行時や走行時の足音エフェクトの追加、アニメーションの実行、アニメーション中のパーティクル システムのスポーンなどに使用されます。しかし、その他にも使用法がたくさんあります。ゲームの種類に応じたカスタム通知でシステムを拡張することができるからです。
Add Notify...
通知のタイプが異なると、異なるイベントをトリガーします。カメラ エフェクト、パーティクル エフェクト、サウンドなど、全てのイベントはアニメーションのどの時点でも通知を使用してトリガーすることができます。通知を追加するには、通知が行われてほしいアニメーションのポイントで Notify Track を 右クリック し、追加する通知の種類を選択します。
通知の追加、編集については「アニメーション シーケンス エディタ」を参照してください。
Skeleton 通知
Skeleton 通知 は、アニメーションの任意のポイントで Animation ブループリント内でアーティストが行う作業に対して多様な対応をします。カスタム通知を作成するには、通知トラックを 右クリック し、[Add Notify... (通知を追加)] を選択し、コンテキスト メニューから [New Notify (新規通知)] を選択します。
新規作成した通知の名前の入力を求められます。
作成された Skeleton 通知はすべて [Skeleton Notifies] メニュー配下に表示されます。
[Skeleton Notify] を選択すると Notifies Track に追加されます。
Skeleton Notifies を使用すると、イベントグラフで同じ名前の Notify Event を作成する、またはスケルタルメッシュの Animation ブループリント の ステートマシン で Transition Graph (遷移グラフ) を作成できます。Skeleton Notifies 追加するには、イベントグラフ または 遷移グラフ の任意の場所で右クリックすると、Animation Notifies Event を追加するためのセクションが表示されます。
イベント ノードがグラフに追加され、この通知が呼び出されると実行されます。
Clothing Simulation Notifies
アニメーションの任意のポイントで クロス シミュレーション を制御するために追加可能なネイティブ通知もあります。
[Pause Clothing Simulation (クロス シミュレーションを一時停止)] でクロス シミュレーションを一時停止します。
[Resume Clothing Simulation (クロス シミュレーションを再開)] で一時停止中のクロス シミュレーションを継続します。
[Reset Clothing Simulation (クロス シミュレーションをリセット)] でクロス シミュレーションをデフォルト状態に戻します。
以下のサンプル動画で、Clothing Simulation 通知の使用方法を説明しています。
Play Particle Effect
Play Particle Effect 通知は、任意のソケット位置で、またアニメーションのタイムラインの特定ポイントでパーティクル システムをスポーンし、再生することを通知します。これは、プレイヤーが動く際にその足元で砂ぼこりをたてる、プレイヤーがニトロブーストのパワーアップ時に排気管から発火するようなエフェクトなどに役立ちます。
Play Particle Effect 通知は、ビヘイビアを制御するために Animation ブループリントを使用しません。代わりに、[Details (詳細)] パネルで定義されているいくつかの簡単なプロパティを使用し、どのパーティクル システムを使うか、どのソケットからパーティクルが発生するかを決定します。
プロパティ |
説明 |
---|---|
PSTemplate |
通知の設定時点でスポーンするパーティクル システムを保持します。 |
Socket Name |
パーティクル システムのスポーン ポイントとして使用されるスケルタルメッシュのソケットを含みます。 |
Attached |
エフェクトをボーン / ソケットにアタッチするかを決めます。 |
Location Offset |
ソケットからの位置オフセット。 |
Rotation Offset |
ソケットからの回転オフセット。 |
Notify Color |
通知バーの通知のカラーを変更します。 |
一度セットアップすると、ソケットの位置をスポーン ポイントとして使用して、関連するパーティクル システムが再生します。
Play Sound
Play Sound 通知は、サウンド エフェクトをアニメーションと同期させる簡単な手段を提供します。Play Particle Effect 再生通知と同様に、この通知にはいくつかの単純なプロパティがあります。これは、 [Details (詳細)] パネルで設定可能であり、早く簡単にサウンドエフェクトをセットアップできます。たとえばロボットが動く際の機械的なうなり音、キャラクターの動作中の衣擦れの音などのエフェクトで役立ちます。
Play Sound 通知は、[Details (詳細)] パネルで定義されているいくつかの簡単なプロパティを使用し、どのサウンド エフェクトを使用するか、どの ソケット または ボーン からサウンドを発生させるかを定義します。
プロパティ |
説明 |
---|---|
Sound to Play |
再生する Sound Cue アセットです。 |
Volume Multiplier |
このスケーリング乗数は、サウンド エフェクトのボリュームに適用されます。 |
Pitch Multiplier |
このスケーリング乗数は、サウンド エフェクトのピッチに適用されます。 |
Follow |
チェックを入れると、スタティックメッシュが動くにつれて、サウンド エフェクトのソースが追随します。チェックを入れないと、サウンドはスポーンされた場所に留まります。 |
Attach Name |
サウンド エフェクトのスポーン ポイントとして使用するスケルタルメッシュのソケットまたはボーンを含みます。 |
Notify Color |
通知バーの通知のカラーを変更します。 |
Reset Dynamics
Reset Dynamics 通知は、スケルタルメッシュに適用されているすべての AnimDynamics がアニメーションから呼び出された時にもとの状態にリストアできます。
[Details (詳細)] パネル内の [Notifies Track] ウィンドウでこの通知のカラーを変更することもできます。
Add Notify State...
AnimNotifyStates (Notify States) は、上記の標準通知の機能とよく似ています。start、tick、end の3 種類のイベントがあります。これらは簡単に開始し、通知が開始、終了する瞬間に発行し、その中にある イベントグラフ はアニメーションで時間がくると発生します。end event に到達するまで、アニメーションがアップデートされるたびにティックが発生します。標準の通知との違いは、NotifyStates は、自己完結型の ブループリント であるという点です。
Notify States に関するその他の留意点:
必ず NotifyBegin Event で開始するようになっています。
必ず NotifyEnd Eventで終了するようになっています。
必ず NotifyBegin と NotifyEnd のイベントの間に NotifyTick をラップするようになっています。
異なる AnimNotifies (normal または state) 間の順序は保証されません。2 つの AnimNotifyStates を隣同士に入れると、最初の AnimNotifyStates が、次の AnimNotifyStates が開始するまでに終了することは保証されません。これは、他の通知に依存していない個別のアクションにのみ使用してください。
負の再生速度がサポートされます。それでも NotifyBegin が最初に呼ばれ、NotifyEnd が最後に呼ばれます。
フレーム毎に何かを修正する場合、Tick ブループリントに入れるようにします。tick に到達する前に、変数、フラグ、またはプロパティを何らかの値に設定する必要がある場合、それは Begin ブループリントに入れるようにします。最後に、最終 tick に到達後、End ブループリントを使用して、変数、フラグ、またはプロパティを変更できます。
Timed Particle Effects
Timed Particle Effect (時限式パーティクルエフェクト) は、Play Particle Effect (パーティクルエフェクト再生) 通知と非常に似ています。両方とも、アニメーションの任意のポイントでパーティクル エフェクトを再生できるからです。この 2 つの違いは、Timed Particle Effect では、通知そのものの内部でエフェクトの長さを定義できるという点です。
下の画像では、Timed Particle Effect がアニメーションに割り当てられています。終了点 (または開始点) のハンドルバーを 左クリック すると、ドラッグしてエフェクトの長さを延長または短縮することができます。
Timed Particle Effect のプロパティは パーティクル エフェクト再生通知 とよく似おり、[Details (詳細)] パネルで調整できます。
Animation Trails
Animation Trails (または略して AnimTrail) は、シーン内で移動するオブジェクトの後にトレイル (軌跡) を残すことができるエミッタです。これは、各 tick で スケルタルメッシュ の 2 つのソケット位置をサンプリングして、ソケット間のトライアングルをつなぎ合わせて、トレイルの長さにします。
以下は、Animation Trail をアニメーション キャラクターと一緒に使う例です。
AnimTrail エミッタを使用するには、以下を行う必要があります。
AnimTrail タイプのデータを含む パーティクル システム を作成します。
Trail タイプの通知ステートを作成しアニメーションに追加します。
AnimTrail を追加したら [Details] パネルからプロパティを変更することができます。
プロパティ |
説明 |
---|---|
PSTemplate |
上記で説明したアニメーション トレイルを含むパーティクル システムです。 |
First Socket Name |
トレイルを定義する第 1 のボーン / ソケットの名前です。 |
Second Socket Name |
トレイルを定義する第 2 のボーン / ソケットの名前です。 |
上記のプロパティは必須ですが、以下はオプションです。アニメーション中にトレイル幅を変更できます。必要に応じて移動するトレイルをソケットにアタッチするこもできますが、理想ではありません。幅のスケール値を与えて行う方法です。幅のスケーリング 1.0 は、トレイルを同じ幅に保ちます。0.0 は幅ゼロのトレイルになります。
プロパティ |
説明 |
---|---|
Width Scale Mode |
幅の適用方法を変更します。以下の図は、これがどのように機能するかを示しています。この例では、真ん中で 0 から 1 になり、0 に戻る正弦のようなカーブを示しています。 |
Width Scale Curve |
幅の値は各ティックでサンプリングされたカーブから得られます。カーブの名前のプロパティです。カーブ作成についての詳細は以下をご覧ください。 |
*左の画像は From Centre を表します。これは、中央から外側にスケーリングします。中央の画像は、From First Socket を表します。これは、第 1 のソケットから離れてスケーリングします。右側の画像は、From Second Socket を表しています、これは、第 2 のソケットから離れてスケーリングします。
他にもデバッグ レンダリング方法があります。
プロパティ |
説明 |
---|---|
Render Geometry |
メインのトレイル ジオメトリのレンダリングを切り替えます。 |
Render Spawn Points |
トレイルで主にスポーンするポイントすなわち、各ティックでソケットからサンプリングされた位置でデバッグ レンダリングを切り替えます。 |
Render Tangents |
カーブ タンジェントのデバッグ レンダリングを切り替えます。 |
Render Tessellation |
カーブ上の全頂点のデバッグ レンダリングを切り替えます。スポーンポイント間でカーブがどのようにテッセレーションされるかを示します。 |
Notify Color を変更して [Notify Track] ウィンドウで使用している色を変更することもできます。
Custom Notify States
Notify State (通知ステート) の作成 (アニメーションの [create a Blueprint Class]通知トラック で 右クリック して [Add Notify State...] を選択するのと同じ方法) は、通常の通知の追加と同じ方法です。カスタム仕様の Notify State を使用する前にまず Anim Notify State クラスの Blueprint クラスを作成 しなければなりません。作成したら、アニメーションの [Notify Track] を右クリックして [Add Notify State...] し、ご使用の通知を選択します。
MyCustomNotifyState (上) と呼ばれる AnimNotifyState Blueprint クラスは、アニメーションで使用する通知ステートとして選択できるように作成されました。Anim Notify State Blueprint を作成したら、それを開いて通知をどのように使用するかを決める関数の実装を開始します (下)。
すべての関数を実装する必要はありませんが、最低限、Recieved Notify Tick または Recieved Notify Begin と Recieved Notify End の両方を実装してください。Recieved Notify Begin または Recieved Notify End を実装すると、標準のアニメーション通知を使用できます。
以下は Notify Begin の上書きです。
以下は Notify End の上書きです。
以下は Notify Tick の上書きです。
以下で各ピンのタイプがオーバーライド関数でどのように使用されるかを説明します。
ピン |
説明 |
---|---|
Mesh Comp |
Anim Notify State をトリガーするアニメーション シーケンスまたはモンタージュの Skeletal Mesh コンポーネントです。 |
Anim Seq |
Animation Sequence をトリガーする特定のアニメーション シーケンスです。 |
Frame Delta Time |
Received Notify Tick 関数でのみ。アニメーションの最終更新からの時間がわかります。 |
ブループリント内で Anim Notify State の長さを取り出す手段は現在ありません。
Add Sync Marker...
関係しているアニメーション同志を同期し続けるために 同期グループ を使用できます。アニメーションは関係するアニメーション内で Sync Markers を使って同期することもできます。Sync Marker を追加するには、[Notifies Track] ウィンドウを右クリックし、[Add Sync Marker...] を選択します。
Sync Marker の名前の入力を求められます。
入力した Sync Marker 名は、[Existing Sync Markers] サブメニューに表示されます。
作成した Sync Marker を他のアニメーションに追加できます。
Sync Marker で作業する場合に考慮すべきこと
同じ同期グループ内のアニメーションだけが同期され、リーダーが同じ同期グループ内のフォロワーの位置を操作します。
再生レートは常にマスター アニメーションのレートを使用します (現在、再生レートの調整は利用できません)。
グループ内のすべてのアニメーションに共通するマーカーのみ同期します。 例えば、アニメーションに "Right Foot Down" マーカーがなければ、そのフレーム位置の決定時にこれらのマーカーはすべてのアニメーションで無視されます。
位置は、共通マーカーのリーダーの相対位置に基づいて同期します。
例えば、リーダーが左右のフットマーカーの間の 25 % の場所にいたら、フォロワーはそれぞれの左右のマーカーの間の 25 % に同期されます。
マーカーベースの同期は、同期グループのアニメーションに一致するマーカーが十分ある場合に使います。それ以外の場合は、元のスケールの長さに同期したビヘイビアが使用されます。
AnimMontages もブレンドアウトしながらのマーカーベース同期をサポートしているので、別のアニメーションからシームレスに遷移することができます。
AnimMontage の Asset Details (アセットの詳細) パネルで Sync Group 設定が行えます。
アニメーション内で Animation Modifiers をセットアップして適用することで Sync Marker を自動的に追加することもできます。
Manage Notifies...
既存のスケルトン通知の新規追加、名前変更、削除は、Notifies トラック上を右クリックして [Manage Notifies (通知の管理)] から行います。
[Animation Notifies (アニメーション通知)] ウィンドウが現れ、作成した通知が表示されます。
右クリックして通知を新規作成、または通知を右クリックして名前変更あるいは削除します。
[Manage Notifies (通知を管理)] ウィンドウでは、[Scan (スキャン)] ボタンをクリックして [Details (詳細)] パネルから選択中の通知を使用中のアニメーションも確認することができます。
選択中の通知を使用しているすべてのアニメーションが [Details (詳細)] パネルに表示されます。
その他の通知のプロパティ
[Details] パネルの各通知の種類に対する [Anim Notify] セクションで変更可能なプロパティに加えて、以下のプロパティでも通知をどのように使うかを定義することができます。
トリガー設定 |
|
---|---|
Notify Trigger Chance |
通知をトリガーする可能性を定義します (0=可能性なし、 1= 常にトリガー)。 |
Trigger on Dedicated Server |
無効な場合、デディケイテッド サーバーで通知がスキップされます。 |
Trigger on Follower |
有効にすると、アニメーションが Sync Group でフォロワーの時にこの通知がトリガーされます (デフォルトでは、Sync Group lリーダーのみがトリガーを通知します)。 |
Notify Filter Type |
通知をフィルタリングする方法を定義します (トリガーさせないようにします)。メッシュの現在の LOD によってフィルタリングするように設定できます。 |
イベント |
|
---|---|
Trigger Weight Threshold |
通知をトリガーするためにアニメーション シーケンスが持つべきウェイトを定義します。 |
Montage Tick Type |
通知がどのように処理されるかを定義します。Queued (キューに入れる) または Branching Point (分岐点) があります (以下の「モンタージュのティック タイプ」セクションをご覧ください)。 |
モンタージュのティック タイプ
Montage Tick Type (モンタージュのティック タイプ) の Queued (キューに入れる) と Branching Point (分岐点) の設定の違いは、キューに入れた通知は非同期ですが、分岐点は同期する点が大きな違いです。エンド ユーザーにとって、分岐点 (Branching Points) は、アニメーション タイムラインに沿って実行される時に高い正確性を持つことを意味します。
正確なタイミングに合わせて特定のアニメーションへジャンプしなくてはいけない時、高精度であることは重要です。Queued Notify を使用して同じジョブを実行することも可能ですが、Queued Notifies の非同期的な性質により、イベントが間違ったアニメーション フレームで発行されることがあり、これがモーションの処理落ちやジャンプの原因となることがあります。
Branching Points (分岐点) がもつ同期性質とその精度に起因して、Branch Pointは Queued よりもパフォーマンス負荷が高くなります。フレーム間で一致するもうひとつのアニメーションへ直接ジャンプさせるなど、イベントをアニメーション タイムラインに沿って正確なタイミングで発行させなければいけない時のみ分岐点を使用してください。フレーム単位で (またはフレームの一部で) ずれてしまうことが重要でない場合は、代わりに Queued を使用してください。