2009-04-01 9 views
6

Quelles sont les différentes façons de gérer les animations pour les jeux 3D? Est-ce que vous programmez les animations dans le modeleur, et donc le fichier, plutôt que de les lire et de les implémenter dans le jeu, ou créez-vous des fonctions d'animation pour animer vos images fixes?Programmation d'animations 3D?

Où sont quelques bons tutoriels pour la programmation? Google m'a seulement donné le côté du modélisateur.

+0

Cela peut aussi être utile (un système osseux de base pour la modélisation): http://gpwiki.org/index.php/OpenGL:Tutorials:Basic_Bones_System – hithere

Répondre

18

Dans les environnements de production, les animateurs utilisent des outils spécialisés, tels que 3DS Max d'Autodesk, pour générer des animations à images clés de modèles 3D. Pour chaque animation pour chaque modèle, l'animateur construit un certain nombre de poses pour le modèle appelé images-clés, qui sont ensuite exportées dans le format de données du jeu. Le jeu charge ensuite ces images clés, et pour animer le modèle à un moment donné, il sélectionne les deux images clés les plus proches et interpole entre elles pour donner une animation fluide, même avec un petit nombre d'images clés.

Les modèles animés sont généralement construits avec une hiérarchie osseuse. Il y a un os racine, qui contrôle l'emplacement et l'orientation du modèle dans le monde du jeu. Tous les autres os sont définis par rapport à un os parent pour créer un arbre. Chaque sommet du modèle est lié à un os particulier, de sorte que le modèle peut être contrôlé avec un nombre beaucoup plus petit de paramètres: les positions relatives, les orientations et les échelles de chaque os.

Le skin lisse est une technique utilisée pour améliorer la qualité des animations. Avec un skin lisse, un vertex n'est pas lié à un seul os, mais il peut être lié à plusieurs os (généralement une limite dure, comme 4, est définie, les sommets ont rarement besoin de plus de 3) avec des poids correspondants. Cela rend le travail de l'animateur plus difficile, car il doit faire beaucoup plus de travail avec les sommets près des articulations, mais le résultat est une animation beaucoup plus lisse avec moins de distorsion autour des articulations.

En variante, certains jeux utilisent l'animation procédurale , grâce à laquelle les données d'animation sont construites au moment de l'exécution. Les positions et orientations osseuses sont calculées selon un algorithme, tel que inverse kinematics ou ragdoll physics. D'autres options sont bien sûr disponibles, mais elles doivent être codées par des programmeurs. Au lieu d'animer les os de façon procédurale et d'utiliser la cinématique directe pour déterminer les emplacements de tous les sommets du modèle, une autre option consiste à générer simplement la position de chaque sommet seul. Cela permet des animations plus complexes qui ne sont pas liées par des hiérarchies osseuses, mais bien sûr, c'est beaucoup plus compliqué et beaucoup plus difficile à faire.

3

Différentes façons de gérer l'animation dans les jeux?

Pour les caractères, en général:

  1. Deformation Skeletal
  2. façonne Mélange
  3. mailles Parfois, même animés entièrement (LA Noire a fait.)
  4. Dans la tombe récente Raider, nous utilisons un calcul travail pour simuler des milliers de splines pour les cheveux, et les sommets sont contrôlés par ces splines avec un vertex shader.

Souvent, elles sont pilotées par une animation par image clé qui est interpolée lors de l'exécution, et parfois nous ajoutons du code pour piloter les influences (os, poids de forme blends, etc.) de manière procédurale.

Pour certains objets simples qui se déplacent de manière rigide, le dessin peut parfois avoir un contrôle d'animation sur l'ensemble de l'objet sans avoir à le déformer. Parfois, les choses simples comme les arbustes peuvent être faites pour se déplacer en utilisant quelque chose de semblable à des formes de blends où vous avez une pose de maille complète dans quelques extrêmes et vous sorte de mélange entre ces extrêmes. Pour ce qui est des tutoriels ... eh bien ... Êtes-vous intéressé à écrire vous-même les maths de l'animation ou êtes-vous plus intéressé par un personnage animé dans votre jeu et vous concentrer sur le gameplay?

Pour juste faire le gameplay, Unity est une plate-forme assez géniale pour jouer avec.

Si vous êtes toutefois intéressé à comprendre les mathématiques pour l'animation ou des jeux en général, voici ce que je lis sur un apprêt:

  • supports utilisés pour les transformations 3D (assurez-vous de comprendre le commutative , les lois associatives et de distribution, et d'apprendre ce que chaque ligne et colonne représente - ils sont plus simples qu'ils semblent)
  • Quaternions pour les rotations (moins intuitives, mais étroitement couplé à un axe et rotation)

et n » t laisser de côté le notions de base:

  • Dot vecteur produit
  • Cross Vector Produit

En outre, comme il y a 10 ans, j'ai écrit une bibliothèque d'animation simple, ce qui est assez simple, libre de la plupart des autres concepts à l'avance de sorte qu'il est pas un mauvais endroit pour regarder si vous voulez avoir une idée de base de la façon dont cela fonctionne: http://animadead.sf.net

Bonne chance!