プレイヤーが表示されるカットシーンであるオープニング シーンを作成するには、オープニングのカットシーンの再生が終了してからプレイヤーを地下にテレポートさせる必要があります。 これを行うには、次のコマンド スニペットを使用します。
AllPlayers := GetPlayspace().GetPlayers()
for (Agent : AllPlayers):
Teleporter.Teleport(Agent)
このコードは、島のすべてのプレイヤーを取得し、それらに関数を適用します。 この場合、その関数はテレポーテーションです。
カットシーン後にプレイヤーをテレポートさせる
cutscene_transporter という名前の新しい Verse の仕掛けを Verse Explorer で作成し、その仕掛けをレベルにドラッグします。Verse Explorer で「cutscene_transporter.verse」をダブルクリックして、Visual Studio Code でスクリプトを開きます。
- transporter_device クラスの定義の下に、次の仕掛けの編集可能なフィールドを追加します。
-
CinematicSequence
-
Teleporter
-
PlayerSpawner
cutscene_transporter := class(creative-device):
@editable
CinematicSequence:cinematic_sequence_device = cinematic_sequence_device{}
@editable
Teleporter : teleporter_device = teleporter_device{}
@editable
PlayerSpawner : player_spawner_device = player_spawner_device{}
- 新しいメソッド
TeleportPlayers()をteleport_deviceクラスに追加します。このメソッドは、地下 2 階に設定したテレポーターに各プレイヤーをテレポートさせます。先ほどのコード スニペットをTeleportPlayers()メソッドに追加します。
TeleportPlayers():void=
AllPlayers := GetPlayspace().GetPlayers()
for (Agent : AllPlayers):
Teleporter.Teleport(Agent)
OnBegin()で、CinematicSequenceからTeleportPlayers()メソッドへのStoppedEventをサブスクライブします。TeleportPlayers()をサブスクライブすることで、このイベントによって仕掛けはCinematicSequenceのStoppedEventをリッスンし、以下の TeleportPlayers メソッドを実行します。
OnBegin<override>()<suspends>:void=
Print("Loading Cutscene")
CinematicSequence.StoppedEvent.Subscribe(TeleportPlayers)
- これで、
teleporter_deviceコードは次のようになっているはずです。
using { /Fortnite.com/Devices}
using { /Verse.org/Simulation}
using { /UnrealEngine.com/Temporary/Diagnostics}
## レベルに配置できる、Verse で作成したクリエイティブの仕掛け
log_transporter_device := class(log_channel){}
transporter_device := class(creative_device):
@editable
CinematicSequence:cinematic_sequence_device = cinematic_sequence_device{}
@editable
Teleporter : teleporter_device = teleporter_device{}
@editable
PlayerSpawner : player_spawner_device = player_spawner_device{}
## 実行中のゲームで仕掛けが開始されたときに実行します
OnBegin<override>()<suspends>:void=
Print("Loading CutScene")
CinematicSequence.StoppedEvent.Subscribe(TeleportPlayers)
TeleportPlayers():void=
AllPlayers := GetPlayspace().GetPlayers()
for (Agent : AllPlayers):
Teleporter.Teleport(Agent)
-
Visual Studio Code にスクリプトを保存し、UEFN で、[Build Verse Code (Verse コードをビルド)] をクリックします。
-
ダーバーガーの駐車場に プレイヤー スポナー を配置し、テレポーター を地下 2 階の待機領域に配置する必要があります。
-
アウトライナー で teleport_device を選択し、ムービー シーケンス、プレイヤー スポナー、および テレポーター の仕掛けを [Details (詳細)] パネルの各プロパティに割り当てます。
-
[Push Changes (変更をプッシュ)] をクリックし、コードのプレイテストを行います。
カットシーンが開始されると、プレイヤーがダーバーガーの駐車場にいるところから始まるはずです。 カットシーンの再生が終了したら、プレイヤーはゲームが開始される地下にテレポートする必要があります。
次のセクション
このチュートリアルの次のステップでは、シネマティックを利用してストーリーを進め、ムードや雰囲気を作る方法について説明します。