Accueil  ·  Rechercher  ·  Espace Membre  ·  Forum  ·  Livre d'or

Jeux

Half-Life 2
Battlefield 2
Doom 3
FarCry
Titanium
Half-Life
Jedi Outcast

Rechercher




Partenaires



cssbase

Mapping-Area

Panda php Web portail

Nicosoftgames


Demande de
partenariat

   3Ds Max - tutorial exportation hl2
 


Exportation d’un model sous Half Life 2

(programmes utilisés: max 6.0 et milkshape 1.7.4)
(par TheDarkKillerZ)



I Préliminaires:

Bon, maintenant qu’on a son model modelé et texturé, on va passer a l’exportation..
J’ai pris un exemple simple: un banc de gare:

Pour les textures, il faut obligatoirement qu’elles soient dans un multiple de 8, par exemple 8x8, 16x16, 32x32, 64x64, 128x128,256x256,512x512,1024x1024, etc…c’est déconseillé d’aller au dessus.
Et il faut choisir sa taille en rapport avec la qualité de texture qu l’on veut, par exemple ma texture pour le banc n’utilise pas d’effet en particulier et voilà comment elle se présente:

J’ai donc choisi de la mettre en 256x256, j’aurais pu aussi bien la mettre en 128x128,au dessus de 256 j’aurais gâché de la place inutilement


II les textures



Donc en supposant que vous ayez les plugins d’import export smd pour max (par cannonfooder’s),
Vous devez d’abord vérifier les matériaux :

Vous ne devez avoir qu’un seul matériaux avec les paramètres standard et vous mettez votre texture dans couleur diffuse/bitmap(en rouge ici)

 
Si votre model utilise plusieurs textures il faut obligatoirement utiliser les id matériaux et un multi/sous objet comme suit:

Sinon si vous utilisez des sous-sous-matériaux ou des lancer de rayon ou autre vous risquerez de voir max planter a l’exportation….


III le fichier référence



Fichier/exporter

Et on va l’appeler banc référence(le nom n’as pas d’importance mais c’est pour se repérer)
Et ensuite enregistrer, on a ensuite cette fenêtre qui apparaît:

On vas donc exporter en référence pour avoir la géométrie dans le cm (le skeletal animation contient uniquement le squelette du model et les animations), on devrait avoir ce message si tout s’est bien passé, si vous avez un message du genre ‘bogus sub matérial….’ c’est que vous n’avez pas respecté la procédure pour les textures


 
Passons maintenant sous milkshape pour faire un peu de ménage…

Sélectionnez votre fichier de référence

Et ne gardez que les triangles

Ensuite vérifiez que le model est bien centré par rapport à l’origine(les 2 traits bleu et rouge au centre) qui représente le sol, cliquez sur joint et cliquez sur l’origine pour créer un bone (os ) qui est obligatoire sur tout model
Ensuite cliquez sur groups/select pour sélectionner tout le model(si vous avez plusieurs textures vous devriez avoir plusieurs groupes)
Ensuite Joints/assign(toujours avec votre model sélectionné)

Puis réexportez votre model en mode référence dans le fichier référence ou créez en un autre si vous n’êtes pas sûr




IV le QC



Dans notre répertoire où se trouve le fichier référence on va créer un fichier texte(.txt) que l’on renommera plus tard en .qc
Premiere ligne:
$modelname world/exterieur/banc.mdl
C’est là ou va être exporté notre model, par exemple là il sera enregistré dans le mod qui est configuré dans le vconfig dans monmod/models/world/extérieur/banc.mdl
$cdmaterials models\world\exterieur/banc
C’est le répertoire où se trouvent les textures du model (ici monmod/matérials/models/world/extérieur/banc/banc.vmt)
$staticprop
Indique que le model sera utilisé en staticprop
$body studio "banc_référence.smd"
On indique ici le fichier référence de notre model
$surfaceprop "metal"
indique le type de surface du model, ici c’est metal mais on peut aussi bien mettre glass pour du verre, Wood pour du bois, si on ne met pas cette ligne la surface sera ‘defaut’(la liste est visible dans hlmv dans la partie ‘bones’ dans la liste déroulante en dessous de ‘bone surface prop’
$sequence idle "banc_référence" loop fps 15
On déclare ici la séquence ‘idle’
$collisionmodel "banc_référence.smd"
On indique ici quel fichier utiliser pour les collisions

Donc en résumé voilà ce qu’on a dans notre qc:
$modelname world/exterieur/banc.mdl
$cdmaterials models\world\exterieur/banc
$staticprop
$body studio "banc_référence.smd"
$surfaceprop "metal"
$sequence idle "banc_référence" loop fps 15
$collisionmodel "banc_référence.smd"

On enregistre notre qc et le renomme en QC.qc ou cequevousvoulez.qc


V LA COMPILATION



Allez dans steamapps/votre pseudo/sourcesdk/bin (dans le sdk)
Et ouvrez votre répertoire avec le model a compiler dans une autre fenêtre

Prenez ensuite votre fichier qc et faites un glisser/déposer sur studiomdl.exe

Une fenêtre md-dos apparaît ensuite pendant quelques secondes et si vous avez le temps de voire ces quelques lignes c’est que votre model est compilé avec succès, la compilation dure plus longtemps si votre model contient beaucoup de polys

On vérifie ensuite, notre model est bien compilé…

On ouvre notre model dans hlmv:

Si vous obtenez ce quadrillage c’est qu’il ne trouve pas les textures,
Donc je vérifie mon dossier monmod/matérials/models/world/extérieur/banc/
Il contient banc.vtf et banc.vmt(hl² recherche en premier le fichier vmt)
Donc la texture dans milk et max et le vmt ont bien le même nom, j’ouvre le vmt et je corrige pour avoir comme suit:
"VertexLitGeneric"
{
"$baseTexture" "./models/world/exterieur/banc/banc"
}
Je réessaie sous hlmv:

Et voilà mon model est impec…

 
SOLUTION ALTERNATIVE, LE FICHIER BAT
Cette solution est conseillée pour les débutants ou ceux qui exportent beaucoup de models car elle permet de se retrouver rapidement en cas d’erreur, pour faire un fichier bat, créez un fichier texte (txt) là ou vous le souhaitez (dans notre répertoire du model pour s‘y retrouver de préférence), ensuite ouvrez-le et tapez comme suit:
cd..
cd..
cd program files
cd valve
cd steam
cd steamapps
cd
votre pseudo(a changer)
cd sourcesdk
cd bin
studiomdl.exe c:\
chemin_vers_votre_qc.qc
pause
Explication:
Quand vous ouvrez l’invite de commandes ms-dos, celle ci s’ouvre automatiquement dans c:/document and settings/nomdevotreordinateur/
Donc les 2 premières lignes servent a revenir dans c:/
Les 7 suivantes servent a entrer dans le répertoire du sdk d’hl², l’avant dernière sert a lancer le programme de compilation des modèles en indiquant quel qc utiliser et la dernière sert a faire une pause a la fin pour garder la fenêtre ouverte pour ainsi regarder toutes les étapes de la compilation ou voire les messages d’erreur.
Ensuite enregistrez votre fichier texte et renommez le en cequevousvoulez.bat et double-cliquez dessus pour lancer la compilation…


VI LES COLLISIONS AVANCEES


Si on affiche le model ‘physique’, on s’aperçoit qu’il ne colle pas vraiment avec le model normal:


En effet il génère un model en ne prenant que les extrémitées et ignore les angles intérieurs,
Donc on va reprendre notre model original sous max et refaire certaines partie en ‘low polys’
Et réassigner la même texture que le model original(la texture ne sera pas visible plus tard mais c’est juste pour pas avoir de bugs a l’exportation)

Voilà une fois corrigé;
Si on décompose notre models on voit qu’il est composé de 4 parties ’pleines ‘ (on ne peut pas en mettre plus de 20 donc gérez bien votre model physique), c’est a dire que les parties sont fermées de tous les cotés et qu’il n’y a aucun trou

Sinon vous pouvez toujours utiliser le modificateur ‘boucher trous’ dans max…
J’exporte donc mon model en banc_phys.smd (toujours en mode référence)
Et dans milkshape (je n’y ai pas touché depuis tout a l’heure), je vire uniquement le model en fesant:

Ensuite je réimporte uniquement les triangles de mon banc_phys.smd
Et je refais la même procédure que tout a l’heure: group/select et joint/assign

Ensuite je fais faces/smolt all (ou ctrl+m) et vous réexportez en banc_phys.smd
Si vous avez un résultat de ce genre:

Une fois exporté vous faites file/new et vous importez le banc_phys.smd en cochant toutes les options

Et vous refaites un smooth all pour obtenir ceci

Une fois que c’est fait vous réexportez en banc_phys.smd en référence et vous réouvrez votre QC

Sur la derniere vous devriez avoir
$collisionmodel "banc_référence.smd"
Changez le en :
$collisionmodel "banc_phys.smd" {
$concave
}
Et recompilez votre model et reessayez sous hlmv…
Et là Ooooohhhh, le model physique épouse le model normal…!!

Si jamais vous obtenez encore le premier model physique c’est que soit il y a un trou dans votre model, soit vous n’avez pas fait correctement le smooth all, soit que vous n’avez pas modifié votre qc(ça m’est arrivé de chercher des heures rien que pour ça….)

Voilà ce que ça donne ingame en prop_static, ça donne pas envie de s’asseoir????

Tutorial réalisé par TheDarkKillerZ

 
 

Logiciels

3Ds Max
WEB
BINK Video
VHS-DIVX
Oekaki
Cloner ces jeux
Dico du net

Login

Pseudo : Pass :    
Enregistrez-vous
  Qui est en ligne ?
• Visiteurs : 1
Membres : 0
• Moderateurs : 0
• Admins : 0

Votes

Ca va ?
Un peut (1101)

Oui (1923)

Non (1182)


Nicosoft Games' videotutorial website Beta 2.0
Panda php web portail v1.0 © 2005
Theme BluePanda par DIERICK Nicolas