Compilation de modèles pour Half-Life (part1: overview)

Écrit le 05/07/2003 par MOO
Dernière mise à jour : 30/01/2006

Introduction

* Qu'allons nous aborder dans ce tutorial ?
- Comment préparer son model à la compilation pour HL: exportation en smd...
- Comment préparer le fichier de compilation -=survol=- (.qc file)
- Comment Compiler le modèle (en .mdl) + erreurs rencontrées.

* De quoi ai-je besoin pour ce tutorial?
- Milkshape 3D, n’importe quelle version... tant qu’elle compile les .qc et qu’elle exporte en .smd...
- Un modèle (au pire, vous foutez une box et c’est parti...)
- une texture !!! OBLIGATOIRE (même si c'est seulement un carré bleu ou blanc… , il en faut une...)
- 2 oeufs, de la farine et du sel (optionnel)
- des chips et du coca pour s'occuper le ventre lors du tutorial OBLIGATOIRE

* Allons nous parler des "attachements", "Hit Boxes", "submodels", ... ?
- non, ce tutorial est un survol de la compilation : j'apprends a compiler un model simple, avec une anim et une skin.

La suite de ce tutorial suivra et nous aborderons le .qc plus en profondeur...

Comment préparer son modèle à la compilation

Allez on perd pas de temps!!! ^^

Pour faciliter le travail qui va suivre, créez un dossier "compilation".
Tous les fichiers que je vous demande de sauver devront s'y trouver...

Ouvrez votre modèle, ou créez une "Box", la plus basique qu'il soit!!!
Si votre modèle n'a pas de "bones" créez en 1 et assignez lui TOUS LES VERTEX!!!
Exportez votre model en smd:

http://www.game-lab.com/images/tuts/ms3d_export_hl1/01.jpg

Nommez le "reference" et sélectionnez ensuite le type de fichier "reference"

http://www.game-lab.com/images/tuts/ms3d_export_hl1/02.jpg

En cas de problème reportez vous a la fin du tuto...
Si vous avez une anim : chargez là, puis exportez la en anim smd (nom: "sequence").
Si vous n'avez pas d'anim: cliquez sur animate->Remove all keyframes.

http://www.game-lab.com/images/tuts/ms3d_export_hl1/03.jpg

Puis exportez le fichier anim (file->export smd->nom: "sequence"->type: "sequence")

Copiez collez votre/vos fichiers textures dans le dossier "compilation"

Comment préparer le .qc

Créez le fichier (sur ce point MilkShape va presque tout faire a votre place, mais seulement pour les options classiques...).

http://www.game-lab.com/images/tuts/ms3d_export_hl1/04.jpg

Puis ouvrez le (vous pouvez aussi l'éditer avec notepad, ce fantastique logiciel que je considère comme le plus fonctionnel de mon pc :-p ) ou alors avec "Edit .qc file".

http://www.game-lab.com/images/tuts/ms3d_export_hl1/04.jpg

C'est là que ça se corse ^^.
Vous obtenez quelque chose ressemblant à (en vert, des commentaires pour les besoins du tuto) :

// Output .MDL
$modelname "compilationmymodel.mdl" [color=green]// le chemin d'accès au futur .mdl (vous pouvez le modifier ainsi que le nom de sortie du model.)

// Directory of .SMD
$cd "compilation" // Chemin d'acces aux fichiers SMD (sequence.smd et reference.smd)

// Directory of .BMP
$cdtexture "compilation" // chemin d'accès aux textures
$cliptotextures

// Write textures into a ???T.mdl // on verra ça plus tard, c'est compliqué!
//$externaltextures

$scale 1.0 // réduction du modèle post compilation...

// bodygroups: use relative path from $cd
$bodygroup body
{
studio "./reference" // les fichiers reference (les modèles), vous modifierez ce nom suivant le nom de votre smd (par exemple p228_c si vous avez enregistré votre smd sous p228_c.smd...)
}

// sequences: all sequences are in $cd // toutes les sequences du model
$sequence seq-name "sequence" loop fps 30 ACT_IDLE 1 // seq-name= le nom qui apparaîtra sous HLMViewer; "sequence" (pareil que pour reference: le nom de votre fichier smd anim); loop = animation en boucle, vous pouvez le supprimer sans avoir de problèmes par la suite; FPS 30 = nombre de Frames par secondes ( ici 30 )= vitesse de l'animation, à vous de changer ce chiffre pour avoir une animation correcte; 
[/color]

Toutes les lignes précédés d'un double slash sont des commentaires, vous pouvez donc insérer des notes si vous voulez.

Normalement, nous en avons finit avec le .qc, il vous faut vérifier les chemins d'accès et ça doit être bon ^^.

Comment compiler le modèle

A ce stade vous avez tous les ingrédients nécessaires:
- un fichier .smd reference
- un fichier .smd anim (nommé sequence)
- un fichier texture: un .bmp 256 couleurs au format d'half-life (voir le deuxième tuto sur le .qc)
- un fichier de compilation quake (.qc file)
- un reste de chips et de coca...

Voici le moment que vous attendez tous: la compilation
Avant d'être frustrés, je tiens a vous avertir que la compilation va merder chez 70% d'entre vous, c'est pour ça kil y a une liste des problèmes et remèdes dans ce même tutorial (si vous avez un problème NON REPERTORIE maillez-moi, ça me permettra de l'ajouter a ma liste et d'y trouver un remède.)
Cliquez sur Compile .qc file.

http://www.game-lab.com/images/tuts/ms3d_export_hl1/04.jpg

Hop là, c'est parti!
Si ça a marché, vous pouvez passer au tutorial supérieur, sinon, consultez la liste des erreurs…

Erreurs, problèmes, foirages, et remèdes

Exportation en .smd
PB = found vertex with invalid bone assignement
R = assignez TOUS vos vertex a des bones/un bone. (il y a un vertex non assigné).

PB = found group with no material
R = un de vos objets n'a pas de texture, TOUS les objets doivent en avoir!

A vous de m'aider à compléter cette liste…