ゲームプレイからシーケンスをトリガーする

インゲームのイベントからシーケンスをトリガーする方法を説明します。

コンテンツ

シネマティック シーケンスを作成したらカットシーンの一部としてゲームプレイ中にそれを呼び出して再生することができます。 例えば、プレイヤーが部屋に入り、カメラをあるオブジェクトにズームインしたり、 あるいは、プレイヤーが敵をキルした後に、エンディングのシネマティクスをトリガーする場合に、 レベル シーケンスへの参照を取得することで、ブループリント または C++ のコードを使ってシーケンスに対して再生を再開するように指示します。

この操作ガイドでは、プレイヤーがトリガー ボックスに入るとライトが点灯するサンプル シネマティクスを作成します。 シネマティクスが再生を終了すると、シーケンサーに対してレベル内のライトに変更を適用するように指示して、シネマティクスが再生を終了してもライトが点灯したままになるようにします。 再生中にプレイヤーにシネマティクスをスキップさせて、シーケンサーに指示してシーンをスキップした後もライトを点灯し、そのままの状態にすることができます。

HeroImage.png

ステップ

ここでは Blueprint Third Person Template プロジェクトを使います。

  1. [Place Actors] パネルの [Basic] タブから、[Box Trigger] をレベルにドラッグし、自由にサイズ変更および配置します。

    Trigger01.png

    プレイヤーがトリガーに入ると、シネマティクスに対して再生を開始するようにブループリントを通して指示します。

  2. メイン ツールバーから [Cinematics] ボタンをクリックし、[Add Level Sequence (レベル シーケンスを追加)] を選択して、シネマティクスに名前を付けます。

    Trigger02.png

  3. [Place Actors] パネルの [Basic] タブから、[Point Light] をレベルにドラッグし、以下の位置にライトを配置します。

    Trigger03.png

  4. Point Light を選択した状態で [Details] パネルで、Intensity の値を 0.0 に変更し、Keyframe ボタンをクリックします。

    Trigger04.png

    これで、ポイントライトがシーケンサーに追加され、その初期値をシーケンスの始まりの場所にキーフレーム化します。

  5. シーケンサーでは、タイムラインをフレーム 150 に移動し、ライトの Intensity 値を、5000 に移動し、それをキーフレーム化します。

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

    ポイントライトがオフの位置から始まり、シーケンスの再生が進むにつれて明るくなっていきます。

  6. Add Camera ボタンをクリックします。次にレベルのカメラをキャラクターの近くに移動し、キーフレーム化します。

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

  7. タイムラインをフレーム 75 まで動かします。次に、レベルでカメラをキャラクターとライトを見渡す新しい位置に動かし、それをキーフレーム化します。

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

  8. タイムラインをフレーム 150 まで動かします。次に、レベルでカメラをライトをフォーカスする位置に動かし、それをキーフレーム化します。

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

    シネマティックスにアニメーションをフライスルーするカメラが用意できました。プレイヤーに対してレベル内のどこにライトがあるかを示します。

  9. レベルの [Trigger Box] をクリックしてメイン ツールバーから、 [Blueprint] ボタンをクリックし、Open Level Blueprint を選択します。

    Trigger09.png

  10. グラフ内で右クリックして、 Trigger Box で、[Add On Actor Begin Overlap] を選択します。

    Trigger10.png

  11. レベルに戻り、レベル シーケンスを選択します。次に Level ブループリント 内に戻り右クリックして、レベル シーケンスに Create a Reference (参照を作成) します。

    Trigger11.png

  12. レベル シーケンスの参照からドラッグして、Play (SequencePlayer) を選択します。

    Trigger12.png

  13. OnActorBeginOverlap ノードを、Play ノードに接続します。

    Trigger13.png

    トリガー ボックスに入ると、Play ノードが実行されて、レベル シーケンスが再生されます。

    エディタで再生すると、トリガー ボックスに入るときにシーケンスが再生しますが、再生は1 回だけです。 再度シーケンスを再生する場合、シーケンスに再生を指示する前に、Playback Position を 0 (つまりシーケンスの開始) に設定した Set Playback Position ノードを使って再度シーケンスの再生をやり直します。

  14. Level ブループリント で、Sequence Player ノードからドラッグして、Set Playback Position ノードを使用します。

    Trigger14.png

  15. OnActorBeginOverlap ノードと Play ノードの間の Set Playback Position を接続します。

    Trigger15.png

    これで再生開始前に Level シーケンスを始めの部分に戻します。

  16. シーケンサー 内で Intensity トラックを右クリックして、Properties[When Finished][Keep State] に変更してください。

    Trigger16.png

    [Keep State] オプションを使ってライトの Intensity 設定をシーケンス終了後もそのまま残るようにすることができます。 これはシーケンス終了後にシーケンサーで作成したエフェクトや設定をシーケンス終了後に残したい場合に役立ちます。 例えば、シネマティックスでドアが開き、シネマティックスが終了してもドアを開けたままにしたい場合があるでしょう。

  17. レベル ブループリントGo to End and Stop に接続された Branch (Is Playing の条件で) に接続された F キーボード イベントを追加します。

    Trigger17.png

    F キーを押すと、レベル シーケンスが現在再生中の場合は直ちに最終点にジャンプし再生を停止します。 Go to End and Stop ノードは、プレイヤーがシネマティックスをスキップできるようにしたいが、シーケンスの再生が続く場合にシーケンサーが適用した変更を継続する場合に役立ちます。

    例えば、シネマティックスではシーケンサーがレベルでライトを点灯します。プレイヤーが点灯しているライトのカットシーンをスキップしても、カットシーンがスキップされた後もライトを点灯し続けたいとします。 単に Stop ノードを使ってシネマティックスの再生を停止したらシネマティクスは完了せず、シネマティックスのどこでも停止を選択した場所で停止します (つまり、どこで停止したかに応じてライトは十分にオンオフしなくなります)。

  18. メイン エディタに戻り、メイン ツールバーで[Play (再生)] ボタンをクリックしてエディタで再生します。

最終結果

エディタで再生すると、デフォルトでライトは点灯しないことがわかります。 トリガー ボックスに入ると、シネマティックスが再生を開始し、ライトが点灯し、シネマティクスの完了時に点灯したままになります。 再度トリガー ボックスに入ることでシネマティクスを再トリガーすることができます。これにより、シーケンスが始めから再生します。 トリガー ボックスに入って、F キーを押してシネマティクスをスキップすることもできます。その結果、ライトが自動的に点灯します。

タグ
このページは Unreal Engine の前のバージョン用です。現在リリースされている Unreal Engine 5.3 に対して更新は行われていません。
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル