Importer des meshes Cal3D dans Blender

On a vu qu’il était possible facilement d’importer ou d’exporter des objets statiques E3D dans Blender et donc de créer de nouveaux objets pour le jeu.

Par contre si il existe un script d’export Blender vers Cal3D, l’inverse n’existe pas. Après plusieurs recherches sur la toile, j’ai bien trouvé 2 programmes qui sont capables de convertir les fichiers meshes (cmf ou xmf) dans un autre format 3D importable dans Blender. Le hic est que ces programmes ne sont capables que de récupérer simplement le mesh mais pas l’UV mapping (la texture) sans compter la perte de l’armature (squelette).

Comment importer le mesh et la texture d'un fichier CMF

Connaissant le format du fichier CMF (cf le format des fichiers Cal3D ), j’ai écrit un petit programme en langage python (mais indépendant de Blender) qui permet de convertir le fichier CMF en format OBJ utilisé par Wavefront et facilement importable dans Blender. L’intérêt de ce format est qu’il est en format texte et qu’il permet de conserver les informations de texture uv mapping.

téléchargement : conv_cmf_obj_0.2.zip

Pour l’utiliser, il faut installer python (site officiel) et lancer la commande

python conv_cmf_obj.py nom_du_fichier.cmf

le programme a été testé sous Linux et Windows mais devrait fonctionner sous MacOSX. Pour windows, il faudra ajouter le chemin du programme python.exe. Exemple :

c:\python25\python.exe conv_cmf_obj.py nom_du_fichier.cmf

Limitations

  • Le format OBJ ne permet pas de gérer les animations et les armatures (squelettes) donc ces informations ne sont pas reprises dans la conversion.
  • Le format Cal3D permet de gérer plusieurs couches de textures uv mapping mais pas le format OBJ donc un objet avec plusieurs textures superposées ne peuvent être convertis pas ce programme.

Importation dans Blender

Dans Blender, il suffit d’importer l’objet par le menu fichier|importer|Wavefront (.obj). Choisissez le fichier et importer le (les options par défaut sont correctes).

import_cmf.jpg

A noter que le programme conv_cmf_obj.py repositionne correctement l’objet dans l’espace ( z|_ x ) pour que vous ne soyez pas obligés de faire une rotation après l’import dans Blender.

Sélectionnez l’objet (clic droit) et choisissez le mode Face UV

import_cmf2.jpg

toutes les faces sont sélectionnées par défaut, changez le type de la fenêtre en Editeur UV/image :

import_cmf3.jpg

On voit donc la mise à plat du mesh sur la texture UV. Dans le sous menu Image, ouvrez une image pour affecter un fichier BMP à votre texture et le tour est joué.

Et ensuite

Ensuite, il faudra ré-associer le mesh avec le squelette … enfin quand on aura réussi à l’importer d’une manière ou d’une autre.