Dans cet article, nous allons voir comment préparer un modèle 3D avec Maya et HumanIK pour l’importer dans le nouveau système d’animation d’Unity : Mecanim.
Cette première partie se focalisera sur la création du squelette et le skinning.
La deuxième partie couvrira l’export du modèle, l’import dans Unity et la reconnaissance par Mecanim.
Mecanim & rigging
La version 4 du moteur Unity 3D (sortie le mois dernier) apporte un nouveau système d’animation – Mecanim – qui améliore notamment la gestion des modèles humanoïdes, avec l’utilisation du « rigging » (gréage en français).
Le rigging consiste globalement à définir un squelette et à l’attacher au modèle 3D afin de produire des animations très réalistes. Mecanim permet donc d’importer tout modèle 3D disposant d’un squelette et génère de manière quasi-automatique un « control rig » permettant de l’animer. Et contrairement au système précédent, où une animation était liée à un modèle spécifique, vous pouvez maintenant réutiliser une animation sur n’importe quel modèle humanoïde !
Sur le papier, la promesse est séduisante ! Mais comment vous y pendre si vous souhaitez créer et importer votre modèle dans Mecanim ?
C’est ce que nous allons voir en utilisant Maya et son système HumanIK.
Création du squelette avec HumanIK
Pour créer un squelette avec Maya il y a deux options : ajouter les os et les articulations à la main ou laisser HumanIK le faire à votre place.
HumanIK est un système intégré dans Maya qui permet de générer un squelette humain à partir de plusieurs paramètres (échelle, nombre d’articulations, nombre de doigts, etc.). Le processus est donc grandement simplifié, mais nécessite toujours des ajustement à posteriori.
Pour créer votre squelette, ouvrez la fenêtre « HumanIK » (Window > Animation Editor > HumanIK) et cliquez sur Create > Skeleton. Vous pouvez ensuite définir ses paramètres dans l’onglet « Skeleton » et déplacer les articulations pour les faire correspondre avec celles de votre modèle.
Une fois le squelette correctement positionné, il ne reste plus qu’à orienter les joints afin de pouvoir effectuer des rotations naturelles sur tous les membres. Pour cela, commencez avec l’outil « Orient Joint » (dans le menu Skeleton) et corrigez chaque joint manuellement en les sélectionnant avec le mode « Select by Component Type ».
Pour cette étape, vous devez faire attention à trois choses :
- L’échelle de votre scène doit être réglée sur « centimètres ». Dans le cas contraire, vous risquez de perdre l’échelle de votre squelette lors de la sauvegarde des modifications.
- Selon les cas, il est possible que la commande « Annuler » ne fonctionne pas si l’onglet « Skeleton » de la fenêtre HumanIK est visible. Pour contourner ce problème il suffit de changer d’onglet pendant l’édition.
- Dans tous les cas n’oubliez pas de sauvegarder votre travail depuis le menu HumanIK (bouton bleu) en cliquant sur Edit > Skeleton > Save Edits avant de revenir sur l’onglet « Skeleton », sous peine de perdre vos modifications.
Testez votre squelette pour vérifier que les articulations se comportent de manière naturelle. Si tout est correct vous pouvez passer au skinning.
Skinning
Pour l’instant, les mouvements du modèle 3D ne suivent pas ceux du squelette. Le skinning va nous permettre de lier chaque articulation à une partie du modèle, pour pouvoir animer celui-ci.
Le skinning de base peut être fait automatiquement grâce aux outils du menu Skin > Bind Skin:
- L’outil « Smooth Bind » est un bon choix pour un modèle humanoïde;
- L’outil « Interactive Skin Bind » permet d’obtenir de meilleurs résultats, avec un peu plus de travail en amont.
Dans les deux cas, il faudra ensuite utiliser l’outil « Paint Skin Weights » pour affiner l’influence de chaque joint sur les sommets du modèle et rendre les mouvements les plus naturels possibles.
Pour des explications complètes sur ces deux processus, je vous conseille les liens suivants :
- Générer un squelette avec HumanIK (tutoriel pour Maya 2011 en français)
- Setting up Human IK in Maya 2012 (série de vidéos pour Maya 2012 en anglais)
Dans la deuxième partie, nous verrons comment finir la préparation du modèle et l’importer dans Unity pour l’animer avec Mecanim.