Um die Eröffnungsszene zu erstellen, in der der Spieler Teil der Zwischensequenz ist, musst du den Spieler in den Keller teleportieren, nachdem die Eröffnungsszene zu Ende gespielt wurde. Verwende dazu das folgende Code-Snippet:
AllPlayers := GetPlayspace().GetPlayers()
für (Agent : AllPlayers):
Teleporter.Teleport(Agent)
Dieser Code dient dazu, alle Spieler auf deiner Insel zu erfassen und eine Funktion auf sie anzuwenden. In diesem Fall: Teleportation.
Teleportieren von Spielern nach einer Zwischensequenz
Erstelle ein neues Verse-Gerät mit dem Namen cutscene_transporter mit dem Verse-Explorer und ziehe das Gerät in das Level. Doppelklicke auf cutscene_transporter.verse im Verse-Explorer, um das Script in Visual Studio Code zu öffnen.
- Füge unterhalb der Klassendefinition transporter_device editierbare Felder für die folgenden Geräte hinzu:
-
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{}
- Füge eine neue Methode
TeleportPlayers()zur Klasseteleport_devicehinzu. Diese Methode teleportiert jeden Spieler zu dem Teleporter, den du im Untergeschoss eingerichtet hast. Füge derTeleportPlayers()-Methode das vorhergehende Code-Snippet hinzu.
TeleportPlayers():void=
AllPlayers := GetPlayspace().GetPlayers()
für (Agent : AllPlayers):
Teleporter.Teleport(Agent)
- Abonniere in
OnBegin()dasStoppedEventaus deinerCinematicSequenceauf die MethodeTeleportPlayers(). Das Abonnieren des EventsTeleportPlayers()veranlasst das Gerät, auf dasStoppedEventderCinematicSequencezu lauschen, und führt dann die folgende Methode TeleportPlayers aus.
OnBegin<override>()<suspends>:void=
Print("Zwischensequenz wird geladen")
CinematicSequence.StoppedEvent.Subscribe(TeleportPlayers)
- Dein
teleporter_deviceCode sollte nun wie folgt aussehen:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
## Ein mit Verse erstelltes Kreativmodus-Gerät, das in einem Level platziert werden kann
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{}
## Wird ausgeführt, wenn das Gerät in einem laufenden Spiel gestartet wird
OnBegin<override>()<suspends>:void=
Print("Zwischensequenz wird geladen")
CinematicSequence.StoppedEvent.Subscribe(TeleportPlayers)
TeleportPlayers():void=
AllPlayers := GetPlayspace().GetPlayers()
für (Agent : AllPlayers):
Teleporter.Teleport(Agent)
-
Speichere das Script in Visual Studio Code, und klicke in UEFN auf Verse Code erstellen.
-
Platziere den Spieler-Spawner auf dem Durr-Burger-Parkplatz, und den Teleporter im Wartebereich des Untergeschosses.
-
Wähle das teleport_device im Outliner aus und weise die Geräte Cinematic Sequence, Spieler-Spawnpunkt und Teleporter ihren jeweiligen Eigenschaften im Details-Panel zu.
-
Klicke auf Änderungen übertragen, um den Code zu testen.
Wenn die Zwischensequenz beginnt, sollte der Spieler auf dem Parkplatz von Durr Burger beginnen. Sobald die Zwischensequenz zu Ende ist, sollte der Spieler in den Keller teleportiert werden, wo das Spiel beginnt.
Nächster Abschnitt
Im nächsten Schritt dieses Tutorials lernst du, wie du mit Filmsequenzen sowohl die Geschichte vorantreiben als auch Stimmung und Atmosphäre erzeugen kannst.