Convertir C3D en BVH
Convertissez des essais C3D basés sur des marqueurs en une animation de squelette BVH résolue avec MotionBuilder ou Blender.
Comment convertir c3d en fichier bvh
- Modélisation 3D
- Aucune note pour l'instant.
Un système de capture de mouvement peut produire des fichiers C3D, tandis qu’un moteur de jeu ou un logiciel d’animation de personnages n’accepte que les fichiers BVH. La conversion des fichiers nécessite de résoudre les trajectoires des marqueurs sur un squelette ; il ne s’agit pas d’une simple réécriture de format de fichier.
Qu’est-ce que le format C3D ?
C3D est un conteneur binaire de capture de mouvement utilisé pour stocker des trajectoires de marqueurs 3D synchronisées, des canaux analogiques, des mesures de plateformes de force, des événements et des métadonnées d’essai. Vicon Nexus, Qualisys Track Manager, Motion Analysis Cortex, les systèmes BTS et de nombreuses applications biomécaniques créent ou exportent des fichiers C3D.
Un essai contient généralement des marqueurs nommés tels que LASI, RASI, LKNE et RKNE, mais C3D n’exige pas de squelette articulé complet, de hiérarchie d’os, de limites articulaires ni de rotations articulaires résolues. Les noms de marqueurs et les conventions de coordonnées varient également selon les systèmes de capture.
Qu’est-ce que le format BVH ?
BVH, ou Biovision Hierarchy, stocke une hiérarchie de squelette suivie de valeurs de canaux pour chaque image, généralement la translation de la racine et les rotations articulaires d’Euler. Il est pris en charge par Blender, Autodesk MotionBuilder, de nombreux logiciels de jeux et d’animation, ainsi que par d’autres logiciels utilisant des mouvements squelettiques.
BVH est utile lorsque la destination nécessite des os prêts pour l’animation. Sa structure textuelle est relativement facile à inspecter et à échanger, mais elle ne peut généralement pas conserver les noms des marqueurs C3D, les données de force, les signaux analogiques, les résidus, les informations de qualité des caméras ni la plupart des métadonnées d’essai. Conservez le fichier C3D original comme source d’archivage.
Comment convertir C3D en BVH
Le flux de travail le plus fiable utilise une application de capture de mouvement ou d’animation capable d’importer C3D, de résoudre les marqueurs et d’exporter BVH. Autodesk MotionBuilder convient au nettoyage des données optiques, à la mise en correspondance des ensembles de marqueurs, à la définition du personnage, à la résolution, au retargeting et à l’exportation BVH. Blender peut effectuer le même processus à moindre coût, mais nécessite un importateur C3D compatible et davantage de configuration manuelle.
- Ouvrez l’essai dans le logiciel de capture ou le logiciel biomécanique qui l’a créé. Vérifiez la fréquence d’images, les unités, les directions des axes, les noms des marqueurs, les lacunes et la plage d’images. Corrigez les marqueurs mal nommés ou manquants et filtrez les trajectoires bruitées avant la résolution.
- Utilisez BTK ou ezc3d pour l’inspection locale et le prétraitement lorsque l’application d’origine n’est pas disponible. Installez ezc3d avec
pip install ezc3d; il peut lire les points C3D, les données analogiques, les paramètres et la synchronisation, mais il n’infère pas de squelette et ne produit pas à lui seul un BVH valide. - Dans MotionBuilder, importez le fichier C3D à l’aide de la commande d’importation de données optiques disponible. Chargez ou créez l’ensemble de marqueurs du sujet et associez les noms aux repères anatomiques tels que le bassin, les genoux, les chevilles, les épaules et les coudes. Les noms exacts des menus peuvent varier selon la version de MotionBuilder et les options d’importation installées.
- Créez la résolution optique ou la résolution marqueurs-squelette. Définissez la pose de repos, les proportions du sujet, la longueur des os, la hiérarchie parent-enfant, le marqueur racine et les filtres de marqueurs nécessaires. Un nuage générique de marqueurs ne suffit pas à déterminer un squelette fiable.
- Inspectez le mouvement résolu afin de détecter les inversions des membres gauche et droit, une direction incorrecte du regard, le glissement des pieds, les inversions des genoux, les erreurs au niveau des épaules et les discontinuités causées par les occultations. Corrigez les données des marqueurs ou les paramètres de résolution avant la mise en cache.
- Caractérisez le squelette résolu, mettez en cache l’animation des articulations, définissez la plage d’images et la fréquence d’échantillonnage requises, puis exportez le mouvement au format BVH. Sélectionnez la racine appropriée, les canaux de translation, la convention des axes et l’ordre des rotations d’Euler adaptés au logiciel de destination.
Dans Blender, installez un importateur C3D compatible avec la version de Blender installée, importez les trajectoires des marqueurs, créez ou importez une armature aux proportions adaptées, contraignez l’armature aux marqueurs, mettez en cache l’action résultante et utilisez File → Export → Motion Capture (.bvh). L’exportateur BVH de Blender écrit une armature existante ; il ne transforme pas de manière fiable des points de marqueurs non nommés en squelette humain.
Contrôles de qualité et de compatibilité
- Unités : les données C3D sont souvent exprimées en millimètres, tandis que les lecteurs BVH peuvent interpréter les valeurs en centimètres ou en unités de scène arbitraires. Appliquez l’échelle requise aux longueurs des os et aux translations de la racine, puis vérifiez la taille du sujet et la distance parcourue.
- Axes : confirmez l’axe vertical, la direction vers l’avant, la chiralité et l’origine des coordonnées dans les deux applications. Une incompatibilité peut faire pivoter, refléter ou inverser le mouvement.
- Ordre des rotations : BVH déclare l’ordre des canaux de chaque articulation dans sa hiérarchie. Un importateur qui suppose un autre ordre d’Euler peut créer une torsion apparente des membres même lorsque la résolution source est correcte.
- Mouvement de la racine : déterminez si le BVH doit contenir une translation horizontale, une translation verticale et une rotation d’orientation. Certaines destinations attendent la locomotion sur la racine ; d’autres utilisent une animation sur place.
- Synchronisation des images : préservez la plage d’images et la fréquence d’échantillonnage C3D, sauf si un rééchantillonnage est intentionnel. Vérifiez que le temps d’image indiqué dans l’en-tête BVH correspond à la fréquence de lecture de destination.
- Lacunes et occultations : les marqueurs manquants ou mal nommés peuvent provoquer des à-coups articulaires, des rotations invraisemblables et un glissement des pieds. Comblez les lacunes ou excluez les segments concernés avant la mise en cache.
- Perte de données : BVH ne conserve généralement qu’un squelette et des canaux d’animation. Exportez séparément un fichier C3D nettoyé ou un autre format d’analyse si les plateformes de force, les signaux analogiques, les événements, les résidus des marqueurs ou les trajectoires originales doivent être conservés ultérieurement.
Convertisseurs en ligne et alternatives
Il n’existe pas de convertisseur générique C3D-BVH largement fiable, car la conversion nécessite un modèle de marqueurs et une résolution squelettique propres au sujet, et pas seulement un analyseur de format. Les sites génériques de conversion de fichiers ne peuvent pas inférer la hiérarchie des os ni les rotations articulaires. Utilisez le logiciel du fabricant du système de capture, MotionBuilder ou un flux de travail Blender local ; évitez de téléverser des données de capture de mouvement identifiables ou propriétaires vers des services non vérifiés.
Comparaison du format C3D vs BVH
Comparaison entre les formats C3D et BVH sur les propriétés les plus importantes pour cette conversion.
| Propriété | .C3D Coordinate 3D | .BVH Biovision Hierarchy |
|---|---|---|
| Géométrie | Nuage de points | — |
| Matériaux | Non | Non |
| Textures | Non pris en charge | Non pris en charge |
| Animation | Oui | Oui |
| Hiérarchie de scène | Non | Oui |
| Lisible en texte brut | Non | Oui |
| Taille de fichier typique | Moyen | Petit |
| Norme ouverte | Partiellement ouvert | Partiellement ouvert |
| Date d’introduction | 1970 | 1996 |
| Développeur | C-Motion, Inc. / Biomechanics research community | Biovision, Inc. |