Le package d'extension pour Ultimate 3D, qui peut être obtenu depuis Ultimate3D.org (Ndt : http://u3d.gamemaker.fr/download/U3DGEX.zip),
offre toutes les fonctionnalités requises pour utiliser Ultimate 3D
avec Game Maker 7.0. Pour être plus précis il contient la dll
Ultimate3D.dll, toutes les fonctions qui sont expliquées dans ce
fichier d'aide et deux librairies d'actions. Son utilisation peut
faciliter le travail avec Ultimate 3D et en rend l'utilisation plus
confortable.
Avertissement:
Le package d'extension est vraiment nouveau et, par conséquent, il n'a
pas subi une longue phase de beta test, à l'instar de la version
normale d'Ultimate 3D. Bein que j'ai testé tout les composants du
package avec soin, il est probablement plus sûr d'utiliser la version
normale. Vous devriez aussi noter que les gens qui n'ont pas installé
l'extension ne seront pas à même de voir vos fichiers de projet
correctement, si vous l'avez installée.
Il y a de nombreuses choses dont Ultimate 3D a toujours besoin, qui ne peuvent êtres incluses dans le package d'extension. Pour cette raison le package d'extension est distribué avec un BasicGEX.gmk, qui contient ces choses. Il est évident que la première chose que vous devez faire pour être à même d'utiliser l'extension est de l'installer, au travers de l'extension package manager de Game Maker. Une fois que ce sera fait, le BasicGEX.gmk fonctionnera et affichera les mêmes choses que BasicGM7.gmk du SDK. Vous devriez baser vos projets sur ce fichier. Si vous ne souhaitez pas faire ainsi, il vous faudra copier le script Ultimate3DOptions() depuis le fichier BasicGEX.gmk vers votre projet et vous devrez définir la première room correctement (comme expliqué dans Commençons par le début).
Les librairies d'actions offrent un accès à la plupart des fonctionnalités basiques de la partie novice d'Ultimate 3D. Ne vous attendez pas à aller très loin avec elles. Utiliser ces librairies intuitives et ergonomiques ne compense pas une étude approfondie de ce fichier d'aide. Ne vous attendez pas à être à même d'utiliser Ultimate 3D sans être capable d'écrire du code en GML. Les librairies d'action peuvent vous économiser certains travaux qui sont requis vraiment souvent (comme Step() et Destroy()), mais elles ne sont pas pensées pour permettre l'accès à toutes les fonctionnalités d'Ultimate 3D et elles ne doivent pas le faire.
Il y a deux librairies, la première nommée U3D main, et la seconde nommée U3D misc. U3D main contient de nombreuses actions pour gérer les objets, les créer et changer l'environnement. U3D misc. contient des actions pour modifier et transformer les objets, pour dessiner des graphismes 2D et bien plus encore. Ce qui suit est une explication de chaque action.
Load texture
Cette action charge une texture à partir d'un fichier donné et
l'associe avec un indice de texture. Pour plus d'informations consulter
la description de LoadTexture(...).
Step
Ultimate 3D associe des
objets Ultimate 3D (ex: un seul mur, un seul panneau ou un seul modèle)
avec les instances des objets Game Maker. Ces objets Game Maker ont de
nombreux variables qui peuvent être utilisées pour modifier les objets
Ultimate 3D. Cette action transmet les données de ces variables à
Ultimate 3D. Elle devrait être placée dans l'évènement step pour chacun
des objets Game Maker, qui sont associés avec un objet Ultimate 3D, à
moins que ce ne soit une caméra. Cette action correspond à Step().
Destroy
Cela détruit l'objet
Ultimate 3D qui est associé avec l'objet Game Maker. Afin que les
objets Ultimate 3D soient supprimés lorsque les instances qui y sont
associées le sont, vous devriez placer cela dans l'évènement destroy de
chacun des objets Game Maker qui est associé avec un objet Ultimate 3D.
Cette action correspond à Destroy().
Associate with primary camera
Défini certaines variables
et associe cet objet avec la caméra primaire (1ère). Pour être plus
précis, cette action définie les variables height et view au valeurs
données, les variables de viewport (portée de la vue) en correspondance
avec celles de la vue primaire de Game Maker, min_range à 1, max_range
à 100000 et number à 0 et fini par appeller MoveCamera(...).
Camera step
Cette action est
l'équivalent de step pour les caméras. Elle transmet toutes les
données, qui sont sauvées dans des variables, de l'instance de Game
Maker à l'objet de caméra d'Ultimate 3D. Elle doit être placée dans
l'évènement step d'un objet caméra. Cette action correspond à MoveCamera().
Create wall
Cette action crée un mur de
la position x, y, z à la position x + x2, y + y2, z+height avec la
texture portant l'indice donné et l'associe avec cette instance de Game
Maker. Il fait cela en définissant les variables x2, y2, height et
texture et en appellant CreateWall() pour finir.
Create floor
Cette action crée un mur
depuis la position x, y, z à la position x+width, y+height, z avec la
texture portant l'indice donné, et associe ce mur avec cette instance
de Game Maker. Elle fait cela en définissant les variables width,
height et texture puis en appellant CreateFloor().
Create cube
Cette action crée un cube à
partir de la position x, y, z jusqu'à la position x+width, y+height,
z+depth avec la texture définie à l'indice donné et associe ce cube, à
cette instance de Game Maker. Elle fait cela en définissant les
variables width, height, depth2 et texture, puis en finissant par
appeller CreateCube().
Create billboard
Cette action crée un
panneau (billboard), avec x, y, z pour origine, avec la largeur et la
hauteur donnée, l'origine relative donnée du panneau et la texture avec
l'indice donné et l'associe avec cette instance de Game Maker. Elle le
fait en définissant les variables width, height, originx, originy et
texture et en finissant par appeler Create2D().
Create model
Cette action crée un objet
de modèle à l'aide du fichier *.3ds, *.an8, *.md2, *.ms3d, *.u3d ou *.x
donné et l'associe avec cette instance de Game Maker. Elle fait cela en
définissant la variable file et en appellant LoadMesh().
Create light directional
Cette action crée une
source de lumière directionnelle avec la direction d'éclairage et la
couleur de lumière donnée et associe cette source de lumière avec cette
instance de Game Maker. Elle le fait en définissant les variables r, g,
b, rotx et roty et en appellant LightDirectional().
Create light point
Cette action crée un point
lumineux avec la portée et la couleur donnée, puis l'associe avec cette
instance de Game Maker. Elle le fait en définissant les variables r, g,
b et range, puis en appellant LightPoint().
Create spot light
Cette action crée une spot
light, avec les direction d'éclairage donnée, la portée, l'angle
d'éclairage et la couleur de lumière donnée, et l'associe avec
l'instance actuelle de Game Maker. Elle se charge de cela en
définissant les variables r, g, b, range, rotx, roty ainsi que deg, et
en finissant par appeller LightPoint().
Set ambient lighting
Cette action modifie
l'intensité et la couleur de l'éclairage ambiant. L'éclairage ambiant
affecte tous les objets avec la même force, indépendamment de leur
position. Cette action correspond à SetAmbient(...).
Set fog properties
Cette action met en place
un brouillard avec la couleur donnée, qui débute à la distance de
départ donnée et fini à la distance de fin donnée. À la distance de
fin, tout aura la couleur du brouillard. C'est action correspond à SetFog(...).
Disable fog
Cette action désactive complètement le brouillard. Elle correspond à DisableFog().
Set solid background color
Cette action définit une
couleur de background solide et désactive le skysphere/skycube, dans la
mesure où ils étaient utilisés avant cela.
Load sky sphere
Cette action charge un skysphere d'un fichier image donné et l'utilise comme background. Cela correspond à LoadBackground(...).
Create instance 3D
Cette action étent l'action
de création d'instance de Game Maker avec un paramètre additionel vous
permettant de spécifier la position z de l'objet. Si relative est
coché, les coordonnées seront interprétées de manière relative aux
coordonnées de l'instance, cela signifie qu'elles seront additionnées.
Move through 3D angles
Cette action déplace
l'objet dans l'espace en 3D en utilisant les angles. Pour plus
d'informations à ce propos, lisez la description de la fonction Move(...).
Move through 3D coordinates
Cette action déplace
l'objet dans l'espace en 3D en utilisant les trois coordonnées données.
Si relative n'est pas coché l'objet sera défini à la position donnée,
autrement les coordonnées données seront ajoutées aux coordonnées
actuelles. Cette action n'affectera pas l'objet Ultimate 3D, à moins
que l'action step soit placée dans l'évènement step.
Rotate using Euler angles
Cette action fait pivoter
l'objet en utilisant les trois angles d'Euler donnés. Si relative
n'est pas coché les variables rotx, roty et rotz de l'objet sont
définies au valeurs données, autrement les angles donnés sont
additionnés à rotx, roty et rotz. Cette action n'affectera pas l'objet
Ultimate 3D tant que l'action step ne sera pas placée dans l'évènement
step.
Scale object
Cette action met l'objet à
l'échelle avec le facteur donné. Tant que relative n'est pas coché
scalx, scaly et scalz seront définies à la valeur spécifiée, autrement
scalx, scaly et scalz seront multipliées par les valeurs données. Cette
action n'affectera pas l'objet Ultimate 3D tant que l'action step ne
sera pas placée dans l'évènement step.
Set animation speed and animation area
Cette action définit la
vitesse de l'animation, ainsi que les frames de début et de fin du
cycle d'animation. La frame de début et de fin sont optionnelles, vous
pouvez donc avoir un 0 ici si vous souhaiter jouer l'animation en
entier. Tant que relative n'est pas coché la variable frame est définie
à la valeur négative de la vitesse d'animation donnée, autrement la
variable frame est soustraite par la vitesse d'animation. Dans les deux
cas les variables first_frame et last_frame sont définies aux valeurs
données. Cette action n'affectera pas l'objet Ultimate 3D si l'action
step n'est pas présente dans l'évènement step.
Draws a texture to the screen
Cette action dessine la
texture avec l'indice donné à la position spécifiée et en utilisant
l'échelle, la rotation et la transparence donnée. Pour plus
d'informations référez vous à la description de DrawTex(...).
Load and prepare true type font
Cette action charge les
polices true type avec le nom donné et les prépare pour le dessin
rapide et efficace du texte. La police résultante sera associée avec
l'indice donné et aura la taille de texte spécifiée, sera en gras ou en
italique si cela est demandé et aura la couleur donnée. Pour plus
d'information référez vous à la description de SetFont(...).
Use a prepared true type font to draw text
Utilise la police avec
l'indice donné pour affiche le texte donné à la position spécifiée.
Pour plus d'information jetez un oeil à la description de DrawText(...).
Take screenshot
Prend une capture d'écran de la vue d'Ultimate 3D et l'enregistre dans le fichier bitmap donné.
© Christoph Peters. Certains droits réservés. (Traduction FR 04/2008, Franck Vernel / Damien Buhl).