Kameras spielen eine wichtige Rolle für das Aussehen und die Atmosphäre eines Spiels. Third-Person-Kameras können den Spielern ein größeres Raumgefühl vermitteln, während Egoperspektiven-Kameras den Spielern einen genaueren Blick auf ihre Spielwelt ermöglichen. Der Wechsel der Kamera im Gameplay kann unterschiedliche Gefühle hervorrufen, und der Wechsel zwischen mehreren Kameras kann das Spielerlebnis erheblich bereichern. Du könntest zum Beispiel eine unterhaltsame Plattform-Herausforderung erstellen, indem du eine feste Kamera verwendest, um einen seitlich verlaufende Abschnitt zu erstellen.
In UEFN kannst du Verse verwenden, um Kamerawechsel zu verarbeiten. Indem du Geräte verwendest, um auf Events zu lauschen, kannst du einem Spieler eine Kamera hinzufügen, um seine Sicht zu ändern, wenn das Event ausgelöst wird. In diesem Beispiel fügst du einem Spieler am Ende einer Filmsequenz ein Umlaufbahnkamera-Gerät hinzu. Du kannst die Einstellungen einer Orbitkamera ändern, um eine Egoperspektive zu simulieren, und durch Hinzufügen der Kamera am Ende einer Filmsequenz kannst du einen fließenden Übergang von der dritten zur ersten Person schaffen. Um den Spielspaß zu steigern, holt sich der Spieler in diesem Beispiel eine Waffe und schwingt sie gegen die Tür, um die Filmsequenz auszulösen. Du kannst dieses Beispiel deinen Anforderungen entsprechend anpassen, etwa indem ein Spieler einen Schraubenschlüssel schwingt, um eine defekte Schiffstür zu reparieren, oder indem er einen Hammer schwingt, um einen Felsbrocken zu zertrümmern und einen geheimen Bereich freizugeben. Du kannst diese Konzepte auch breiter anwenden, um coole Gameplay-Momente zu schaffen, z. B. eine Weitsicht beim Betreten einer neuen Zone, einen Wechsel zur Draufsicht, wenn der Spieler ein Rätsel lösen muss, oder eine Egoperspektive in einem gruseligen Horror-Erlebnis.
Folge diesem Tutorial, um zu erfahren, wie du ein Verse-Gerät erstellst, das den Spieler beim Öffnen einer Tür mithilfe einer Filmsequenz von der dritten in die Egoperspektive versetzt.
Dieses Beispiel verwendet die folgenden Sprachfunktionen:
Klasse: Dieses Beispiel erstellt eine Verse-Klasse, die eine Filmsequenz aktiviert, wenn ein Spieler eine Tür öffnet.
Option: Du kannst abonnierbare Events in Optionsvariablen speichern und Abonnements für diese Events später stornieren.
In diesem Beispiel werden die folgenden APIs verwendet:
Abonnierbar: Du abonnierst Events, um zu erfahren, wann ein Spieler ein Volumen neben der Tür betritt, und um Spielern einen Gegenstand zu gewähren, wenn sie mit einer Schaltfläche interagieren.
Level einrichten
In diesem Beispiel werden die folgenden Geräte verwendet:
1 x Schaltflächen-Gerät: Wenn der Spieler mit der Schaltfläche interagiert, erhält er ein Schwert von einem Gegenstandsgeber-Gerät.
1 x Gegenstandsgeber-Gerät: Das Gegenstandsgeber-Gerät gewährt dem Spieler das Schwert, das er benötigt, um durch die Tür zu gelangen.
1 x Bedingungsknopf-Gerät: Die erforderliche Waffe ist als Schlüsselgegenstand des Bedingungsknopfs festgelegt, sodass der Spieler nicht durch die Tür gelangen kann, bis er das erforderliche Schwert besitzt.
1 x Input Auslöser-Gerät: Dieses Gerät öffnet die Tür, wenn der Spieler angreift, indem es auf die Feuer-Input-Action lauscht. Dies geschieht nur, wenn sich der Spieler innerhalb des Bereich-Geräts befindet, wenn der Spieler das Schwert besitzt und die Tür noch nicht geöffnet ist.
1 x Volumen-Gerät: Da zum Öffnen der Tür nicht einfach irgendein Angriffs-Trigger mit dem Schwert gewünscht ist, sorgt das Volumen-Gerät dafür, dass der Spieler direkt neben der Tür stehen muss, um sie zu öffnen.
1 x Filmsequenz-Gerät: Um einen fließenden Übergang von der Third-Person-Perspektive zur Egoperspektive zu erstellen, wird eine Filmsequenz abgespielt, die zeigt, wie sich die Tür öffnet, und die Kamera wird so positioniert, dass sie mit dem Blickwinkel des Spielers in der Egoperspektive übereinstimmt.
1 x Umlaufbahnkamera-Gerät: Um eine Egoperspektive für den Spieler zu erstellen, verwendest du eine Umlaufbahnkamera, die im Brustkorb des Charakters positioniert ist, um die Egoperspektive zu simulieren. Dieser Ansichtswechsel erfolgt erst nach den Filmsequenzen, wenn der Spieler die Tür öffnet.
1 x Schloss-Gerät: Dadurch bleibt die Tür verschlossen, damit der Spieler sie nicht öffnen kann, bevor er über die erforderliche Waffe verfügt.
1 x Kartenkennzeichner-Gerät: Es zeigt die Position der Tür auf der Minikarte an, wenn der Spieler die Waffe aufhebt.
Folge diesen Schritten, um dein Level einzurichten:
Gegenstandsgeber und Schaltfläche
Um dem Spieler die Waffe zu gewähren, die er zum Öffnen der Tür benötigt, verwendest du einen Gegenstandsgeber und ein Schaltflächengerät. Wenn der Spieler mit der Schaltfläche interagiert, gewährt der Gegenstandsgeber ihm die Waffe. Folge diese Anweisungen, um diese Elemente hinzuzufügen:
Füge deinem Level ein Gegenstandsgeber-Gerät hinzu.
Wähle den Gegenstandsgeber im Outliner aus. Lege im Details-Panel unter Benutzeroptionen die Werte wie folgt fest:
Option Wert Erklärung Item-Definition
Schwert
Das ist die Waffe, mit der Spieler die Tür öffnet.
Gewährten Gegenstand ausrüsten
Ja
In diesem Beispiel hebt der Spieler die Waffe auf und rüstet sie sofort aus.
Füge ein Schaltflächen-Gerät zu deinem Level hinzu.
Wähle die Schaltfläche im Outliner aus. Lege im Details-Panel unter Benutzeroptionen die Werte wie folgt fest:
Option Wert Erklärung Interaktionstext
„Hebe die Waffe auf“"
Dies ist der Text, der den Spieler auffordert, mit der Schaltfläche zu interagieren.
Anzahl der Auslösungen
1
In diesem Beispiel kann der Spieler die Waffe nur einmal aufheben.
Eingabeauslöser
Um zu wissen, wann ein Spieler eine Waffe schwingt, kannst du einen Input-Auslöser verwenden, der auf eine bestimmte Aktion lauscht. Wenn ein Spieler die Waffe schwingt, wird der Input-Auslöser aktiviert. Folge diesen Schritten, um einen Input-Auslöser hinzuzufügen:
Füge deinem Level ein Input-Trigger-Gerät hinzu.
Wähle den Input-Trigger im Outliner aus. Lege im Details-Panel unter Benutzeroptionen die Werte wie folgt fest:
Option Wert Erklärung Eingabetyp
Standardaktion
Feuern ist eine Standardaktion, auf die der Input-Trigger hören muss, um zu wissen, wann ein Spieler die Waffe schwingt.
Standardeingabe
Feuer
Feuern ist die Aktion, auf die der Input-Trigger hören muss, um zu wissen, wann ein Spieler eine Waffe schwingt.
Auf HUD anzeigen
Nein
Du musst diese Aktion nicht im HUD anzeigen.
Lautstärke
Um sicherzustellen, dass sich der Spieler an der Tür befinden muss, um sie zu öffnen, kannst du ein Bereich-Gerät in der Nähe der Tür verwenden, um zu prüfen, ob sich ein Spieler innerhalb des Bereichs befindet. Folge diesen Schritten, um ein Bereich-Gerät hinzuzufügen:
Füge in deinem Level irgendwo eine Tür hinzu. Das ist die Tür, die der Spieler mit der Waffe öffnet.
Füge deinem Level ein Volumen-Gerät hinzu. Dieses Bereich-Gerät muss einen kleinen Bereich vor der Tür oder den Bereich überlappen, den dein Spieler angreifen soll.
Ändere die Größe des Volumen-Geräts, indem du sein Transformations-Gizmo so änderst, dass es in den Bereich passt, in dem sich der Spieler beim Angriff befinden soll. Der Input-Auslöser lauscht nur auf das Feuer-Event, während sich der Spieler innerhalb dieses Bereichs befindet. Stelle also sicher, dass es den Anforderungen deines Erlebnisses entspricht.
Sperren
Um sicherzustellen, dass ein Spieler die Tür nicht öffnen kann, bevor er die Waffe erhält, kannst du die Tür mithilfe eines Schlossgeräts verschließen. Folge diesen Schritten, um ein Schlossgerät hinzuzufügen:
Füge ein Schloss-Gerät hinzu, das an deine Tür angebracht ist.
Wähle das Schloss im Outliner aus. Setze im Details-Panel unter Benutzeroptionen die Option Im Spiel sichtbar auf False.
Kartenkennzeichner
Wenn der Ort, den ein Spieler erreichen muss, weit von der Position entfernt ist, an der er die Waffe bekommt, ist es hilfreich, den Spielern mithilfe eines Kartenkennzeichners zu zeigen, wohin sie gehen müssen. Dieser zeigt ein Bild auf der Karte und der Minikarte an und kann einen Zielimpuls aktivieren, der die Spieler direkt zur Tür führt. Folge diesen Schritten, um einen Kartenkennzeichner hinzuzufügen:
Füge deinem Level ein Kartenkennzeichner-Gerät hinzu, das unter der Tür versteckt ist.
Wähle den Kartenkennzeichner im Outliner aus. Im Details-Panel unter Benutzeroptionen:
Option Wert Erklärung Zu Spielbeginn eingeschaltet
false
Der Kartenkennzeichner wird erst aktiviert, nachdem der Spieler die Waffe aufgehoben hat.
Kleines Symbol
Wähle ein Symbol
Wähle ein Symbol, das du auf der Minikarte anzeigen möchtest.
Großes Symbol
Wähle ein Symbol
Wähle ein Symbol, das du auf der Karte anzeigen möchtest.
Bedingungselement-Schaltfläche
Um zu wissen, dass ein Spieler die richtige Waffe schwingt, um die Tür zu öffnen, kannst du eine Bedingungselement-Schaltfläche verwenden, um die Waffe zu prüfen, die er hält, wenn er sie schwingt. Folge diesen Schritten, um eine Bedingungselement-Schaltfläche hinzuzufügen:
Füge deinem Level ein Bedingungselement-Schaltfläche-Gerät hinzu.
Wähle die Bedingungselement-Schaltfläche im Outliner aus. Lege im Details-Panel unter Benutzeroptionen die Werte wie folgt fest:
Option Wert Erklärung Schlüsselgegenstände aufbrauchen
Nein
Du möchtest die Waffe des Spielers nicht aufbrauchen, wenn er die Tür öffnet.
Schlüsselelement 1 Item-Definition
Waffe
Dies ist die Waffe, die der Spieler zum Öffnen der Tür benötigt.
Orbitkamera
Um eine Egoperspektive zu simulieren, kannst du eine Orbitkamera verwenden, um die Perspektive des Spielers zu ändern. Folge diesen Schritten, um eine Orbitkamera hinzuzufügen:
Füge deinem Level ein Kamera: Orbit-Gerät hinzu.
Wähle die Orbitkamera-Schaltfläche im Outliner. Lege im Details-Panel unter Kamera die Werte wie folgt fest:
Option Wert Erklärung Entfernung
0,0 cm
Parameter, die für die Egoperspektive benötigt werden
Offset X
27,0 cm
Parameter, die für die Egoperspektive benötigt werden
Offset Y
0,0 cm
Parameter, die für die Egoperspektive benötigt werden
Offset Z
76,0 cm
Parameter, die für die Egoperspektive benötigt werden
Horizontale Geschwindigkeit
0,0 cm/s
Parameter, die für die Egoperspektive benötigt werden
Lege im Details-Panel unter Übergang die Werte wie folgt fest:
Option Wert Erklärung Zeit für nähernden Übergang
0,0 s
Parameter, die für die Egoperspektive benötigt werden
Zeit für entfernenden Übergang
0,1 s
Parameter, die für die Egoperspektive benötigt werden
Typ des entfernenden Übergangs
Langsamer Stopp
Parameter, die für die Egoperspektive benötigt werden
Filmsequenz
Um beim Öffnen einer Tür eine Filmsequenz auszulösen, benötigst du zum Abspielen ein Filmsequenz-Gerät. Folge diesen Schritten, um eine Filmsequenz hinzuzufügen:
Füge ein Filmsequenz-Gerät zu deinem Level hinzu.
Erstelle im Inhaltsbrowser eine Filmsequenz, die du in deinem Level verwenden möchtest. Die Filmsequenz verwendet die Orbitkamera, die du zuvor eingerichtet hast, und sollte das Öffnen der Tür zeigen, während die Kamera von einem anfänglichen Winkel zu einer Egoperspektive wechselt. Weitere Informationen zum Erstellen deiner eigenen Filmsequenz findest du unter Erstellen von Film- und Zwischensequenzen.
Wähle im Outliner die Filmsequenz aus. Weise dann im Details-Panel unter Benutzeroptionen die Sequenz deiner Filmsequenz zu.
Klicke auf das Bild, um es zu vergrößern.
Filmsequenz „Tür öffnen“ unter Verwendung von Verse
Um die Logik zum Abspielen einer Filmsequenz und Öffnen der Tür zu handhaben, verwendest du ein Verse-Gerät. Dieses Gerät lauscht auf einen Spieler, der innerhalb des Bereich-Geräts seine Waffe schwingt, spielt dann die Filmsequenz ab, öffnet die Tür und bringt den Spieler in die Egoperspektive.
Einrichten der Felder
So erstellst du das Verse-Gerät:
Erstelle ein neues Verse-Gerät mit dem Verse-Explorer und nenne es
door_open_cinematic_manager.Füge oberhalb der Klassendefinition von
door_open_cinematic_managereinen Log-Kanal hinzu, um Nachrichten auszugeben, die spezifisch für dieses Gerät sind. Füge dann einen Logger zur Klassendefinition hinzu, der mit dem Log-Kanal verwendet werden soll.Versedoor_open_channel := class(log_channel){} # A Verse-authored creative device that can be placed in a level door_open_cinematic_manager := class(creative_device): Logger:log = log{Channel := door_open_channel}Füge der Klassendefinition
door_open_cinematic_managerdie folgenden Felder hinzu:Ein bearbeitbares Volumen-Gerät mit dem Namen
DoorVolume. Dies ist der Bereich, in dem sich der Spieler befinden muss, um die Tür zu öffnen.Verse# The volume the player needs to be inside of to open the door. @editable DoorVolume:volume_device = volume_device{}Ein bearbeitbares Input-Trigger-Gerät mit dem Namen
FireTrigger. Dieses hört dem Spieler zu, der seine Waffe verwendet, während er sich imDoorVolumebefindet.Verse# The input trigger that listens for the player swinging their weapon # when inside the DoorVolume. @editable FireTrigger:input_trigger_device = input_trigger_device{}Ein bearbeitbares Bedingungsknopf-Gerät mit dem Namen
ConditionalButton. Dies prüft, ob der Spieler die richtige Waffe ausgerüstet hat, wenn er sich innerhalb des Bereich-Geräts befindet.Verse# The Conditional Item Button that checks that the player has the correct weapon. @editable ConditionalButton:conditional_button_device = conditional_button_device{}Ein bearbeitbares Schlossgerät mit dem Namen
DoorLock. Dadurch bleibt die Tür verschlossen, wenn der Spieler nicht die richtige Waffe besitzt.Verse# The lock device that prevents the door from being opened. @editable Door:lock_device = lock_device{}Ein bearbeitbares Filmsequenz-Gerät mit dem Namen
CinematicSequence. Dies spielt die filmische Überleitung zum Kameraübergang ab, wenn die Tür geöffnet wird.Verse# The cinematic sequence device that plays the cinematic when opening the door. @editable CinematicSequence:cinematic_sequence_device = cinematic_sequence_device{}Ein bearbeitbares Kartenkennzeichner-Gerät mit dem Namen
ObjectiveMarker. Es zeigt die Position der Tür auf der Minikarte an, nachdem der Spieler die Waffe aufgehoben hat.Verse# The map indicator device that shows the location of the door. @editable ObjectiveMarker:map_indicator_device = map_indicator_device{}Ein bearbeitbares Gegenstandsgeber-Gerät mit dem Namen
ItemGranter. Dies gewährt dem Spieler die Waffe, die er zum Weiterkommen benötigt.Verse# The item granter device that grants the player the weapon they need. @editable ItemGranter:item_granter_device = item_granter_device{}Ein bearbeitbares Schaltflächengerät mit dem Namen
ItemGrantButton. Dadurch wird derItemGranteraktiviert, um dem Spieler die erforderliche Waffe zu gewähren.Verse# The button that activates the ItemGranter granter. @editable ItemGrantButton:button_device = button_device{}Ein bearbeitbares Orbitkamera-Gerät namens
FPSCamera. Dies simuliert eine Egoperspektive und wird dem Spieler hinzugefügt, nachdem die Filmsequenz beendet ist.Verse# The orbit camera that simulates a first-person view. @editable FPSCamera:gameplay_camera_orbit_device = gameplay_camera_orbit_device{}Eine
Logik-Variable mit dem NamenIsDoorOpen. Dieses Feld verfolgt, ob die Tür bereits geöffnet ist, sodass die Sequenz nicht abgespielt wird, wenn dies der Fall ist.Verse# A variable that tracks whether the door is already open. var IsDoorOpen:logic = falseEine
stornierbareOptionmit dem NamenFireSubscription. Diese speichert das Abonnement für dasFireTriggerPressedEvent. Die Filmsequenz sollte nur ausgelöst werden, wenn sich der Spieler direkt an der Tür befindet. Dieses stornierbare Abonnement stellt sicher, dass die Registrierung des Spielers beimFireTriggeraufgehobenwird, wenn er sich zu weit wegbewegt.Verse# A cancelable subscription to the FireTrigger device. var FireSubscription:?cancelable = false
Abspielen der Filmsequenz
Wenn sich die Tür öffnet, läuft eine Filmsequenz ab, die das Öffnen der Tür zeigt und wie die Ansicht des Spielers von der Third-Person-Perspektive zur Egoperspektive übergeht. Folge den Schritten unten, um deine Filmsequenz zu aktivieren, wenn ein Spieler die Tür öffnet.
Füge der Klassendefinition
door_open_cinematic_managereine neue MethodePlayCinematic()hinzu. Füge der Klassendefinitiondoor_open_cinematic_managereine neue MethodePlayCinematic()hinzu. Diese Funktion nimmt den Spieler, der die Tür öffnet. Sie spielt dann die Filmsequenz ab und öffnet die Tür mithilfe des Schlossgeräts.Verse# Plays a cinematic and unlocks the door. PlayCinematic(Agent:agent):void=Spiele in
PlayCinematic()zuerst die Filmsequenz vonCinematicSequenceab, entsperre dann die Tür und öffne sie entsprechend mithilfe vonUnlock()undOpen().Verse# Plays a cinematic and unlocks the door. PlayCinematic(Agent:agent)<suspends>:void= Logger.Print("Player is holding item, playing cinematic...") CinematicSequence.Play() # Unlock the door, then open it. Door.Unlock(Agent) Door.Open(Agent)Ändere schließlich die Ansicht des Spielers von der Third-Person- zur Egoperspektive, indem du ihm mithilfe von
AddTo()die Orbitkamera hinzufügst und dann die Zielmarkierung deaktivierst. Deine abgeschlossenePlayCinematic()-Funktion sollte wie folgt aussehen:Verse# Plays a cinematic and unlocks the door. PlayCinematic(Agent:agent)<suspends>:void= Logger.Print("Player is holding item, playing cinematic...") CinematicSequence.Play() # Unlock the door, then open it. Door.Unlock(Agent) Door.Open(Agent) set IsDoorOpen = trueDie Filmsequenz soll nur abgespielt werden, wenn der Spieler den erforderlichen Gegenstand in der Hand hält, und soll nicht noch einmal abgespielt werden, nachdem die Tür bereits geöffnet wurde. Um diese Logik zu verarbeiten, füge eine neue Methode
CheckCinematic()zur Klassendefinitiondoor_open_cinematic_managerhinzu. Diese Funktion nimmt den Spieler in denDoorVolumeund prüft, ob er die erforderlichen Gegenstände hat.Verse# Check if the player has the required item and the door isn't already open. CheckCinematic(Agent:agent):void=Prüfe in
CheckCinematic()mitIsHoldingItem[], ob der Spieler den unterConditionalButtonregistrierten Gegenstand hält, und prüfe, obIsDoorOpenFalse ist, um sicherzustellen, dass die Tür nicht bereits entsperrt ist. Wenn dies der Fall ist, spawne mitspawn{}diePlayCinematic()-Funktion, die den Spieler übergibt, der die Tür öffnet. Deine abgeschlosseneCheckCinematic()-Funktion sollte wie folgt aussehen:Verse# Check if the player has the required item and the door isn't already open. CheckCinematic(Agent:agent):void= if: ConditionalButton.IsHoldingItem[Agent] and not IsDoorOpen? then: spawn{PlayCinematic(Agent)}
Verfolgung des Spielers und Gewähren von Gegenständen
Da der Spieler seine Waffe schwingen muss, während er sich innerhalb von DoorVolume befindet, um die Tür zu öffnen, muss das Input-Gerät auf dieses Event lauschen. Führe die folgenden Schritte aus, um deinen Input-Auslöser so zu konfigurieren, dass er darauf reagiert, wenn dein Spieler eine Waffe schwingt.
Füge der Klassendefinition
door_open_cinematic_managereine neue MethodeOnPlayerEntersVolume()hinzu. Diese Funktion nimmt einen Agent und registriert ihn beiFireTrigger, wenn er dasDoorVolumebetritt.Verse# Registers the Agent with the FireTrigger when they enter the DoorVolume. OnPlayerEntersVolume(Agent:agent):void= Logger.Print("Agent entered DoorVolume")Registriere in
OnPlayerEntersVolume()den Agent beiFireTrigger,indem duRegister()aufrufst. Setze dannFireSubscriptionauf das Ergebnis des Abonnements vonFireTrigger.PressedEventfürPlayCinematic(). Deine abgeschlossene FunktionOnPlayerEntersVolume()sollte wie folgt aussehen:Verse# Registers the Agent with the FireTrigger when they enter the DoorVolume. OnPlayerEntersVolume(Agent:agent):void= Logger.Print("Agent entered DoorVolume") FireTrigger.Register(Agent) # Subscribe the PressedEvent to PlayCinematic, and store that subscription in FireSubscrition. set FireSubscription = option{(FireTrigger.PressedEvent.Subscribe(PlayCinematic))}Wenn ein Spieler das
DoorVolumeverlässt, musst du die Verfolgung des Abonnements fürFireTrigger.PressedEventstoppen, da der Spieler die Filmsequenz nur aktivieren können soll, wenn er sich nicht im Volumen befindet. Um dies zu verarbeiten, füge die neue MethodeOnPlayerExitsVolume()zur Klassendefinitiondoor_open_cinematic_managerhinzu.Verse# Unregister the Agent with the FireTrigger when they leave the DoorVolume. OnPlayerExitsVolume(Agent:agent):void=Führe in
OnPlayerExitsVolume()zuerstUnregister()auf dem Agent mitFireTriggeraus. Rufe dann das Abonnement inFireSubscriptionab und brich es ab. Deine abgeschlosseneOnPlayerExitsVolume()-Methode sollte wie folgt aussehen:Verse# Unregister the Agent with the FireTrigger when they leave the DoorVolume. OnPlayerExitsVolume(Agent:agent):void= Logger.Print("Agent exited DoorVolume") FireTrigger.Unregister(Agent) # Cancel the subscription to the FireSubscription. if (SubscriptionToCancel := FireSubscription?): SubscriptionToCancel.Cancel()Wenn der Spieler mit dem
ItemButtoninteragiert, wird ihm die Waffe gewährt, die er für den Fortschritt benötigt. Außerdem wird eine Zielmarkierung auf der Minikarte angezeigt, die ihm den Weg zur Tür weist, falls er diese noch nicht gefunden hat. Um dies zu verarbeiten, füge die neue MethodeGrantItem()hinzu, die einenagentder Klassendefinitiondoor_open_cinematic_managerübernimmt. Rufe inGrantItem()GrantItemauf den übergebenen Agent auf und aktiviere die Zielmarkierung. Deine abgeschlosseneGrantItem()-Methode sollte wie folgt aussehen:Verse# Grants the Agent an item when they interact with the ItemGrantButton # and enables the ObjectiveMarker. GrantItem(Agent:agent):void= ItemGranter.GrantItem(Agent) ObjectiveMarker.Enable()
Alles kommt zusammen
Du kannst nun jedes Event mit seiner zugeordneten Funktion abonnieren und deinen Code im Spiel testen.
Abonniere in
OnBegin()ItemGrantButton.InteractedWithEventauf der FunktionGrantItem(). Abonniere dannDoorVolume.AgentEntersEventundDoorVolume.AgentExitsEventmit ihren assoziierten Funktionen. DeineOnBegin()-Funktion sollte wie folgt aussehen:Verse# Runs when the device is started in a running game OnBegin<override>()<suspends>:void= # Subscribe each event to its associated function. ItemGrantButton.InteractedWithEvent.Subscribe(GrantItem) DoorVolume.AgentEntersEvent.Subscribe(OnPlayerEntersVolume) DoorVolume.AgentExitsEvent.Subscribe(OnPlayerExitsVolume)Speichere deinen Code und kompiliere ihn.
Wähle in UEFN das Gerät DoorOpenCinematicManager in deinem Level. Weise im Outliner jede bearbeitbare Referenz dem Gerät im Level zu.
Klicke auf das Bild, um es zu vergrößern.
Klicke auf Sitzung starten in der UEFN-Werkzeugleiste, um das Level zu testen. Beim Spieltest des Levels sollte die Interaktion mit der Gegenstandsschaltfläche dem Spieler die benötigte Waffe gewähren und eine Zielmarkierung zur Minikarte des Spielers hinzufügen. Wenn der Spieler die Waffe im Türvolumen verwendet, sollte die Filmsequenz wiedergegeben werden, die Tür sollte sich öffnen und der Spieler sollte zur Ichperspektive wechseln.
Vollständiger Code
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# See https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse for how to create a verse device.
door_open_log := class(log_channel){}
door_open_cinematic_manager := class(creative_device):
Logger:log = log{Channel := door_open_log}
Du bist am Zug
Durch die Bearbeitung dieser Anleitung hast du gelernt, wie du mit Verse eine Filmsequenz wiedergibst, wenn ein Spieler eine Tür öffnet, und wie du von der Third-Person-Kamera zur Ichperspektive-Kamera wechselst.
Versuche mit dem, was du gelernt hast, Folgendes:
Kannst du andere Kamera-Übergänge durchführen, wie den Übergang zu einer Seitenscroll-Ansicht?
Wie steht es mit einer speziellen Schaltfläche, um den Kamerawinkel zu ändern oder ein Level zu konzipieren, für dessen Fortschritt mehrere Kamerawinkel erforderlich sind?
Kannst du Input-Trigger für negative Strafen nutzen, z. B. die Spieler herausfordern, eine Sektion zu durchlaufen, ohne zu springen, und eine Filmsequenz abzuspielen, wenn sie es nicht schaffen?