イベント トラックの概要

シーケンサのイベント トラックを使用してイベントを発生させるときに使用できる機能について説明します。

Choose your operating system:

Windows

macOS

Linux

イベント トラック で、なんらかの形式のスクリプトによる機能を実行する場所をシネマティックの各ポイントに定義できます。シネマティックで、プレイヤーが金庫を開いて収集できるアイテムを受け取りたい場合があります。 あるいはプレイヤーの周辺に何らかのパーティクル エフェクトをスポーンしたいこともあります。どのような場合でも、イベント トラックは各フレームを繰り返すイベントのセクションや単一のキー イベントを発生させるために使用できます。

このページでは利用可能な機能の一部、およびシーケンサでイベント トラックと連動するように関連付けられた基盤のシステムについて概要を説明します。

イベントを追加する

シーケンス内に イベント トラック を追加するには、 [+ Track] ボタンをクリックして、 [Event Track] を選択します。

AddingAnEventTrack.png

イベント トラックを追加した後、セクションまたは単一のキーフレームをイベントとして、シーケンスの指定フレームに追加できます。

AddedKeyframeType.png

イベントを追加した後、 Director ブループリントを使用して、イベントに対する機能をスクリプト化できます。

イベント トラックの作成と使用については「 シーケンサ経由でイベントを呼び出す 」を参照してください。

Director ブループリント

Director ブループリントは、任意の ブループリント タイプです。指定のシーケンスでプレイバックし、イベントをトリガーする必要なバイト コードを生成するのをディレクションするために使用できるものです (次に示されているのは Level Sequence Director ブループリント)。

クリックしてフルサイズで表示

Director ブループリントでは、指定した 1 つまたは複数のターゲットで発生させるスクリプトによる機能を提供できます。Director ブループリントでは、イベントへの関数と変数の追加を可能にする パラメータ を追加することができます。

任意のシーケンス タイプに対するイベントをサポートするために、イベントは Director とインタラクトする方法を定義しなければなりません。これはシーケンス タイプごとに登録される、エディタ専用の ムービーシーン シーケンサー エディタ を通じて達成されます。 それぞれのシーケンス タイプで対応する独自の Director ブループリントを定義できます。

次に例を示します。

  • Level Sequence Event :独自の Level Sequence Director と生成されるクラスを作成します。

  • Widget Animation Event :アニメーションを所有する Widget ブループリント を使用します。さらに、対象のウィジェットに対してすべてのアニメーションは同じ Director (ウィジェット インスタンス自体) を使用します。

  • Actor Sequence Event :raw インスタンス化コンポーネントとして、アクタ シーケンスが存在する場合、所有するブループリントまたはレベル ブループリントを使用します。

サブシーケンスが存在する場合、Director インスタンスは、その Director インスタンスの使用を試みるすべてのサブシーケンスに対して作成されます。さらに、Director インスタンスはオンデマンドで (イベント トラックにより) 作成され、 コンテンツ ブラウザ でアクセスされるアセットではありません (ただし、将来のイテレーションで変わることがあります)。

Director ブループリントは 3 通りの方法で開くことができます。 [General Options (オプション全般)] > [Open Director Blueprint (Direct ブループリントを開く)] へ移動、またはイベント キーをのダブルクリックする、あるいは Key プロパティの下の虫眼鏡アイコンを選択します。

パラメータをイベントに追加する

イベントを作成した後、対応するノードが Director ブループリントに自動的に追加されます。イベント ノードから好きな数だけ 入力 を追加できます (パラメータとして知られています)。 パラメータを追加するには、 [+] アイコンを選択します。ボタンにカーソルを当てると +New Parameter に変化します。

add parameter

sample list of parameters with parameter attached to event node

イベント エンドポイント

イベント エンドポイント は関連する Director クラス ブループリントへのアクセスを許可し、イベント トラックのキーまたはリピータ セクションをダブルクリックしたときに自動的に作成されます。 キーまたはリピータ セクションで右クリックして、コンテキスト メニューの [Properties (プロパティ)] オプションで新しいエンドポイントを作成できます。

CreatingAnEndPoint.png

新規に作成されたエンドポイントは (インスタンスに対するオブジェクト バインディング タイプの) エンドポイントの認識できるデフォルト ピンの定義を試みますが、これは変更または削除されることがあります。

エンドポイントには 0 または 1 のピンがあります。ピンが指定されていないとき、イベントに対して有効なオブジェクトが指定されているかどうかに関係なく、イベントが常にトリガーされます (これは Event Receivers がない マスター トラック に対するデフォルトです)。単一のオブジェクトまたはインターフェース ピンが存在するとき、オブジェクトが適切なタイプである、またはインターフェースを実装する場合に、バインドされたオブジェクトごとに 1 回イベントがトリガーされます。他のすべての関数シグネチャはシーケンサ イベントと互換性がなく、トリガーできません。

イベント プロパティ セクションには既存の互換機能にバインドする、または新規エンドポイントがターゲット クラスでブループリントを呼び出すことができる関数に自動で接続するオプションがあります。

EndPointBindings.png

上図でには、呼び出された [Disable HUD] または [Enable AI] へバインドできるエンドポイントが存在しています。または、スケルタルメッシュで Anim Dynamics をリセットするなど、ブループリントの呼び出し可能な関数に対して Quick Binding を作成することができます。 イベント エンドポイントが割り当てたら、プロパティ メニューのイベントをダブルクリックまたは拡大鏡アイコンをクリックして Director ブループリントを開きます。

エンドポイントとインターフェース

Director ブループリントでエンドポイントを定義すると、 ブループリント インターフェース を実装して、変化するブループリント、または レベル ブループリント とも通信できます。 以下のようにイベントとエンドポイントを作成しました。 [Class Settings (クラス設定)] オプションでブループリント インターフェースも実装しました。

Interface_01.PNG

サンプル関数に対してメッセージ呼び出しを実行するとき、インターフェースを実装するブループリント (次に示す Level Blueprint を含む) は関連するイベントを実行します。

Interface_02.PNG

上のとおり、 Level Blueprint はインターフェースから呼び出しを受け取り、テキストを画面に表示する、 Print String を実行します。

詳細は、 ブループリント インターフェース を参照してください。

イベント ターゲット

イベント ターゲット トリガーを定義するオプションがいくつかあります。これらの一部は従来との互換性を保つためにサポートされています。単一のイベントに複数のターゲットが指定されているとき、イベントはそれぞれに対して、つまり複数回トリガーされます。

それぞれに対して利用可能なターゲット タイプと追加情報については次の各セクションを参照してください。

Event Receivers

Event Receiver は、トラックでイベントをトリガーする対象のオブジェクト バインディングのリストを定義します。空のとき、イベントはデフォルトのイベント コンテキストでプレイバック環境 (レベル ブループリントやウィジェットなど) に対してトリガーします。

Event Receiver はイベント トラックのプロパティ メニューから、 [Tracks (トラック)] ウィンドウで [Event Track (イベント トラック)] を右クリックして割り当てできます。

EventReciever_RightClick.png

Event Receivers の隣にある [+] 記号をクリックすると、シーケンス階層 (親または子でも) からオブジェクト バインディングを指定できます。

AssignedEventReciever.png

上のとおり、オブジェクト バインディングとして [ThirdPersonCharacter] を選択します。イベント レシーバを割り当てているので、イベント エンドポイントを追加するときに、ターゲット オブジェクトがどのようなものかわかり、したがってそのオブジェクトにアクセスまたは実行できます。

ChangeTargetType-1.png

上のとおり、[Target] ピン タイプを [ThirdPersonCharacter] オブジェクト リファレンスに変更します。このイベントが実行されるとき、シーケンサは内部で キャスト を実行し、オブジェクト タイプが一致することを確認し、失敗した場合に呼び出されないようにします。 一致すると、プロパティ、コンポーネントにアクセスし、またはオブジェクトの関数やスクリプトを呼び出すことができます。

Event Receiver はトラック内のすべてのイベント セクションに影響を与え、バインディング オーバーライドを受け取ります。

Object Bindings

イベント トラックをシーケンスに追加するほかに、イベント トラックをシーケンス階層の既存のオブジェクトに追加できます。イベント エンドポイントのターゲット オブジェクトが、イベント トラックに追加されるオブジェクトにバインドされる場合、これにより、 Object Bindings がイベント トラックに対して作成されます。

Object Bindings がイベント エンドポイントにバインドされるのは、Event Receivers がトラックに割り当てられていない場合だけです。

例えば、以下では Character ブループリントをシーケンスに追加しました。その後で、サードパーソン キャラクターにイベント トラックを直接追加することができます。

adding tracks

イベントのキーフレームを追加し、イベント エンドポイントを割り当てるとき、 [Quick Bind] セクションで、Anim ブループリントに関連する関数呼び出しにアクセスします。この例では Disable Movement を使用しています。

binding_track2.png

Quick Binding を使用すると、関連する Director ブループリントが自動的にセットアップされます。

binding_track3.png

Additional Event Recievers

Level Sequence Actor [Details (詳細)] パネルで Additional Event Receivers を割り当てることができます。

AdditionalEventReceivers.PNG

ワールドからアクタのユーザー定義セットを追加することによって、イベント コンテキストを Level Script Actor に追加で指定することができます。前の画像で、レベル内にある ThirdPersonCharacter を割り当てます。 以下のように、イベント エンドポイントを定義するとき、イベントやターゲットを呼び出すとき、コンテキストが得られます。これはキャラクタに関連付けられたメッシュに対して物理シミュレーションの実行とコリジョン プロファイルの変更を指示します。

SimulateExample.png

イベント セクションの種類

イベント トラックは個別のキーが付いたイベントとセクションをサポートします。

  • Trigger セクション :それぞれ独自のエンドポイントを持つ (または同じものを共有する) ことができるイベントのチャンネルを定義します。イベントは詳しく評価されたときにトリガーされます

  • Repeater セクション :評価するたびにトリガーされる単一のイベント (およびエンドポイント) を定義します。

イベント トラックの [Section] ボタンをクリックして、必要なタイプを選択することで、イベント セクションを追加できます。

Section_01_update.png

タイムラインで (すべてのキーがある) セクションを簡単に移動するとき、複数のキー イベントをグループにまとめるためにトリガー セクションが便利です。以下は 2 つのキーフレームのある Trigger セクションです。 Trigger セクションを選択し、タイムラインに従って、希望する位置に移動できます。各イベント間のフレームの量を移動したときに変化がないように維持します。

TriggerSection_01.PNG

Repeater セクションはセクションの間の各フレームで割り当てられたイベントを発生させ、エンドポイントに伝えます。

RepeaterSection.PNG

前に示すように、フレーム 30 からフレーム 75 まで「 Print String Event 」という Repeater セクションがあります。このイベントは指定フレームの範囲でフレームごとに画面にテキストを表示します。 Repeater セクションが便利なのは、シーケンスの指定期間にフレームごとにイベントは発生させる必要がある場合です。

よくある質問 (FAQ)

シーケンサでイベント トラックを処理するときに発生する可能性がある問題について次に示します。

  • レベル ブループリントでイベントをどのようにトリガーするのでしょうか?

    • レベル ブループリントでレベル シーケンスとブループリント インターフェースにマスター トラックを設定して、ピン タイプをブループリント インターフェースに変えて、エンドポイントからブループリント インターフェース関数を呼び出します。

  • 複数のオブジェクトがあるバインディングに対してどのようにイベントをトリガーするのでしょうか?

    • イベント エンドポイントは、ピン タイプにキャストできるバインドされたオブジェクトのそれぞれに対して呼び出されます。

  • ピン タイプはイベント エンドポイントで何を表しますか?

    • オブジェクト バインディングにあるとき、オブジェクトはピン タイプにキャストされ、オブジェクトが一致した場合にのみ呼び出されます。マスター トラックにあるとき、イベントはレベル ブループリントがピン タイプに一致する場合に呼び出されます。

  • UMG でどのようにイベントをトリガーしますか?

    • レベル シーケンスとまったく同じ方法です。ウィジェット自体がマスター イベント トラックのコンテキストです。バインドされたウィジェットはオブジェクト バインディングでイベント トラックのコンテキストです。

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