Ora che hai creato entità che si muovono avanti e indietro fra le destinazioni, è il momento di costruire un Prefab da utilizzare per configurare rapidamente il tuo livello.
Creazione del Prefab
Per iniziare, dovrai definire la serie di entità che compongono la tua entità in movimento. Ogni serie avrà più entità. La prima entità rappresenterà la piattaforma stessa, mentre altre rappresenteranno le destinazioni verso cui la piattaforma si sposterà. Segui questa procedura per creare la reimpostazione del prefab della piattaforma:
Aggiungi un'entità alla tua scena denominata
AnimatingBlockSet. Per informazioni su come aggiungere entità e componenti alla scena, consulta Utilizzo di entità e componenti.Aggiungi un'altra entità denominata
AnimatingBlockalla scena come figlia diAnimatingBlockSet. Imposta la trasformazione di questa entità nella trasformazione del genitore. Questa è l'entità che verrà animata.Aggiungi un
mesh_componental tuo AnimatingBlock e assegnagli il cubo.Aggiungi un
animate_to_targets_componente unkeyframed_movement_componentadAnimatingBlock. Questo è il componente Verse che hai definito in precedenza.Aggiungi tre nuove entità alla scena denominate
StartingTarget,Target2eTarget3e impostale come figlie diAnimatingBlockSet. Aggiungimesh_componenta ciascuna di esse e impostalo nella sfera. Ciò ti permetterà di visualizzare dove si muove la tua entità nel mondo.Puoi riposizionare queste entità per spostare la piattaforma in aree diverse e puoi disabilitare il loro
mesh_componentuna volta posizionato il blocco per evitare che la sfera sia visualizzata durante il gameplay.Posiziona
StartingTargetnella stessa trasformazione diAnimatingBlockeTarget2eTarget3nei punti in cui vuoi che il blocco si sposti. Prova ad assegnare aTarget2eTarget3scale e rotazioni diverse in modo da poter vedere come cambia il blocco mentre si anima per ciascuno di essi.Seleziona l'entità
AnimatingBlocknell'editor. Nel pannello Dettagli, aggiungi tre oggetti all'arraySegmenti. ImpostaSegmentStartPositionsu ciascuna entità di destinazione nell'ordine in cui vuoi che il blocco viaggi verso di essa. Puoi anche modificarePauseSeconds,AnimationDurationedEasingFunctionper personalizzare il movimento del blocco.Infine, fai clic destro su
AnimatingEntitySetnell'Outliner e seleziona Salva come Prefab. Assegna a questo prefab il nomeanimating_entity_prefab.
Esempio di prefab utilizzando la configurazione precedente. Poiché Target2 e Target3 hanno scale e rotazioni diverse, AnimatingBlock si ridimensionerà e ruoterà in modo appropriato mentre si sposta verso di essi.
Creazione di un livello di piattaforme
E questo è tutto! Ora che hai finito tutto il lavoro di base, è il momento di iniziare a compilare! Userai i prefab che hai creato per costruire rapidamente un livello di piattaforme!
All'inizio del tuo livello, prova a utilizzare animating_entity_set_prefab per creare una struttura a ponte che si costruisce da sola. Puoi eseguire l'override di mesh_component su ciascuna entità con le tue mesh personalizzate per aggiungere un po' di stile. Utilizza la modalità di animazione oneshot per fare in modo che i blocchi restino in posizione quando terminano il movimento.
I blocchi si animano lentamente in posizione per costruire un ponte che il giocatore deve attraversare.
Successivamente, posiziona alcuni dei animating_entity_set_prefab che hai costruito per creare una serie di piattaforme che i giocatori devono attraversare con attenzione. Prova a variare AnimationDuration, PauseSeconds e EasingFunction su ciascun segmento per rendere unica ogni piattaforma e tenere i giocatori sull'attenti. Nella configurazione seguente, il giocatore deve attraversare tre piattaforme, ognuna con durate di animazione e tempi di pausa diversi.
I salti diventano molto più intensi quando sono sopra la lava.
Poiché tutte le tue entità inizieranno a simulare più o meno nello stesso momento, anche le tue piattaforme inizieranno a muoversi tutte nello stesso momento. Tienilo a mente quando posizioni le tue piattaforme, soprattutto se hai più piattaforme che si muovono nella stessa direzione, poiché ciò potrebbe rendere impossibili alcuni salti a meno che tu non ne modifichi AnimationDuration e PauseSeconds.
E le piattaforme che scompaiono in loop? Usando disappearing_entity_prefab, crea una sezione in cui i giocatori devono saltare su piattaforme che scompaiono e riappaiono in momenti diversi. Variane la durata per creare situazioni complicate per i tuoi giocatori.
Per attraversare questa sezione i giocatori devono prestare particolare attenzione alla tempistica di ogni entità.
Infine, come ostacolo che i giocatori devono evitare, prova a utilizzare animating_entity_prefab. Nella configurazione seguente, il giocatore deve attraversare una serie di piattaforme attraverso uno stagno mentre viene inseguito da un blocco gigante. Il blocco ha durate di animazione e tempi di pausa differenti per rendere l'attraversamento dello stagno frenetico, ma non impossibile.
Non è facile rilassarsi in riva al lago quando si è inseguiti da un cubo gigante.
In autonomia
E questo è tutto! Completando questa guida hai imparato come utilizzare i componenti Verse personalizzati per creare il tuo platformer. Utilizzando quello che hai imparato, prova a fare quanto segue:
Puoi utilizzare più componenti Verse sulla stessa piattaforma per creare scenari interessanti? Che ne dici di una piattaforma che si muove e scompare allo stesso tempo?
Pensa agli altri tipi di componenti che potresti utilizzare per un gioco di piattaforme. Che ne dici di una piattaforma che utilizza il componente luminoso per segnalare quando puoi calpestarlo o di un componente del sistema particellare che ti dice se la piattaforma potrebbe danneggiarti?
Prova a creare altri componenti Verse personalizzati per creare nuovi tipi di ostacoli. Che ne dici di un'entità che puoi attraversare solo quando è del colore giusto? Che ne dici di un'entità autoguidata che rileva dove si trova un giocatore e lo segue lentamente?
Codice completo
Ecco il codice completo compilato in questo tutorial:
disappear_on_loop_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
# Loops between hiding and showing the entity by enabling and disabling
# its static mesh and collision components.
disappear_on_loop_component := class<final_super>(component):
animate_to_targets_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
using { /Verse.org/SpatialMath }
using { /Verse.org/SceneGraph }
using { /Verse.org/SceneGraph/KeyframedMovement }
using { /UnrealEngine.com }
# Editor Tool Tips