Vous vous demandez peut être comment intégré ces propres models dans GAMEMAKER 6.1?
Voiçi mon tutoriel pour mon exemple LADAVUE1.2.GM6.
LES OUTILS:
Il vous faut absolument les deux premiers outils.
-anim8or (converti les fichiers .3ds .lwo .obj .an8 vers le format .vtx) (c'est aussi un logiciel de modelling)
lien: http://www.anim8or.com/main/index.html
-vtx to d3d converter 3.2 ou marzipan (il converti les .vtx vers .d3d)
lien: http://forums.gamemaker.nl/index.php?showtopic=126359
remarque: il existe d'autre convertisseurs de fichier 3d to d3d (voir le forum gamemaker: http://forums.gamemaker.nl/index.php?showtopic=86708&hl= )
Autres outils. (mieux que le NOTEPAD de Windows)
-ULTRAEDIT pour copier les données du fichier .D3D vers GM6
-MILKSHAPE3d moins dur à utilisé que 3dsMAX
LES DEUX TYPES DE FORMAT DE FICHIER:
-VTX : c'est juste un fichier texte qui contient les données de ton model (assez dur à comprendre)
-D3D : c'est les données du fichier .VTX converti en .D3D qui lui est lisible par GAMEMAKER 6.1
MODELISATION:
remarque: Marzipan ne supporte que des models en un groupe alors regoupé vos models avant d'exporté en .vtx
Je ne vais pas vous expliqué comment faire un model avec MILKSHAPE3d mais uniquement comment l'exporté vers GM6.
remarque: les positions dans l'espace dans MILKSHAPE3d et de Anim8or sont différentes télécharge le fichier lada1500an8.zip
lien: http://www.percsich.hu/data/free/lada1500an8.zip
Ensuite tu ouvre le fichier lada.an8 avec anim8or et tu l'export en .3ds. (si tu veux le modifié avec d'autre logiciel de 3d)
Quand tu charge le fichier .3ds (du model lada) avec ton logiciel 3d ne le bouge pas. (utilise le comme base pour la position/par taille de model)
Aprés avoir fini ton model exporte le en .3ds avec Materials coché si tu utilise MILKSHAPE3d.
Lance Anim8or et clique sur Mode> Object> Object> Import et choisi ton fichier .3ds. (View> All pour avoir les 4 vues)
Pour l'exporté en .VTX clique sur Object> Export et choisi un nom de fichier .vtx.
VTX VERS D3D:
remarque:j'ai utilisé vtx to d3d converter 3.2 ancienne version de marzipan sa ne doit pas trop changé
Maintenant lance VTX to D3D_v32 fait clique droit et clique sur Load a VTX File et selectionne ton fichier .vtx. (il y a Help pour de l'aide)
Il te charge ton model sans texture :( pas de panique tu peux chargé la texture (pas nécessaire les coordonnées UVMAP sont gardées) en cliquant sur change texture et choisi ton fichier.bmp .jpg...
remarque: la texture de ton model peu mal s'affiché (il faut juste inversé verticalement la texture de ton model dans PAINT et de ne pas oublié de charger la texture inversé dans GM6)
Pour l'exporté en D3D clique sur Export MODEL Script et clique sur NO quand il demande Normal Vector (sinon ton model ne possédera pas de texture)
et il te demandera si tu veux l'exporté en Model GM6.1 (c'est un autre type de fichier .mod qui peut être lisible extérieurement pas intégré dans l'exe) clique sur No.
Il va te créer un ou plusieurs fichiers .d3d. le fichier qui est utile c'est le fichier.d3d sans numéro exemple: sweet_model0.d3d sweet_model1.d3d...
Ouvre le fichier .d3d sans numéro à la fin avec ULTRAEDIT et rajoute entre ces lignes:
tonmodel_ID0 = d3d_model_create();
tonmodel_texture = sprite_get_texture(lenomdetonsprite,0); //cette ligne là pour chargé la texture du model
d3d_model_primitive_begin(tonmodel_ID0,pr_trianglelist);
d3d_model_vertex_texture(tonmodel_ID0,11.88,-0.10,41.30,0.31,0.28);
d3d_model_vertex_texture(tonmodel_ID0,12.94,11.32,26.81,0.50,0.50);
d3d_model_vertex_texture(tonmodel_ID0,11.86,6.43,40.66,0.31,0.50);
et copie tout ton fichier .d3d avec la ligne en plus
lance GAMEMAKER 6.1
GAMEMAKER:
Fait clique droit sur Sprites> Add Sprite change le nom avec le nomdetonsprite et clique sur Load Sprite et charge la texture de ton model. (décoche transparent)
Maintenant rajoute un object sans sprite et clique sur Add Event et choisi Create et choisi comme action Execute a piece of code et Paste (coller).
Pour finir rajoute un Event Draw (toujours dans le même object) et choisi comme action Execute a piece of code avec ces lignes:
{
d3d_transform_set_identity();
d3d_transform_add_rotation_x(90); //modifiable selon vos besoins
d3d_transform_add_rotation_y(180); //modifiable selon vos besoins
d3d_transform_add_rotation_z(90); //modifiable selon vos besoins
d3d_transform_add_translation(x,y,z);
draw_set_color(c_white);
d3d_model_draw(tonmodel_ID0,0,0,0,tonmodel_texture);
d3d_transform_set_identity();
}
remarque importante: il peut arrivé que ton fichier .d3d contient plusieurs IDs (qui tous ensemble forme ton model) donc il faut que tu rajoute autant de ligne exemple:
d3d_model_draw(tonmodel_ID0,0,0,0,tonmodel_texture);
d3d_model_draw(tonmodel_ID1,0,0,0,tonmodel_texture);
d3d_model_draw(tonmodel_ID2,0,0,0,tonmodel_texture);
valide le tout avec Ok
Maintenant place ton Object dans la room Driving et fait Ok
Et teste
Infos:
Je mettrai vtx to d3d converter en ligne plus tard
Les collisions sont géré par les sprites si tu veux une collision pour ton model mets un sprite à ton object (pas la texture) de la taille aproximatif de ton model.
Il est possible de faire une animation en intégrant des Alarm et en changeant d'instance je l'expliquerai plus tard.
GAMEMAKER et limité dans l'affichage de models 3d alors ne mettait pas trop de polygones...aussi supprime les faces qui ne sont pas visibles genre en dessous du model...
*************************************************************************************************************************************************************************
On peut changé le model des véhicules en changeant dans Draw> Execute a piece of code:
// body // body
draw_set_color(c_white); par draw_set_color(c_white);
d3d_model_draw(bodyID,0,0,0,body_texture); d3d_model_draw(tonmodel_ID0,0,0,0,tonmodel_texture);
Et dans l'Event Create> Execute a piece of code: (à la place de BodyID)
tonmodel_ID0 = d3d_model_create();
tonmodel_texture = sprite_get_texture(lenomdetonsprite,0);
d3d_model_primitive_begin(tonmodel_ID0,pr_trianglelist);
d3d_model_vertex_texture(tonmodel_ID0,11.88,-0.10,41.30,0.31,0.28);
Et dans l'event Step> Execute a piece of code:
body_texture=sprite_get_texture(sweet1,txnum); par tonmodel_texture=sprite_get_texture(lenomdetonsprite,txnum);
et en oubliant pas de supprimé/remplacé toutes les lignes BodyID/BodyID2/topID/topID2 dans Create Event et Draw Event car sinon plantage
*************************************************************************************************************************************************************************
Tutoriel par DANY
merçi de ne pas le copié sur d'autres sites/pages Web perso et de ne pas changé le nom d'auteur
| Novembre 2009 | ||||||||||
| L | M | M | J | V | S | D | ||||
| 1 | ||||||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||||
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | ||||
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | ||||
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | ||||
| 30 | ||||||||||
|
||||||||||
Commentaires