Animation dans KAPIA
Bonne après-midi! Mon nom est Pavel. Je suis programmeur et animateur pour une petite équipe de développement de jeux familiaux. Ma femme et moi faisons un jeu d'aventure en 3D dans un monde post-apocalyptique. Au cours du développement, nous avons inventé nos «vélos» techniques avec lesquels je voudrais partager avec vous. Je veux commencer par l'animation et vous dire comment nous le faisons.
Depuis de nombreuses années, nous travaillons sur le package 3D Softimage XSI. Bien que le projet n'ait pas été pris en charge et fermé depuis longtemps, nous l'utilisons toujours. Je pense qu'à peu près le même pipeline peut être reproduit dans d'autres packages. Aller!
Gréement
J'utilise Gear pour le gréement . Outil très pratique et simple pour le calage automatique des personnages.
Parfois, pour les personnages non humains, vous devez collecter le gréement à la main ou modifier celui assemblé avec le Gear .
Animation
Nous tournons l'animation à l'aide de la maquette du costume Perception Neuron . Toutes les proportions des personnages sont transférées vers le programme depuis Axis Neuron (programme natif de Perception Neuron). Nous avons d'abord essayé d'utiliser Motion Builder pour nettoyer l'animation. Mais cela prenait trop de temps, car il fallait utiliser 3 programmes (Axis Neuron -> MotionBuilder -> Softimage). Mais ensuite, ils ont commencé à utiliser Softimage. Pour cela, un pilote a été écrit pour Perception Neuron afin qu'il puisse être directement utilisé dans Softimage en temps réel . Le nettoyage des maquettes dans Softimage s'est avéré très pratique. Le seul inconvénient est bien sûr le glissement du pied. Mais nous avons rapidement fait face à cela en écrivant le plugin approprié.
Ensuite, nous nettoyons l'animation.
Et un petit pipeline, comment nous le faisons.
Le processus d'animation ressemble à ceci.
1. Vient d'abord la voix du texte.
Comme vous pouvez le voir. Tout le texte est divisé par couleur (caractères) et chaque phrase a son propre numéro de nom (G11, R12, I13, etc.).
2. Après avoir doublé les caractères, nous obtenons un fichier audio, que nous marquons ensuite avec des marqueurs.
Et nous donnons à chaque marqueur le même nom-numéro.
3. Après cette étape, la maquette est enregistrée et nettoyée.
Pour que l'animation corresponde exactement aux marqueurs d'Adobe Audition, les marqueurs sont téléchargés dans un fichier csv du type suivant:
Nom Début Durée Heure Format Type Description
Eye29 00: 00: 00: 00 00: 00: 02: 14 30 fps Cue
Ren30 00:00:02 : 26 00: 00: 04: 29 30 fps Cue
4. Ce fichier est ensuite chargé par le script dans Softimage.
Après un petit ajustement de la synchronisation, un tableau de toutes les animations est automatiquement créé pour l'exportation vers Unity.
5. Et puis tout s'envole vers Unity. Avec le fichier fbx, un fichier * .agrd est formé
...
_Ren67; 5832.0; 5950.0
_Ren65; 5601.0; 5656.0
dans lequel se trouve le balisage d'animation. En utilisant une classe héritée d'AssetPostprocessor, Unity découpe automatiquement toutes les animations qui correspondent parfaitement à la voix exprimée.
En général, l'ensemble du processus n'est pas compliqué et ne prend pas beaucoup de temps. Une animation de 10 minutes prend maintenant environ 5 à 6 heures (prise de vue, nettoyage, exportation).
Vient ensuite l'automatisation du chargement de l'audio et de l'animation dans Unity.
Articy
Toutes les boîtes de dialogue sont construites dans Articy:
si vous regardez de plus près les champs, vous pouvez voir tous les mêmes noms de marqueurs.
Une importation d'Articy vers Unity a été écrite. Il lit automatiquement tout le texte et les fourchettes du dialogue et les associe aux fichiers audio et à l'animation, car les noms des fichiers audio, du rouge à lèvres, de l'animation coïncident avec les noms des marqueurs lus à partir d'articy.
Lipsync
Pour le rouge à lèvres, nous utilisons le Softimage Face Robot. Il y a un outil de gréement de visage très pratique ici.
Une fois le rigging construit, les phonèmes sont chargés. Cette étape est automatisée.
Il y en a 25: 9 pour les sons de la parole, 6 pour les mouvements et les clignements des yeux et 10 pour les expressions faciales.
Après le gréement, la tête avec les os est recollée au modèle. Et encore une fois on fait un petit gréement des yeux. Pour que vous puissiez enregistrer leur mouvement séparément avec les siècles.
Essentiellement, l'animation oculaire est un objet nul attaché à la vidéo d'un mouvement oculaire réel.
Ensuite, le personnage est chargé dans l'unité. Et là tout cela est déjà chargé dans le lypsinc.
Ainsi, l'animation des yeux et des paupières s'écrit avec l'animation du personnage, et l'animation de la bouche s'anime automatiquement à l'unité. En plus de cela, le mouvement des sourcils est ajouté manuellement pendant la conversation, si nécessaire.
C'est ainsi que notre pipeline pour animer les expressions faciales et les personnages du jeu est brièvement organisé. Avec l'aide de
petits utilitaires et de scripts, il s'est avéré parfaitement croisé Unity, Articy, Axis Neuron et Softimage.
Et le résultat final: