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...
Introduction à la 3D
La création d'un jeu en 3D peut s'avérer difficile. Cette coordonnée Z supplémentaire fait que beaucoup des techniques courantes qui ont contribué à rendre les jeux 2D simples ne fonctionnent plus. Pour faciliter cette transition, il convient de mentionner que Godot utilise des API similaires pour la 2D et la 3D. La plupart des nœuds sont les mêmes et sont présents dans les versions 2D et 3D. En fait, cela vaut la peine de consulter le tutoriel sur le plateformer 3D, ou les tutoriels sur les personnages cinématiques 3D , qui sont presque identiques à leurs équivalents 2D.
Godot Third Person Shooter (TPS) Demo, available on the Github repository or the Asset Library.
En 3D, les mathématiques sont un peu plus complexes qu'en 2D. Pour une introduction aux mathématiques pertinentes écrites pour des développeurs de jeux, pas des mathématiciens ou des ingénieurs, consultez Mathématiques des vecteurs et Utiliser les transformations 3D.
Espace de travail 3D
Editing 3D scenes is done in the 3D workspace. This workspace can be selected manually, but it will be automatically selected when a Node3D node is selected.
Similar to 2D, the tabs below the workspace selector are used to change between currently opened scenes or create a new one using the plus (+) button. The left and right docks should be familiar from editor introduction.
Below the scene selector, the main toolbar is visible, and beneath the main toolbar is the 3D viewport.
Barre d'outils principale
Some buttons in the main toolbar are the same as those in the 2D workspace. A brief explanation is given with the shortcut if the mouse cursor is hovered over a button for one second. Some buttons may have additional functionality if another keypress is performed. A recap of main functionality of each button with its default shortcut is provided below from left to right:
Transform Mode (Q): Enables a combined move + rotation mode for the selected nodes.
Move Mode (W): Enables move (or translate) mode for the selected nodes. See Espace et gadgets de manipulation for more details.
Rotate Mode (E): Enables rotation mode for the selected nodes. See Espace et gadgets de manipulation for more details.
Scale Mode (R): Enables scaling and displays scaling gizmos in different axes for the selected nodes. See Espace et gadgets de manipulation for more details.
Select Mode (Q): Allows selection of nodes in the viewport. Left clicking on a node to select one. Left clicking and dragging a rectangle selects all nodes within the rectangle's boundaries, once released. Holding Shift while selecting adds more nodes to the selection. Clicking on a selected node while holding Shift deselects the node. In this mode, you can use the gizmos to perform movement or rotation.
Show the list of selectable nodes at the clicked position: As the description suggests, this provides a list of selectable nodes at the clicked position as a context menu, if there is more than one node in the clicked area.
Lock (Ctrl + L) the selected nodes, preventing selection and movement in the viewport. Clicking the button again (or using Ctrl + Shift + L) unlocks the selected nodes. Locked nodes can only be selected in the scene tree. They can easily be identified with a padlock next to their node names in the scene tree. Clicking on this padlock also unlocks the nodes.
Group selected nodes (Ctrl + G). This allows selection of the root node if any of the children are selected. Using Ctrl + G ungroups them. Additionally, clicking the ungroup button in the scene tree performs the same action.
Ruler Mode (M): When enabled you can click and drag to measure distance in the scene in meters.
Use Local Space (T): If enabled, gizmos of a node are drawn using the current node's rotation angle instead of the global viewport axes.
Use Snap (Y): If enabled, movement, and rotation snap to grid. Snapping can also temporarily be activated using Ctrl while performing the action. The settings for changing snap options are explained below.
Use Trackball (U): When enabled, dragging the center of a node (represented by a subtle ray disc highlight) will rotate the node like a physical trackball.
Preserve Children Transform (P): When enabled, transforming a node will preserve the global transform of its children.
Toggle preview sunlight: If no DirectionalLight3D exist in the scene, a preview of sunlight can be used as a light source. See Preview environment and light for more details.
Toggle preview environment: If no WorldEnvironment exists in the scene, a preview of the environment can be used as a placeholder. See Preview environment and light for more details.
Edit Sun and Environment Settings (three dots): Opens the menu to configure preview sunlight and environment settings. See Preview environment and light for more details.
Transform menu: It has three options:
Snap Object to Floor: Snaps an object to a solid floor.
Transform Dialog: Opens a dialog to adjust transform parameters (translate, rotate, scale, and transform) manually.
Snap Settings: Allows you to change transform, rotate snap (in degrees), and scale snap (in percent) settings.
View menu: Controls the view options and enables additional viewports:
In this menu, you can also show/hide grids, which are set to 1x1 meter by default, and the origin, where the blue, green, and red axis lines intersect. Moreover, specific types of gizmos can be toggled in this menu.
An open eye means that the gizmo is visible, a closed eye means it is hidden. A half-open eye means that it is also visible through opaque surfaces.
Clicking on Settings in this view menu opens a window to change the Vertical Field of View (VFOV) parameter (in degrees), Z-Near, and Z-Far values.
Next to the View menu, additional buttons may be visible. In the toolbar image at the beginning of this chapter, an additional Mesh button appears because a MeshInstance3D is selected. This menu provides some quick actions or tools to work on a specific node or selection.
Système de coordonnées
Godot utilise le système métrique pour tout ce qui est en 3D, 1 unité étant égale à 1 mètre. La physique et d'autres domaines sont accordés pour cette échelle. Par conséquent, tenter d'utiliser une échelle différente est généralement une mauvaise idée (sauf si vous savez ce que vous faites).
Lorsque vous travaillez avec des assets 3D, il est toujours préférable de travailler à la bonne échelle (définissez l'unité en métrique dans votre logiciel de modélisation 3D). Godot permet la mise à l'échelle post-importation et, bien que cela fonctionne dans la plupart des cas, dans de rares cas, cela peut introduire des problèmes de précision de virgule flottante (et donc, des défauts ou artefacts) dans des domaines délicats, comme le rendu ou la physique. Assurez-vous que vos artistes travaillent toujours à la bonne échelle !
La coordonnée Y est utilisée pour "haut". Quant aux axes X/Z horizontaux, Godot utilise un système de coordonnées droitier. Cela signifie que pour la plupart des objets qui ont besoin d'alignement (tels que les lumières ou les caméras), l'axe Z est utilisé comme une direction « pointant vers ». Cette convention signifie grossièrement que :
X est les côtés
Y est haut/bas
Z est avant/arrière
See this chart for comparison with other 3D software:
Image de Freya Holmér
Espace et gadgets de manipulation
Moving, rotating, and scaling objects in the 3D view is done through the manipulator gizmos. Each axis is represented by a color: Red, Green, Blue represent X, Y, Z respectively. This convention applies to the grid and other gizmos too (and also to the shader language, ordering of components for Vector3, Color, etc.).
Quelques raccourcis clavier utiles :
To snap placement or rotation, press Ctrl while moving, scaling, or rotating.
Pour centrer la vue sur l'objet sélectionné, appuyez sur la touche F.
In the viewport, the arrows can be clicked and held to move the object on an axis. The arcs can be clicked and held to rotate the object. To lock one axis and move the object freely in the other two axes, the colored rectangles can be clicked, held, and dragged.
If the transform mode is changed from Select Mode to Scale Mode, the arrows will be replaced by cubes, which can be dragged to scale an object as if the object is being moved.
Utilisation des raccourcis de transformation du style de Blender
Since Godot 4.2, you can enable Blender-style shortcuts for translating, rotating and scaling nodes. In Blender, these shortcuts are:
G pour translater
R pour pivoter
S pour mettre à l'échelle
After pressing a shortcut key while focusing on the 3D editor viewport, move the mouse or enter a number to move the selected node(s) by the specified amount in 3D units. You can constrain movement to a specific axis by specifying the axis as a letter, then the distance (if entering a value with the keyboard).
For instance, to move the selection upwards by 2.5 units, enter the following sequence in order (Y+ is upwards in Godot):
G-Y-2-.-5-Enter
To use Blender-style transform shortcuts in Godot, go to the Editor Settings' Shortcuts tab, then in the Spatial Editor section:
Bind Begin Translate Transformation to G.
Bind Begin Rotate Transformation to R.
Bind Begin Scale Transformation to S.
Finally, unbind Scale Mode so that its shortcut won't conflict with Begin Rotate Transformation.
Astuce
More shortcuts can be found on the Éditeur 3D / Spatial page.
Nœud Node3D
Node2D est le nœud de base pour la 2D. Control est le nœud de base pour tout ce qui est GUI. Suivant ce raisonnement, le moteur 3D utilise le nœud Spatial pour tout ce qui est 3D.
Les nœuds Node3D ont une transformation locale, qui est relative au nœud parent (tant que le nœud parent est également du ou hérite du type Node3D). Cette transformation est accessible sous la forme d'une transformation 3×4 Transform3D, ou 3 membres Vector3 représentant la position, la rotation d'Euler (angles x,y et z) et l'échelle.
Contenu 3D
Contrairement à la 2D où le chargement et l'affichage d'une image et le dessin se fait sans complications, la 3D est un peu plus complexe. Le contenu doit être créé avec des outils 3D spéciaux (généralement appelés DCC pour Digital Content Creation) et exporté vers un format de fichier d'échange afin d'être importé dans Godot. Cela est nécessaire car les formats 3D ne sont pas aussi standardisés que les images.
Géométrie générée
Il est possible de créer une géométrie personnalisée en utilisant directement la ressource ArrayMesh. Créez simplement vos tableaux et utilisez la fonction ArrayMesh.add_surface_from_arrays(). Une classe d'aide est également disponible, SurfaceTool, qui fournit une API et des aides plus simples pour indexer, générer des normales, des tangentes, etc.
Dans tous les cas, cette méthode est destinée à générer de la géométrie statique (modèles qui ne seront pas souvent mis à jour), car la création de tableaux de sommets et leur soumission à l'API 3D a un coût de performance significatif.
Note
To learn about prototyping inside Godot or using external tools, see Prototypage d'un niveau avec CSG.
Géométrie immédiate
Si, à la place, il est nécessaire de générer une géométrie simple qui sera souvent mise à jour, Godot fournit une ressource spéciale, ImmediateMesh qui peut être utilisée dans un nœud MeshInstance3D. Cela fournit une API de style OpenGL 1.x en mode immédiat pour créer des points, des lignes, des triangles, etc.
2D en 3D
Bien que Godot dispose d'un puissant moteur 2D, de nombreux types de jeux utilisent la 2D dans un environnement 3D. En utilisant une caméra fixe (orthogonale ou en perspective) qui ne tourne pas, des nœuds tels que Sprite3D et AnimatedSprite3D peuvent être utilisés pour créer des jeux 2D qui tirent avantage du mélange avec des fonds 3D, d'une parallaxe plus réaliste, des effets de lumière / d'ombre, etc.
L'inconvénient est, bien sûr, la complexité et les performances réduites par rapport à la 2D simple, ainsi que le manque de référence de travail en pixels.
Environnement
Outre l'édition d'une scène, il est souvent fréquent d'éditer l'environnement. Godot fournit un nœud WorldEnvironment qui permet de changer la couleur de fond, le mode (comme dans, mettre une skybox), et appliquer plusieurs types d'effets post-traitement intégrés. Les environnements peuvent également être remplacées dans la caméra.
Preview environment and light
By default, any 3D scene that doesn't have a WorldEnvironment node, or a DirectionalLight3D, will have a preview turned on for what it's missing to light the scene.
The preview light and environment will only be visible in the scene while in the editor. If you run the scene or export the project they will not affect the scene.
The preview light and environment can be turned on or off from the top menu by clicking on their respective icon.
The three dots dropdown menu next to those icons can be used to adjust the properties of the preview environment and light if they are enabled.
The same preview sun and environment is used for every scene in the same project, So only make adjustments that would apply to all of the scenes you will need a preview light and environment for.
Caméras
Quel que soit le nombre d'objets placés dans l'espace 3D, rien ne sera affiché à moins qu'une Camera3D ne soit également ajoutée à la scène. Les caméras peuvent fonctionner dans des projections orthogonales ou perspectives :
Les caméras sont associées à une vue parent ou grand-parent (et ne s'affichent que dans cette vue). Comme la racine de l'arborescence de la scène est une fenêtre d'affichage, les caméras s'y affichent par défaut, mais si des fenêtres secondaires (en tant que cible de rendu ou image dans l'image) sont souhaitées, elles ont besoin de leurs propres caméras enfants pour les afficher.
Lorsque vous avez affaire à plusieurs caméras, les règles suivantes s'appliquent à chaque fenêtre d'affichage :
Si aucune caméra n'est présente dans l'arbre de scène, la première qui y entre deviendra la caméra active. Les autres caméras entrant dans la scène seront ignorées (à moins qu'elles ne soient réglées sur current).
Si une caméra possède la propriété "current", elle sera utilisée indépendamment de toute autre caméra de la scène. Si la propriété est définie, elle devient active et remplace la caméra précédente.
Si une caméra active quitte l'arbre de scène, la première caméra en ordre arborescent prendra sa place.
Lumières
L'environnement d'arrière-plan émet de la lumière ambiante qui apparaît sur les surfaces. Pourtant, sans aucune source de lumière placée dans la scène, la scène apparaîtra assez sombre à moins que l'environnement d'arrière-plan ne soit très lumineux.
Most outdoor scenes have a directional light (the sun or moon), while indoor scenes typically have several positional lights (lamps, torches, …). See Les lumières et ombres 3D for more information on setting up lights in Godot.