Language:
Page Info
Tags:
Skill Level:
Engine Version:
The translation of this page is out of date. Please see the English version for the latest version of the page.

カスタム イベントとカスタム構造体を使用する

イベント トラック を使って カスタム イベント を呼び出すことができます。カスタム イベントは複数のブループリント内で ブループリント スクリプト を実行することができます。 カスタム イベントが呼び出されると、それにアタッチされたスクリプトも実行され、ニーズに応じて任意の数のシナリオで使用することができます。 イベント トラックを使用してカスタム イベントを呼び出す場合、その中の変数を更新するために使うカスタム 構造体 もパススルーすることができます。 これはレベル シーケンスの再生中に他の変数を更新するような場合に便利です。

この例では、イベント トラックを使ってカスタム構造体を持つイベントを呼び出して、Level ブループリント でオブジェクトを動かすために使用し、別のブループリントでポイント ライトのオン、オフを切り替えます。

EndResultImage.png

ステップ

ここでは Starter Content を有効にした状態で Blueprint Third Person Template を使います。

  1. コンテンツ ブラウザ の、Content/StarterContent/Shapes フォルダで、Shape_Cube メッシュをレベルにドラッグします。

    EventTrack1.png

    レベル内の任意の場所にメッシュを配置します。

  2. メッシュの [Details] パネルで、メッシュを [Movable] に設定します。

    EventTrack1b.png

    これで、ゲームプレイ中にメッシュをお好きな位置に動かすことができます。

  3. コンテンツ ブラウザ[Add New (新規追加)] ボタンをクリックしたら [Blueprints][Structure] オプションを選択します。

    EventTrack2.png

  4. MyStruct と名前を入力して、このアセットを開きます。 MoveCube という Vector 変数を追加します。

    EventTrack3.png

    変数の命名は重要です。後で参照する場合、こうした名前を使うことになるからです。

  5. Master という新規 レベル シーケンス をレベルに追加します。次に シーケンサー 内で、イベント トラック を追加します。

    EventTrack4.png

  6. タイムラインをフレーム 5 まで動かし、キーを追加します。次に、 そのキーを右クリック し、イベントに LiftCube と名前を付けます。MyStruct を割り当て、 Z 値を 100 に設定します。

    EventTrack5.png

    シーケンスでこのキーフレームになったら、メッシュを Z 軸に沿って上方向に 100 ユニット動かします。

  7. タイムラインをフレーム 10 まで動かし、 ] キーを押してフレーム 10 でシーケンスを終了します。

    EventTrack6.png

  8. レベルに追加したメッシュを (レベル シーケンスと共に) 選択し、ツールバーから [Blueprints] ボタンをクリックして、[Open Level Blueprint] をクリックします。

    EventTrack7.png

  9. Level ブループリント で、右クリックして、 [Reference] を検索し、[Create References to 2 selected Actors] を選択します。

    EventTrack8.png

  10. グラフ内を右クリックして、1 Keyboard Event を追加して、Master レベル シーケンスからドラッグして、Set Playback Position ノードを検索して追加します。

    EventTrack9.png

    これは、再生の関数呼び出しを発行する前に、再生を開始する度にシーケンスをリセットするために使用されます。

  11. 追加した Sequence Player ノードからドラッグして、 Play ノードを使用し、以下のように接続します。

    EventTrack10.png

  12. グラフ内を右クリックして、 LiftCube と呼ばれる カスタム イベント を作成します。

    EventTrack11.png

    カスタム イベント名は、シーケンサーのキーの Event Name で指定したものと同じ名前でなければなりません (そうしないと呼び出されません)。

  13. Custom Event の [Details] パネルで、 + ボタンをクリックして入力を追加し、MoveCube と名前を付け、変数の型は Vector にします。

    EventTrack12.png

    下の条件を満たさなければイベントは呼び出されません。

    • 入力名は Struct (構造体) で使ったものと同じ名前でなければなりません。

    • 入力数はカスタム構造体で定義した変数の数と一致しなければなりません。

    例えば、構造体が 2 つの変数を持つ場合、カスタム イベントは正しい変数名と型を持つ 2 つの入力を持たなければなりません。

  14. メッシュのリファレンスからドラッグして、AddActorLocalOffset ノードを検索して使用します。

    EventTrack13.png

  15. 以下のように MoveCube ベクター ピンを Delta Location ピンに接続します。LiftCube 実行ピンを AddActorLocalOffset ノードに接続します。

    EventTrack14.png

    エディタで再生する場合、1 キーを押すたびに、キューブが Z 軸に沿って上方向に移動します。

    Level ブループリント を使って Custom Event を実行しますが、別のブループリントや複数のブループリントを使用して影響を与えたい場合があるかもしれません。

  16. コンテンツ ブラウザ の、Content/StarterContent/Blueprints で、Bluperint_CeilingLight をレベルにドラッグします。

    EventTrack5.png

  17. Master レベル シーケンスの [Details (詳細)] パネルで、General の追加オプションを展開して、Additional Event Reciever として Blueprint_CeilingLight を追加します。

    EventTrack16.png

  18. Blueprint_CeilingLight ブループリントを開いて、以下のスクリプトを追加します。

    EventTrack17.png

    • LiftCube という名前のカスタム イベントを作成します。これは、シーケンサーイベント に対応します。

    • Flip Flop ノードを使って Point LightSet Intesnity0 (off) または 5000 (on) にします。

    これでマスター レベル シーケンスが再生される度にライトがオン、オフの間で切り替わります。

    このブループリントでは、Custom Struct の MoveCube を使用していませんが、このイベントが呼び出されるようにするためにはそれを追加する必要があります。

  19. エディタで再生します。

最終結果

エディタで再生する場合、1 キーを押すたびに、ライトがオンとオフとの間で切り替わりながら、キューブが Z 軸に沿って上方向に移動します。

この例では、Level ブループリント でイベントを呼び出すとともに シーケンサー から ブループリント クラス 内でも呼び出します。 シネマティックスを見るためにカメラを割り当てていませんが、代わりにシーケンサーとブループリントを使ってスクリプティングしたシーケンスを実行しています。 プロジェクトでは、カスタム イベントとカスタム構造体を持つイベント トラックを使ってカットシーン中 (プレイヤーが、ヘルスの増加、新しい武器、選択したその他のゲームプレイ関連のエフェクトを受け取るなど) や、 シネマティック シーケンス内の決まったポイントでプレイヤー情報を更新することができます。

Tags