Créer un nouveau bouclier en modifiant une texture

La modélisation de nouveaux objets “portables” par les avatars est complexe notamment si l’on ne dispose pas des objets au format Blender. Pour contourner ce problème, il est possible de créer de nouveaux objets à partir d’objet existant en modifiant simplement leur texture.

Partant du constat que tous les boucliers ronds du jeu utilisent la même mesh (objet en 3D), nous allons montrer comment créer un nouveau bouclier rond avec de belles armoiries.

Exemple de modification de la texture d’un objet existant.

Tous les objets utilisent des textures au format BMP (compression RLE et palette de couleur). Il est donc facile de modifier leur apparence en modifiant l’image utilisée dans la texture.

Cet article a été tiré à l’origine de l’ancien blog d’Etory (Terd Seglet). Il est à compléter et à corriger si besoin est.

Avertissement

Avant tout, il faut bien comprendre que ce que l’on crée ne peut pas se retrouver comme par magie dans le jeu. Il y a le côté serveur qui est géré par les administrateurs et développeurs du jeu et le côté client. Un objet ne peut se trouver dans le jeu que si les développeurs le crée côté serveur et là on ne peut rien y faire.

Donc, ce que nous allons faire c’est montrer comment créer de nouveaux objets afin de pouvoir les proposer aux administrateurs du jeu. On va créer des boucliers mais la même technique pourrait s’appliquer aussi à des habits et autres objets.

Introduction : la description d'un objet équipable, d'un avatar ou d'un monstre

Description des objets côté client

Les avatars et les objets équipables sont au format CALD3D. Il sont composés de plusieurs fichiers :

  • Un ou plusieurs fichiers de meshes (forme 3D), meshes étant un terme anglo-saxon d’infographie désignant le maillage composant la forme de l’objet. Ces fichiers sont dans le répertoire meshes du jeu et sont au format CMF (extension .cmf).
  • Un ou plusieurs fichier de textures au format BMP. Il y a un fichier de texture par fichier de meshes et ils sont également dans le répertoire meshes du jeu.
  • Un fichier squelette au format CSF. Ces fichiers sont comme leurs noms l’indiquent les squelettes des avatars et des monstres utilisés lors des animations (marche, combat, salut, etc …). Ils sont stockés dans le répertoire skeletons.
  • Des fichiers d’animations (un par type de mouvement) au format CAF. Ces fichiers indiquent comment animer le squelette d’un avatar ou d’un monstre. Ils sont stockés dans le répertoire animations du jeu.

Pour permettre de fédérer tout cela, il y a un autre type de fichier (au format XML) qui permet d’associer les meshes, les textures, les squelettes et les animations afin de donner vie aux créatures et avatars du jeu. Ces fichiers stockés dans le répertoire actor_defs permettent de définir tous les êtres vivants (ou mort vivant) et leurs équipements. C’est en consultant le fichier shield.xml que l’on va pouvoir voir comment sont créés les boucliers du jeu (enfin d’un point de vue graphique car le reste est géré au niveau du serveur).

Le fichier "shield.xml"

 <shield type="wood" id="0">
        <mesh>./meshes/shield1.cmf</mesh>
        <skin>./meshes/shield1_wood1.bmp</skin>
        <glow>none</glow>
 </shield>
 
 <shield type="wood enhanced" id="1">
        <mesh>./meshes/shield1.cmf</mesh>
        <skin>./meshes/shield1_wood2.bmp</skin>
        <glow>none</glow>
 </shield>
 
 <shield type="iron" id="2">
        <mesh>./meshes/shield1.cmf</mesh>
        <skin>./meshes/shield1_iron.bmp</skin>
        <glow>none</glow>
 </shield>
 
 <shield type="steel" id="3">
        <mesh>./meshes/shield1.cmf</mesh>
        <skin>./meshes/shield1_steel.bmp</skin>
        <glow>none</glow>
 </shield>
 
 <shield type="titanium" id="4">
        <mesh>./meshes/shield2.cmf</mesh>
        <skin>./meshes/shield2_titanium.bmp</skin>
        <glow>none</glow>
 </shield>
 
 <shield type="bronze" id="5">
        <mesh>./meshes/shield3.cmf</mesh>
        <skin>./meshes/shield3_bronze.bmp</skin>
        <glow>none</glow>
 </shield>

On constate que les 4 premiers boucliers (bois, bois renforcé, fer et acier) sont tous basés sur le même meshes ( shield1.cmf ) mais chacun avec untre textu (skin) différente. Sur se principe on voit qu’il est possible de rajouter facilement (d’un point de vue graphique) un nouveau bouclier rond en utilisant une autre texture. C’est comme cela que les armures en cuir Sinan ont été créées à partir des armures en cuir normal.

Création du bouclier

Première tentative

Allez je me suis lancé dans le test et j’ai créé en prenant exemple sur la texture du bouclier en acier une nouvelle texture :

Le bouclier d’origine : bouclier d'acier en acier et le premier essai :

Pour tester ce que cela rendait dans le jeu, j’ai simplement remplacé le fichier shield1_steel.bmp par le nouveau et j’ai relancé le jeu (attention de bien sauvegarder le fichier d’origine pour le remettre après) :

Le bouclier d’origine : et le nouveau :

Super (à part une mauvaise orientation) me voilà avec un super bouclier à tête de mort … que seul moi peut voir ! En effet les autres joueurs continuent de voir le bouclier en acier standard.

Autres exemples

Voici d’autres exemples :

Bon il y a encore du travail car les textures sont trop propres pour être utilisables mais voilà le principe. A noter que sur le bouclier avec le loup, la couleur rouge a débordée sur le contour gris alors que ce n’est pas le cas sur la texture.

Conclusion

C’est de cette manière que les boucliers de peuples ont été réalisé. Enfin presque car un nouveau mesh a quand même été créé pour l’occasion afin de cacher l’arrière du bouclier et de lui donner une attache en “cuir”.