| Chapitre 1 : Présentation de SmdConverter : |
| Chapitre 2 : Utilisation de SmdConverter pour la conversion d'une animation |
| Chapitre 3 : Utilisation avancée de SmdConverter : |
| La structure des fichiers SMD et la hiérarchie du squelette: |
| Présentation de SmdConverter: |
| Souvent on dispose d'animations existantes pour un modèle qu'on voudrais pouvoir utiliser pour un autre modèle. |
| Pour ce faire, il n'y a pas beaucoup de possibilités, ou il faut refaire l'animation complète avec 3DSMAX ou MilkShape. Ou alors si on est chanceux et qu'on dispose des fichiers de scène MAX, on peut ouvrir l'animation dans 3DSMAX, exporter l'animation au format bipede, puis ouvrir la scène du nouveau modèle et importer le fichier bipede paramètré pour l'appliquer au modèle. |
| C'est un travail assez simple pour quelqu'un qui maîtrise bien 3dsmax, mais ça représente tout de même pas mal de travail. |
| Mais dans le cas où on ne possède pas les fichier MAX du modèle, on ne peut pas appliquer simplement le smd au modèle, car il y a très peu de chance que les deux squelettes soient exactement les mêmes. |
| Si on le fait quand même, le résultat risque d'être assez bizarre!! |
| L'idéal serait donc d'avoir un utilitaire qui fonctionne comme Caractère Studio et ses fichiers bipede d'animations paramétrées. |
| C'est pourquoi j'ai développé SmdConverter qui permet d'utiliser une animation au format smd provenant d'un modèle du jeu ou autre pour un autre modèle différent. |
| Avec SmdConverter, vous pouvez en quelques clics de souris appliquer une animation à un autre modèle similaire, c'est très efficace si vous avez créé plusieurs modèles de type humain et que vous voulez leurs appliquer les mêmes animations, par exemple la marche, la course, sauter, s'accroupir et bien d'autres qui ne nécessitent pas une animation particulière au modèle. |
| Le jeu originel Half-Life possède énormément d'animations, mais vous ne pouvez pas les utiliser directement, si vous voulez créer un nouveau modèle et que vous n'êtes pas un as de l'animation, c'est la galère, c'est pourquoi on se contente généralement de faire des skins ou de légères modification d'un modèle. |
| Avec SmdConverter vous pouvez désormais créer votre propre modèle et adapter les animation existantes provenant de divers autres modèles à votre propre modèle en quelques minutes. |
| Comment est-ce que ça marche: |
| SmdConverter va tout d'abord comparer les smd de référence des deux modèles et calculer les rapports de dimensions entre les éléments du même type. Par exemple longueur du bras ou de la cuisse, puis il va appliquer le facteur de dimension de chaque élément du squelette (node) à toutes les images de l'animation. |
| La principale difficulté est que les numéros de node ne sont pas toujours les mêmes, les squelette n'ayant pas forcément le même nombre d'éléments, l'ordre des nodes n'est pas forcément le même. |
| Il faut donc avant de copier l'animation, réatribuer les numéros aux bons éléments du squelette. C'est la première chose à faire, il faut pour celà ouvrir les deux smd de référence et noter les numéros de node pour chaque élément du squelette. |
| Ensuite dans SmdConverter on va enter les correspondances entre les numéros de node. |
| Mais rassurez-vous si votre squelette et celui de l'autre modèle ont été créés avec 3dsmax et caractère studio, SmdConverter est capalble de reconnaître les noms des éléments du squelette et de les réatribuer automatiquement, ensuite vous pouvez terminer la réatribution des éléments non reconnus manuellement. |
| Vous pouvez également corriger le facteur de conversion pour allonger ou rétrécir un membre, par exemple raccourcir les jambes et rallonger les bras ou tout autre modification. |
| Ainsi vous pouvez vous amuser à torturer votre modèle pour lui donner des aspects très variés. |
| Attention toutefois à ce que les pieds soient au niveau du sol. |
| La structure des fichiers SMD et la hiérarchie du squelette: |
| Exemple concret: |
| Prenons par exemple le scientifique du jeu Half.Life originel: |
| Voici l'entête du smd de référence : |
| version 1 nodes 0 "Bip02" -1 1 "Bip02 Pelvis" 0 2 "Bip02 L Leg" 1 3 "Bip02 L Leg1" 2 4 "Bip02 L Foot" 3 5 "Bip02 R Leg" 1 6 "Bip02 R Leg1" 5 7 "Bip02 R Foot" 6 8 "Bip02 Spine" 1 9 "Bip02 Spine1" 8 10 "Bip02 Spine2" 9 11 "Bip02 Neck" 10 12 "Bip02 L Arm" 11 13 "Bip02 L Arm1" 12 14 "Bip02 L Arm2" 13 15 "Bip02 L Hand" 14 16 "Bip02 R Arm" 11 17 "Bip02 R Arm1" 16 18 "Bip02 R Arm2" 17 19 "Bip02 R Hand" 18 20 "Bip02 Head" 11 21 "Bone01" 20 end |
| Chaque élément du squelette a son numéro de node, l'autre numéro à droite est le numéro du node parent de la structure |
| Prenons maintenant un autre modèle, par exemple le soldat : |
| version 1 nodes 0 "Bip01" -1 1 "Bip01 Pelvis" 0 2 "Bip01 L Leg" 1 3 "Bip01 L Leg1" 2 4 "Bip01 L Foot" 3 5 "Bip01 L Toe0" 4 6 "Bip01 L Toe01" 5 7 "Bip01 L Toe02" 6 8 "Bip01 R Leg" 1 9 "Bip01 R Leg1" 8 10 "Bip01 R Foot" 9 11 "Bip01 R Toe0" 10 12 "Bip01 R Toe01" 11 13 "Bip01 R Toe02" 12 14 "Bip01 Spine" 1 15 "Bip01 Spine1" 14 16 "Bip01 Spine2" 15 17 "Bip01 Spine3" 16 18 "Bip01 Neck" 17 19 "Bip01 L Arm" 18 20 "Bip01 L Arm1" 19 21 "Bip01 L Arm2" 20 22 "Bip01 L Hand" 21 23 "Bip01 R Arm" 18 24 "Bip01 R Arm1" 23 25 "Bip01 R Arm2" 24 26 "Bip01 R Hand" 25 27 "Bip01 Head" 18 28 "Line01" 26 29 "Shotgun" 26 end |
| On voit bien que le nombre d'éléments n'est pas le même, ce qui fait que par exemple la tête qui a le numéro 20 pour le scientifique, a le numéro 27 pour le soldat. |
| C'est parceque le soldat a un pied avec un orteil en trois parties, ce qui décale complètement l'ordre des nodes. |
| Mais encore le soldat a une colonne vertébrale en quatre parties : spine, spine1, spine2, spine3. |
| Maintenant si on veut utiliser une animation du soldat pour le scientifique, il faut réadresser les numéros de node et laisser tomber les orteils qui n'existent pas chez le scientifique. |
| C'est bien connus, les scientifiques ont de grosse têtes et de petits pieds!!!! |
| De plus il aura le dos un peu raide parcequ'il lui manque une vertèbre!!! |
| La vertèbre manquante est un problème car l'animation sera diminuée, il faudra bien choisir celle qu'il faudra laisser tomber, on pourra plus ou moins compenser le manque d'animation en augmentant légèrement l'animation des autres vertèbres. |
| Chapitre 2 : Utilisation de SmdConverter pour la conversion d'une animation |