Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Scena del giocatore e azioni di input
Nelle prossime due lezioni, progetteremo la scena del giocatore, registreremo azioni di input personalizzate, e scriveremo il codice per il movimento del giocatore. Alla fine, avrai un personaggio giocabile in grado di muoversi in otto direzioni.
Crea una nuova scena andando nel menu Scena in alto a sinistra e cliccando su Nuova scena.
Clicca sul pulsante Altro nodo e seleziona il tipo di nodo CharacterBody3D per creare un CharacterBody3D come nodo radice.
Rinomina il nodo CharacterBody3D in Player. I nodi di tipo CharacterBody sono complementari alle aree e ai corpi rigidi utilizzati nel tutorial di gioco 2D. Come i corpi rigidi, questi possono muoversi ed entrare in collisione con l'ambiente, ma invece di essere controllati dal motore di fisica, sei tu a dirigerne i movimenti. Vedrai come utilizzare le funzionalità uniche del nodo quando andremo a programmare le meccaniche di salto e di schiacciamento.
Vedi anche
Per saperne di più sui differenti tipi di nodi di fisica, vedi Introduzione alla fisica.
Per ora, andiamo a creare un rig base per il modello del nostro personaggio 3D. Successivamente, ciò ci consentirà di ruotare il modello tramite codice mentre riprodurrà un'animazione.
Aggiungi un nodo Node3D come figlio del nodo Player. Seleziona il nodo Player nell'albero di Scena clicca il pulsante "+" per aggiungere un nodo figlio. Rinominalo in Pivot.
Successivamente, nel pannello del FileSystem, espandi la cartella art/ facendo doppio-clic, poi trascina e rilascia il player.glb su Pivot.
Ciò dovrebbe istanziare il modello come figlio di Pivot. Puoi rinominarlo in Character.
Nota
I file .glb contengono dati di scene 3D basati sulla specificazione open source glTF 2.0. Sono una moderna e potente alternativa a formati proprietari come FBX, anch'esso supportato da Godot. Per creare questi file, abbiamo progettato il modello in Blender 3D e lo abbiamo esportato in glTF.
Come per tutti i tipi di nodi fisici, abbiamo bisogno di una forma di collisione affinché il nostro personaggio possa entrare in collisione con l'ambiente. Seleziona nuovamente il nodo Player e aggiungi un nodo CollisionShape3D figlio. Nell'Ispettore, sulla proprietà Shape, aggiungi un nuovo SphereShape3D.
Il fildiferro della sfera appare sotto il personaggio.
Sarà la forma che il motore fisico utilizzerà per entrare in collisione con l'ambiente, quindi vogliamo che si adatti meglio al modello 3D. Ingrandiscila un po' trascinando il punto arancione nella viewport. La mia sfera ha un raggio di circa 0.8 metri.
Quindi, sposta in alto la forma di collisione in modo che la sua base si allinei più o meno con il piano della griglia.
Per facilitare lo spostamento della forma, è possibile cambiare la visibilità del modello cliccando sull'icona a forma di occhio accanto ai nodi Character o Pivot.
Salva la scena con il nome player.tscn.
Con i nodi pronti, possiamo quasi iniziare a programmare. Ma prima, dobbiamo definire delle azioni di input.
Creazione di azioni di input
Per muovere il personaggio, ascolteremo l'input del giocatore, come la pressione dei tasti freccia. In Godot, purché sia possibile scrivere tutte le associazioni dei tasti in codice, è disponibile un potente sistema che permette di assegnare un'etichetta a un insieme di tasti e pulsanti. Questo semplifica i nostri script e li rende più leggibili.
Questo sistema è la Mappa di input. Per accedere al suo editor, vai al menu Progetto e seleziona Impostazioni del progetto....
In alto sono presenti diverse schede. Clicca su Mappa di input. Questa finestra ti consente di aggiungere nuove azioni nella parte superiore; queste saranno le tue etichette. Nella parte inferiore, puoi associare dei tasti a queste azioni.
I progetti in Godot includono alcune azioni predefinite pensate per la progettazione delle interfaccie utente (vedi lo screenshot sopra). Queste saranno visibili se si abilita l'opzione Mostra azioni integrate. Potremmo usarle qui, ma invece ne definiamo di nostre per supportare i gamepad. Lascia Mostra azioni integrate disabilitata.
Chiameremo le nostre azioni move_left, move_right, move_forward, move_back e jump.
Per aggiungere un'azione, scrivi il suo nome nella barra in alto e premi Invio oppure clicca sul pulsante Aggiungi.
Crea le seguenti cinque azioni:
Per associare un tasto o un pulsante a una azione, clicca sul pulsante "+" alla sua destra. Fai così per move_left. Premi il tasto freccia sinistra e clicca su OK.
Associa anche il tasto A all'azione move_left.
Aggiungiamo ora il supporto per lo stick analogico sinistro del gamepad. Clicca di nuovo sul pulsante "+", ma questa volta seleziona manualmente l'input all'interno dell'albero degli input. Seleziona l'asse X negativo dello stick analogico sinistro sotto Assi del joypad.
Lascia gli altri valori così come sono e premi OK.
Nota
Se desideri che i controller abbiano azioni di input diverse, devi utilizzare l'opzione Dispositivi nelle Opzioni aggiuntive. Il Dispositivo 0 corrisponde al primo gamepad collegato, il Dispositivo 1 al secondo gamepad collegato e così via.
Fai lo stesso per le altre azioni di input. Ad esempio, associa la freccia destra, il tasto D e l'asse positivo del joystick sinistro a move_right. Dopo aver associato tutti i tasti, l'interfaccia dovrebbe assomigliare a così.
L'ultima azione da configurare è l'azione jump. Associa il tasto Spazio e il pulsante A del gamepad, che si trovano nella sezione Pulsanti del joystick.
La tua azione di salto dovrebbe essere simile a questa.
Queste sono tutte le azioni necessarie per questo gioco. Puoi utilizzare questo menu per etichettare qualsiasi gruppo di tasti e pulsanti nei tuoi progetti.
Nella prossima parte, programmeremo e testeremo il movimento del giocatore.