Premier jet de l’explication sur le pipeline pour les animations

Ajout des procédures d’import/export depuis Blender et d’import dans Godot
This commit is contained in:
yannk 2022-10-25 16:49:24 +02:00
parent 0a4207d453
commit 96218589d6
7 changed files with 53 additions and 0 deletions

View file

@ -301,6 +301,59 @@ Il peut comporter deux éléments :
Il nest pas utile de versionner le répertoire `.import/` situé à la racine dun projet car son contenu peut être généré depuis les fichiers originaux et leur fichier de configuration annexe (avec lextension `.import`, par exemple pour `icone.png` cela donne `icone.png.import`). Il convient donc dajouter le répertoire `.import/` dans le `.gitignore` comme cest proposé dans [la documentation Godot](https://docs.godotengine.org/en/latest/tutorials/assets_pipeline/import_process.html#files-generated). Il nest pas utile de versionner le répertoire `.import/` situé à la racine dun projet car son contenu peut être généré depuis les fichiers originaux et leur fichier de configuration annexe (avec lextension `.import`, par exemple pour `icone.png` cela donne `icone.png.import`). Il convient donc dajouter le répertoire `.import/` dans le `.gitignore` comme cest proposé dans [la documentation Godot](https://docs.godotengine.org/en/latest/tutorials/assets_pipeline/import_process.html#files-generated).
## Le pipeline pour les objets animés
Les objets animés avec une armature de déformation sont modélisés et conçus dans Blender, puis exportés vers Godot. Les principes appliqués proviennent des méthodes initiées par [Richard Lico](https://www.animationsherpa.com/), en particulier pour le développement du jeu [Moss](https://www.polyarcgames.com/moss/). Il sagit de différencier les ressources et les outils, et de ne pas se préoccuper de ces derniers tant quils permettent aux intervenants de travailler efficacement avec leurs outils propres et, surtout, façons personnelles. La documentation ne comporte que des instructions pour travailler sous Blender.
### Le mesh de base
Le mesh de base est sauvegardé dans son propre fichier, avec un `Link`vers le fichier où se trouve son armature de déformation. Il doit se situer à la racine de la collection `Khanat`, avec un weight painting adapté à son armature de déformation.
### Larmature de déformation
Larmature de déformation est conservée dans son propre fichier, sans rien dautre dans sa collection`Khanat`. Elle peut être ainsi être utilisée par plusieurs meshes en créant un `Link`.
### Les animations
Les animations sont conservées uniquement sous format glTF, avec une seule animation par fichier.
#### Importer une animation dans Blender
Afin de travailler une animation, il est possible de la récupérer dans le dépôt, où elle est sous format glTF. Une fois le fichier à récupérer identifié, il faut limporter avec les préférences suivantes :
![Import dune animation glTF dans Blender](./img/blender_import_gltf_spec.png)
#### Éditer/ créer une animation dans Blender
Une animation peut être éditée depuis nimporte quel fichier local, avec ses propre préférences de travail. Il suffit dy importer le mesh avec son armature de déformation, puis dappliquer à ce dernier le rig de contrôle souhaité qui permettra de procéder au travail de création/édition souhaité. Chaque animateur pourra recourir à la méthode quil préfère, comme le propose Richard Lico dans une conférence du GDC en 2018 ( [Animating Quill: Creating an Emotional Experience](https://www.youtube.com/watch?v=u3CzLVpuE4k&t=2011s)). Le studio [Dypsloom](https://dypsloom.com/) propose un addon spécialement développé pour ce genre de travail : [Rig On the Fly](https://gitlab.com/dypsloom/rigonthefly).
#### Sauvegarder une animation depuis Blender
Pour sauvegarder lanimation créée pour une armature depuis Blender :
1. sélectionner larmature de déformation en mode objet, puis `Object > Animation > Bake action`
2. indiquer les préférences suivantes et valider par `OK`:
![Bake action dans Blender](img/blender_bake_action.png)
3. `File > Export > glTF 2.0 (.glb/.gltf)
4. Les préférences dexportation à indiquer sont les suivantes :
![Spécifications dexport glTF des animations depuis Blender](img/blender_export_gltf_spec.png)
Il est conseillé de se créer un `Operator preset` afin de ne renseigner ces éléments quune fois.
5. Indiquer le nom ainsi que le chemin de destination appropriés et valider (voir [Les conventions de nommage](#convention-de-nommage))
#### Importer les animations dans Godot en tant que ressources
Il faut faire en sorte que lanimation devienne une ressource qui pourra être appelée dans un `Animation Player`. Travailer ainsi permettra de ne plus avoir à se soucier des scènes héritées, nimporte quel élément de ces dernières pouvant avoir été manipulée dans Godot depuis son importation. Appeler des ressources secondaires permet dajouter de novueaux éléments importés qui se rapportent à dautres éléments anciennement ajoutés également depuis une source externe.
Une fois les fichiers visibles dans larborescence de Godot (fichiers _.glb_) :
1. double-cliquer dessus permettra dafficher la fenêtre des paramètres dimportations.
2. sélectionner à droite laction à importer (`bone_turn`dans lexemple ci-dessous) et paramétrer la partie `Save To File`en cochant `Enabled`et `Keep Custom Tracks`et en indiquant le chemin où la ressource sera enregistrée dans `Path`.
![Importer une animation dans Godot en tant que ressource](./img/import_godot.png)
#### Ajouter manuellement une animation dans une node AnimationPlayer sous Godot
Lorsquon a importé un certain nombre de ressources danimations qui peuvent concerner le même objet (typiquement les actions dun mesh avec son armature), il est possible de les ajouter à la node `AnimationPlayer`qui lanime :
1. sélectionner la node `AnimationPlayer`à compléter
2. aller en bas dans longlet `Animation`et cliquer sur le menu de cette zone, sélectionner `Manage Animations`
![Gérer les animations dun AnimationPlayer dans Godot](./img/godot_modify_animation_01.png)
3. Dans la fenêtre popup qui souvre, cliquer sur licône pour ouvrir une ressource existante et aller là où se trouve laction à ajouter.
![Ajotuer une animation à un AnimationPlayer dans Godot](./img/godot_modify_animation_02.png)
## License ## License
CC BY SA Khaganat - 2022 CC BY SA Khaganat - 2022

BIN
img/blender_bake_action.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
img/import_godot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB