In questa sezione, imparerai come creare un dispositivo Verse per gestire i tempi e le transazioni delle visuali ed elementi UI di una telecamera. Puoi copiare e incollare lo script completo riportato alla fine di questa sezione.
Segui questi passaggi per creare il tuo dispositivo Verse Sequenza titoli:
- Crea un nuovo dispositivo Verse denominato title_sequence e aggiungilo al dispositivo nel tuo livello. Per informazioni sui passaggi, vedi Creare il tuo dispositivo utilizzando Verse.
- Aggiungi i seguenti campi al tuo dispositivo Verse:
- Una costante del dispositivo Telecamera con punto fisso modificabile denominata
SplashScreenGameCamera, che fungerà da telecamera per mostrare le schermate titolo. - Un dispositivo Telecamera con punto focale modificabile denominato
TitleGameCamerache rappresenterà la telecamera con cui mostrare il titolo del gioco. - Un dispositivo Finestra di dialogo pop up modificabile denominato
StartGameDialogche mostrerà ai giocatori l'opzione di finestra dialogo di avvio del gioco. - Un dispositivo Messaggio HUD modificabile denominato
TitleScreenche mostrerà la UI del titolo del gioco. - Un float modificabile denominato
GameMenuDelayche definisce per quanto tempo deve essere mostrata la schermata del titolo prima che appaia il menu di gioco. - Un array modificabile di dispositivi Messaggio HUD denominato
SplashScreensche mostrerà tutte le schermate iniziali prima della schermata del titolo. - Un dispositivo Controller HUD modificabile denominato
IntroHUDControllerper nascondere gli elementi UI del gioco durante l'introduzione. - Un dispositivo Controller HUD modificabile denominato
GameHUDControllerper mostrare gli elementi UI del gioco che appaiono all'inizio di un gioco. - Un dispositivo Trigger modificabile denominato
GameStartche può essere utilizzato per inviare notifiche a qualsiasi dispositivo relative all'avvio del gioco.
using { /Fortnite.com/Characters } using { /Fortnite.com/Devices } using { /UnrealEngine.com/Temporary/Diagnostics } using { /Verse.org/Simulation } title_sequence:= class(creative_device): # Telecamera di gioco sulla quale visualizzare le schermate iniziali. @editable SplashScreenGameCamera:gameplay_camera_fixed_point_device = gameplay_camera_fixed_point_device{} # Telecamera di gioco sulla quale visualizzare il titolo di gioco. @editable TitleGameCamera:gameplay_camera_fixed_point_device = gameplay_camera_fixed_point_device{} # Opzione di finestra dialogo che consente ai giocatori di avviare il gioco. @editable StartGameDialog:popup_dialog_device = popup_dialog_device{} # Schermata del titolo del gioco da visualizzare. @editable TitleScreen:hud_message_device = hud_message_device{} # Definisce per quanto tempo deve essere mostrata la schermata del titolo prima che appaia il menu di gioco. @editable GameMenuDelay:float = 2.5 # Schermate iniziali da mostrare prima della schermata titolo. @editable SplashScreens:[]hud_message_device = array{} # Controller HUD per nascondere tutti gli elementi UI del gioco. @editable IntroHUDController:hud_controller_device = hud_controller_device{} # Controller HUD per mostrare tutti gli elementi UI del gioco all'avvio del gioco. @editable GameHUDController:hud_controller_device = hud_controller_device{} # Metodo per inviare notifiche a ogni possibile dispositivo in ascolto relative all'inizio imminente del gioco. @editable GameStart:trigger_device = trigger_device{} # Viene eseguito quando il dispositivo viene avviato in un gioco in esecuzione OnBegin<override>()<suspends>:void= - Una costante del dispositivo Telecamera con punto fisso modificabile denominata
- Crea un metodo denominato
ShowTitleAndGameMenu()con lo specificatore suspends. Questo metodo mostrerà la telecamera del titolo, visualizzerà la schermata del titolo, attenderà i secondi di GameMenuDelay prima di mostrare la finestra di dialogo per l'avvio della partita e attenderà che il giocatore prema il pulsante Avvia partita nella UI.# Mostra la schermata del titolo e l'opzione Avvia il gioco. ShowTitleAndGameMenu():void=<suspends> # Aggiungi la telecamera del titolo a tutti i giocatori. TitleGameCamera.AddToAll() # Mostra la schermata del titolo. TitleScreen.Show() # Attendi i secondi specificati in GameMenuDelay prima di mostrare l'opzione Avvia il gioco. Sleep(GameMenuDelay) # Mostra il menu di avvio di gioco StartGameDialog.Show() # Attendi che il giocatore prema il pulsante Avvia il gioco prima di intraprendere altre azioni. StartGameDialog.RespondingButtonEvent.Await() - Crea un metodo chiamato
HideTitleAndGameMenu(). Questo metodo nasconderà la schermata del titolo e rimuoverà la telecamera che viene utilizzata per il titolo.# Nasconde la schermata del titolo e rimuove la telecamera dalla vista dei giocatori. HideTitleAndGameMenu():void= TitleScreen.Hide() TitleGameCamera.RemoveFromAll() - Crea un metodo denominato
ShowSplashScreens(). Questo metodo passerà in rassegna tutti i dispositivi Messaggio HUD aggiunti all'arraySplashScreensper mostrare la schermata iniziale e attenderà per tutto il tempo in cui la schermata iniziale è stata impostata per essere visualizzata nelle sue proprietà. Dopo aver visualizzato tutte le schermate iniziali, la telecamera prevista per questo compito viene disabilitata.# Mostra la serie di schermate iniziali. ShowSplashScreens():void=<suspends> # Passa in rassegna tutte le schermate iniziali. for (SplashScreen : SplashScreens): # Mostra ogni schermata iniziale. SplashScreen.Show() # Attendi il tempo necessario per visualizzare la schermata iniziale. Sleep(SplashScreen.GetDisplayTime()) # Rimuovi la telecamera di gioco utilizzata per mostrare le schermate iniziali. SplashScreenGameCamera.Disable() - Crea un metodo chiamato
ToggleStasisForAllPlayers(). Questo metodo itererà attraverso tutti i giocatori e li metterà in stasi (in modo che non possano muoversi) se l'argomentoShouldFreezeètrue, mentre interromperà la stasi (in modo che possano muoversi di nuovo) se l'argomentoShouldFreezeèfalse.# Attiva/Disattiva la stasi dei giocatori. # Quando ShouldFreeze è vero, tutti i giocatori verranno messi in stasi. # Quando ShouldFreeze è falso, tutti i giocatori verranno liberati dalla stasi. ToggleStasisForAllPlayers(ShouldFreeze:logic):void= for: Player : GetPlayspace().GetPlayers() Character := Player.GetFortCharacter[] do: if (ShouldFreeze?): # Metti il giocatore in stasi e non permettergli di attivarsi o utilizzare emote. Character.PutInStasis(stasis_args{AllowFalling := true, AllowTurning := false, AllowEmotes := false}) else: # Libera il giocatore dalla stasi. Character.ReleaseFromStasis() - Aggiorna
OnBegin()in:- Abilita il Controller HUD a nascondere tutti gli elementi UI del gioco con
IntroHUDController.Enable(). - Metti i giocatori in stasi in modo che non possano muoversi durante l'introduzione con
ToggleStasisForAllPlayers(true). # Mostra la sequenza di schermate iniziali conShowSplashScreens(). - Nascondi il titolo e il menu di gioco all'ultimo secondo di questa funzione
OnBegin()utilizzando l'espressione defer e chiamandoHideTitleAndGameMenu(). - Mostra il titolo e il menu di gioco con
ShowTitleAndGameMenu(). - Libera i giocatori dalla stasi con
ToggleStasisForAllPlayers(false). - Scambia i controller dell'HUD dall'HUD dell'introduzione all'HUD di gioco vero e proprio.
- Infine, chiama
GameStart.Trigger()per inviare notifiche a ogni possibile dispositivo in ascolto relative all'inizio del gioco.# Viene eseguito quando il dispositivo viene avviato in un gioco in esecuzione OnBegin<override>()<suspends>:void= IntroHUDController.Enable() # Attendi l'esecuzione di un aggiornamento di simulazione prima di inizializzare tutto. Sleep(0.0) * Metti i giocatori in stasi in modo che non possano muoversi. ToggleStasisForAllPlayers(true) # Mostra la serie di schermate iniziali. ShowSplashScreens() * Nascondi il titolo e il menu di gioco all'ultimo secondo. # Questo rinvio viene eseguito quando il blocco di codice corrente termina, # ovvero alla fine di questa funzione OnBegin, dopo GameStart.Trigger(). defer: HideTitleAndGameMenu() * Mostra il titolo e il menu di gioco. ShowTitleAndGameMenu() # Libera i giocatori dalla stasi in modo che si possano muovere di nuovo. ToggleStasisForAllPlayers(false) # Cambia i Controller HUD con il dispositivo HUD del gioco. IntroHUDController.Disable() GameHUDController.Enable() # Invia notifiche a ogni possibile dispositivo in ascolto relative all'inizio imminente del gioco! GameStart.Trigger()
- Abilita il Controller HUD a nascondere tutti gli elementi UI del gioco con
- Salva il file Verse e compila il tuo codice per aggiornare il tuo dispositivo Verse nel livello.
Script completo
Di seguito è riportato il codice completo del dispositivo Verse Sequenza titoli.
using { /Fortnite.com/Characters }
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Simulation }
title_sequence := class(creative_device):
# Telecamera di gioco sulla quale visualizzare le schermate iniziali.
@editable
SplashScreenGameCamera:gameplay_camera_fixed_point_device = gameplay_camera_fixed_point_device{}
# Telecamera di gioco sulla quale visualizzare il titolo di gioco.
@editable
TitleGameCamera:gameplay_camera_fixed_point_device = gameplay_camera_fixed_point_device{}
# Opzione di finestra dialogo che consente ai giocatori di avviare il gioco.
@editable
StartGameDialog:popup_dialog_device = popup_dialog_device{}
# Schermata del titolo del gioco da visualizzare.
@editable
TitleScreen:hud_message_device = hud_message_device{}
# Definisce per quanto tempo deve essere mostrata la schermata del titolo prima che appaia il menu di gioco.
@editable
GameMenuDelay:float = 2.5
# Schermate iniziali da mostrare prima della schermata titolo.
@editable
SplashScreens:[]hud_message_device = array{}
# Controller HUD per nascondere tutti gli elementi UI del gioco.
@editable
IntroHUDController:hud_controller_device = hud_controller_device{}
# Controller HUD per mostrare tutti gli elementi UI del gioco all'avvio del gioco.
@editable
GameHUDController:hud_controller_device = hud_controller_device{}
# Metodo per inviare notifiche a ogni possibile dispositivo in ascolto relative all'inizio imminente del gioco.
@editable
GameStart:trigger_device = trigger_device{}
OnBegin<override>()<suspends>:void=
IntroHUDController.Enable()
# Attendi l'esecuzione di un aggiornamento di simulazione prima di inizializzare tutto.
Sleep(0.0)
* Metti i giocatori in stasi in modo che non possano muoversi.
ToggleStasisForAllPlayers(true)
# Mostra la serie di schermate iniziali.
ShowSplashScreens()
* Nascondi il titolo e il menu di gioco all'ultimo secondo.
# Questo rinvio viene eseguito quando il blocco di codice corrente termina,
# ovvero alla fine di questa funzione OnBegin, dopo GameStart.Trigger().
defer:
HideTitleAndGameMenu()
* Mostra il titolo e il menu di gioco.
ShowTitleAndGameMenu()
# Libera i giocatori dalla stasi in modo che si possano muovere di nuovo.
ToggleStasisForAllPlayers(false)
# Cambia i Controller HUD con il dispositivo HUD del gioco.
IntroHUDController.Disable()
GameHUDController.Enable()
# Invia notifiche a ogni possibile dispositivo in ascolto relative all'inizio imminente del gioco!
GameStart.Trigger()
# Mostra la schermata del titolo e l'opzione Avvia il gioco.
ShowTitleAndGameMenu():void=<suspends>
# Aggiungi la telecamera del titolo a tutti i giocatori.
TitleGameCamera.AddToAll()
# Mostra la schermata del titolo.
TitleScreen.Show()
# Attendi i secondi specificati in GameMenuDelay prima di mostrare l'opzione Avvia il gioco.
Sleep(GameMenuDelay)
# Mostra il menu di avvio di gioco
StartGameDialog.Show()
# Attendi che il giocatore prema il pulsante Avvia il gioco prima di intraprendere altre azioni.
StartGameDialog.RespondingButtonEvent.Await()
# Nasconde la schermata del titolo e rimuove la telecamera dalla vista dei giocatori.
HideTitleAndGameMenu():void=
TitleScreen.Hide()
TitleGameCamera.RemoveFromAll()
# Mostra la serie di schermate iniziali.
ShowSplashScreens():void=<suspends>
# Passa in rassegna tutte le schermate iniziali.
for (SplashScreen : SplashScreens):
# Mostra ogni schermata iniziale.
SplashScreen.Show()
# Attendi il tempo necessario per visualizzare la schermata iniziale.
Sleep(SplashScreen.GetDisplayTime())
# Rimuovi la telecamera di gioco utilizzata per mostrare le schermate iniziali.
SplashScreenGameCamera.Disable()
# Attiva/Disattiva la stasi dei giocatori.
# Quando ShouldFreeze è vero, tutti i giocatori verranno messi in stasi.
# Quando ShouldFreeze è falso, tutti i giocatori verranno liberati dalla stasi.
ToggleStasisForAllPlayers(ShouldFreeze:logic):void=
for:
Player : GetPlayspace().GetPlayers()
Character := Player.GetFortCharacter[]
do:
if (ShouldFreeze?):
# Metti il giocatore in stasi e non permettergli di attivarsi o utilizzare emote.
Character.PutInStasis(stasis_args{AllowFalling := true, AllowTurning := false, AllowEmotes := false})
else:
# Libera il giocatore dalla stasi.
Character.ReleaseFromStasis()
Sezione successiva
%title-sequence-2-customizing-splash-screens-in-unreal-editor-for-fortnite:topic%