Tutoriels,  Cours, Forums, Download, Exemples de code, Scripts, Gratuit et Freeware, Tests, Comparatifs, etc.


Le site du SDK GENESIS3D pour les compilateurs C++Builder et Bcc55
 G3DBuilder  Présentation G3D11 Borland SDK   Tutoriels  Astuces Images   Télécharger  Liens


Genedit – World Editor

Pour ouvrir World Editor, cliquez sur le menu Démarrer dans la barre des tâches Windows, sélectionnez Programmes/Genesis3d11 puis cliquez sur World Editor. La Figure 1 montre le logiciel World Editor lorsque vous l’ouvrez.

Figure 1 - Vue générale de World Editor

Le haut de la fenêtre contient la barre de menus et les barres de boutons. Le centre présente l’espace de travail où vous pouvez voir quatre différentes vues représentant une vue 3D du monde, une vue du dessus (Top), une vue de face (Front) et une vue de coté (Side). La partie de droite contient les panneaux de contrôle des formes de base et des entités (Template), des textures, des groupes, de la console, des modèles et du ciel (Sky). La partie inférieure de la fenêtre présente la barre de statuts.

 

 

 

Le menu File

Le menu File contient les options nécessaires pour créer un nouveau fichier (New), ouvrir un fichier existant (Open), fermer, sauvegarder sous le nom courant ou sous un autre nom le fichier déjà ouvert (Close, Save, Save As). Le format des fichiers de World Editor est FICHIER.3DT. L’option importer (Import) vous permet d’intégrer au fichier couramment ouvert, un autre fichier .3DT. Vous pouvez quitter World Editor en cliquant sur l’option Exit.

 

 

Le menu Edit

Les options du menu Edit vous permettent d’effacer (Delete) un objet précédemment sélectionné dans une des vues du plan de travail et de sélectionner ou de retirer la sélection de tous les objets de votre niveau (Select All, Deselect All).

Si vous cliquez Select All en ayant un fichier conséquent ouvert, l’opération peut être assez lourde et prendre un certain temps.

 

 

 

Le menu View

Dans le menu View, vous pouvez afficher ou cacher les barres d’outil (Tool Bar), de mode (Mode Bar), de groupe (Group Bar) et de statut (Status Bar) ainsi que les panneaux de contrôle (Command Panel).

Lorsque la vue 3D de l’espace de travail est sélectionnée, vous avez la possibilité d’afficher le monde en mode contour 3D (3D Wireframe) ou en mode texture (Textured View). Le mode contour 3D n’affichera que les contours des objets dans la vue 3D de l’espace de travail, et permet ainsi un affichage rapide du monde 3D. Le mode texture montrera les objets avec leurs textures ce qui rend l’affichage dans la vue 3D plus lent, spécialement avec des mondes 3D importants.

Les options Top View, Side View et Front View vous permettent de changer la vue couramment sélectionnée (à l’exception de la vue 3D) en une vue du dessus, de coté ou de face.

Les options Zoom In et Zoom Out vous permettent de faire un zoom avant et arrière dans la vue du dessus, de coté ou de face couramment sélectionnée.

L’option Show vous permet de cacher certaines catégories ou groupes de pièce de géométrie. Current Group correspond au groupe couramment sélectionné dans le panneau de contrôle de groupes, Visible Brush Group montrera tous les groupes marqués Visible dans le panneau de contrôle de groupes et All Brushes montrera toutes les pièces de géométrie dans votre monde 3D. Vous pouvez aussi cacher les catégories de pièce de géométrie Clip, Hint ou Detail (voir l’option du menu Tools|Brush|Attributes).

 

 

 

Le menu Mode

Le mode Camera vous permet de vous déplacer ou de faire des zooms dans les différentes vues. Dans la vue 3D, pressez et maintenez le bouton droit de la souris et déplacez-la afin de pouvoir voir dans toutes les directions. Pressez et maintenez le bouton gauche de la souris et bougez-la pour vous déplacer en avant, en arrière, à droite et à gauche dans la vue 3D. Dans les autres vues, si vous pressez et maintenez le bouton gauche de la souris et que vous la déplacez, vous pouvez faire glisser le plan 2D dans toutes les directions sur les 2 axes. Si vous pressez et maintenez le bouton droit de la souris et que vous la déplacez vers le haut ou vers le bas, vous pouvez respectivement faire un zoom avant ou arrière dans cette vue.

En mode Selection, cliquez sur un objet dans la vue 3D ou sur une ligne de contour d’un objet dans une des vues 2D afin de le sélectionner. Notez que pour sélectionner un objet dans une vue 2D, il ne faut qu’aucun des modes Move/Rotate, Scale ou Shear ne soit sélectionné. Si dans une des vues 2D, vous cliquez sur un espace vide, l’objet le plus proche du curseur de la souris sera sélectionné.

Le mode Template vous permet de positionner et de dimensionner une forme de base ou une entité et d’activer le panneau de contrôle Template (voir Le panneau de contrôle Template). Notez que l’objet Template (forme de base ou entité) est affiché en bleu dans les vues et qu’il correspond à la dernière forme de base ou entité que vous aurai placée.

Quand le mode Template ou une pièce de géométrie est sélectionné, vous avez 3 modes possibles pour en modifier l’aspect. Sélectionnez le mode Move/Rotate pour déplacer ou faire pivoter une pièce de géométrie dans une des vues 2D. Pressez et maintenez le bouton gauche de la souris et déplacer la pièce de géométrie en bougeant la souris. Pressez et maintenez le bouton droit de la souris et déplacez-la à droite ou à gauche pour faire pivoter la pièce de géométrie sur son axe central.

En mode Scale, positionnez le curseur de la souris dans une des vues 2D afin que celui-ci représente la flèche direction dans laquelle vous souhaitez dimensionner la forme de base (Template) ou la pièce de géométrie. Pressez et maintenez le bouton gauche de la souris, puis déplacez-la afin d’agrandir ou de rétrécir l’objet.

Le mode Shear sert à étirer la forme de base ou la pièce de géométrie sélectionnée sur l’axe vertical ou sur l’axe horizontal de la vue 2D courante. Lorsque le curseur de la souris montre une flèche horizontale à double sens, pressez et maintenez le bouton gauche de la souris et déplacez-la horizontalement pour étirer la forme de base ou la pièce de géométrie vers la droite ou vers la gauche. Faites de même lorsque le curseur de la souris montre une flèche verticale à double sens et déplacez la souris verticalement pour étirer la forme de base ou la pièce de géométrie vers le haut ou vers le bas.

Face Adjustment est le mode qui sert à manipuler les différents paramètres de chaque face de la pièce de géométrie sélectionnée, indépendamment (voir le menu Tools|Face|Attributes).

Brush Adjustment est le mode qui sert à manipuler les différents paramètres de la pièce de géométrie sélectionnée (voir le menu Tools|Brush|Attributes). C’est le mode sélectionné par défaut.

Le mode courant entre Face Adjustment et Brush Adjustment est affiché dans la barre de statut au bas de la fenêtre.

 

 

 

Le menu Options

Dans le menu Options, si Snap to Grid est coché, toutes les manipulations de pièce de géométrie, comme le positionnement, l’agrandissement ou la réduction, se feront suivant un espace en texel (unité de mesure de World Editor) défini dans la boite de dialogue Grid Settings. On l’appelle aussi Grille magnétique. Si cette option est décochée, tous les déplacements ou ajustements se feront librement. Snap to Grid est pratique pour aligner correctement des pièces de géométrie.

L’option Grid Settings (ou Configuration de la grille magnétique) ouvre la boite de dialogue suivante :

Figure 2 - World Editor : Configuration de la grille magnétique

La partie Grid Snap sert à configurer l’espace en texels de la grille magnétique. Si le Grid Snap est de 8 texels, les objets se déplaceront de 8 texels sur la grille. La partie Rotation sert à définir une rotation en degrés sur la grille magnétique. La case à cocher Snap/Rotate To Grid doit être cochée afin d’activer la grille magnétique.

Auto Rebuild BSP permet de reconstruire dans la vue 3D votre niveau automatiquement après chaque changement. Il est conseillé de décocher cette option lorsque vous travaillez sur un niveau de taille importante afin d’éviter un temps de calcul important. Vous pouvez toujours alors recalculer votre niveau manuellement avec l’option Build Quick BSP du menu Tools (voir l’option du menu Tools|Build Quick BSP).

L’option Preferences vous permet de redéfinir les couleurs pour le Grid Background (couleur de fond), le Grid Color (couleur de la grille) et le Snap Grid Color (couleur de la grille magnétique). Ceci permet dans certains cas une meilleure lisibilité du niveau sur lequel vous travaillez.

Dans la boite de dialogue Level Options, vous pouvez définir le chemin d’accès et le nom de la librairie de texture (fichier d’extension .TXL). La librairie de texture par défaut est ‘..\Genesis3d11\Levels\Gedit.txl’. Comme décris dans le chapitre 2.2.2 – Texture Packer, vous pouvez créer votre propre librairie de texture ou en modifier une existante. Il n’est pas conseillé de modifier la liste de chemins d’accès dans le champ Headers Directory à moins que vous ayez créé votre propre jeu d’entités pour World Editor.

 

 

 

Le menu Tools

Lorsque le mode Template est sélectionné (option Template du menu Mode), l’option New Brush du menu Tools vous propose de créer 6 formes de base.

La forme de base Arch.

Arch ouvre la boite de dialogue suivante :

Figure 3 - World Editor : Créer une forme de base de type Arch

Start Angle correspond à l’angle de départ de votre arche. En regardant la vue 2D de face, l’angle 0 correspond à une position de 3 heures sur un cadran d’horloge. L’angle de l’arche croît dans le sens inverse des aiguilles d’une montre (l’angle 90 correspond à 12 heures, l’angle 120 à 11 heures, l’angle 180 à 9 heures, … etc.). End Angle représente l’angle terminant votre arche. Ainsi, une arche avec un angle de départ de 0 et un angle d’arrivée de 180 forme un parfait demi-cercle. Thickness représente l’épaisseur de l’arche et Width sa largeur. Inner Radius se rapporte au rayon intérieur de l’arche exprimé en texels et sa valeur peut être comprise entre 1 et 10000 texels. Dans le cadre ou vous créez une arche de Style Hollow (creuse), Hollow Wall Size représente l’épaisseur des cloisons, toujours exprimé en texels. Enfin, Num. Cross Sections défini le nombre de sections avec lesquelles l’arche est construite. Cette valeur doit être comprise entre 3 et 64 mais il est fortement conseillé de ne pas dépasser 32 afin d’éviter des problèmes de compilation ou de performances lors de l’exécution de votre application. En effet, Genesis3D n’intègre pas à la base des surfaces courbes, bien qu’il soit possible de les ajouter au moteur, comme il a déjà été fait dans certains projets. Comme toute pièce de géométrie, vous pouvez sélectionner différents styles. Le Style Solid correspond à une pièce de géométrie solide, le style Hollow à une pièce de géométrie creuse, Ring à une pièce de géométrie tubulaire et Cut Brush à une pièce de géométrie soustractive (pour plus de détails sur les styles de pièce de géométrie, voir l’option du menu Tools|Brush|Attributes).

La forme de base Cone.

Figure 4 - World Editor : Créer une forme de base de type Cone

Dans la boite de dialogue Create Cone (figure 12), le paramètre Width représente la largeur de la base du cône exprimée en texels et Height sa hauteur. Num. Vertical Strips correspond au nombre de cotés du cône et ne doit pas excéder 40. Comme pour le nombre de sections d’une arche, il est cependant fortement conseillé de ne pas entrer une valeur supérieure à 32. Wall Size défini l’épaisseur des cloisons d’un cône dans le cas où celui-ci serait de Style Hollow ou Funnel. Pour plus de détails sur les Styles Solid, Hollow et Cut Brush, voir l’option du menu Tools|Brush|Attributes. Le Style Funnel crée un cône creux dont Wall Size défini l’épaisseur de ses cloisons.

La forme de base Cube.

Figure 5 - World Editor : Créer une forme de base de type Cube

Create Box vous permet de créer une forme de base de type Cube. En modifiant la longueur des axes X Size et Z Size des groupes Top (face de dessus) et Bottom (face de dessous), vous pouvez déformer le cube. Les valeurs entrées sont exprimées en texels. Dans le groupe de paramètres Static, Y Size représente la hauteur en texels du cube. Comme dans tous les autres types de pièces de géométrie, Wall Thickness défini l’épaisseur des cloisons du cube dans le cas où celui-ci serait de type Hollow (creux). Pour plus de détails sur les Styles Solid, Hollow, Cut Brush et Sheet, voir l’option du menu Tools|Brush|Attributes.

La forme de base Cylinder.

Figure 6 - World Editor : Créer une forme de base de type Cylinder

La forme de base Cylinder vous permet de créer un cylindre. Vous pouvez définir les dimensions supérieures et inférieures du cylindre avec les paramètres X Size et Z Size des groupes Top of Cylinder et Bottom of Cylinder. Les paramètres X Offset et Z Offset vous autorisent à étirer horizontalement le haut (Top of Cylinder) ou le bas (Bottom of Cylinder) du cylindre. Ces paramètres sont exprimés en texels. Dans le groupe Misc (divers), vous pouvez modifier la hauteur du cylindre avec Y Size, le nombre de sections verticales avec Stripes et l’épaisseur en texels des cloisons du cylindre avec Wall Thickness dans le cas où celui-ci serait de type Hollow ou Ring. Pour les mêmes raisons qu’avec une forme de base de type Arch ou Cone, il est fortement conseillé de ne pas dépasser une valeur de 32 pour le nombre de Stripes. Ring représente un cylindre creux, ouvert à chaque extrémité. Pour plus de détails sur les Styles Solid, Hollow et Cut Brush, voir l’option du menu Tools|Brush|Attributes.

La forme de base Spheroid.

Figure 7 - World Editor : Créer une forme de base de type Spheroid

L’option Radius correspond à la taille du rayon de la sphère en texels. Vertical Stripes et Horizontal Stripes définissent respectivement le nombre de sections verticales et horizontales de la sphère. Pour les mêmes raisons qu’avec une forme de base de type Arch, Cone ou Cylinder, il est fortement conseillé de ne pas dépasser une valeur de 32 pour le nombre de Stripes. Wall Thickness représente toujours l’épaisseur des cloisons de la sphère dans le cas où celle-ci serait de type Hollow. Pour plus de détails sur les Styles Solid, Hollow et Cut Brush, voir l’option du menu Tools|Brush|Attributes.

La forme de base Staircase.

Figure 8 - World Editor : Créer une forme de base de type Staircase

La forme de base Staicase créé un objet en forme de marches d’escalier. Vous pouvez définir sa hauteur (Height), sa largeur (Width) et sa longueur (Length) en texels. Le paramètre Number of Stairs vous permet de définir le nombre de marches que contiendra votre escalier. Ce nombre ne peut excéder 64. L’option Cut Brush vous permet de définir la forme de base Staircase comme une pièce de géométrie soustractive (voir l’option Cut Brush du menu Tools|Brush|Attributes). Si vous cochez l’option Make Ramp, la forme de base créera une rampe au lieu de marches d’escalier.

L’option Face/Attributes du menu Tools.

Lorsqu’une pièce de géométrie est sélectionnée et que le mode Face Adjustment du menu Mode est actif, vous pouvez alors modifier les différents paramètres de chaque face de la pièce de géométrie sélectionnée.

Sélectionnez le mode Selection du menu Mode. Dans une des vues du plan de travail, sélectionnez une pièce de géométrie. Basculez en mode Face Adjustment dans le menu Mode (ou utilisez la touche de raccourci Page Down). Les contours de votre pièce de géométrie doivent apparaître en mauve. A noter que toutes les faces de votre pièce de géométrie sont sélectionnées à ce moment. Si vous souhaitez modifier uniformément toutes les faces de cette pièce de géométrie, cliquez sur l’option Face|Attributes du menu Tools. Si vous souhaitez modifier certaines de ces faces ou les modifier indépendamment, vous pouvez sélectionner la face à modifier dans la vue 3D en cliquant dessus ou utiliser les touches du clavier flèche à droite ou flèche à gauche afin de passer d’une face à une autre. A savoir que si dans la vue 3D vous maintenez la touche de clavier Control (Ctrl), vous avez la possibilité de sélectionner plusieurs faces dans cette vue. Enfin, cliquez sur l’option Face|Attributes du menu Tools afin de faire apparaître la boite de dialogue suivante :

Figure 9 - World Editor : Modifier les attributs des faces des pièces de géométrie

Vous n’êtes pas obligé de fermer la boite de dialogue Face Attributes chaque fois que vous voulez sélectionner une autre face. La boite de dialogue toujours ouverte, il vous suffit de cliquer sur le plan de travail et de sélectionner une autre face, soit en cliquant dessus dans la vue 3D, soit en utilisant les touches de clavier flèche à droite ou flèche à gauche. Il vous suffit alors de revenir sur la boite de dialogue Face Attributes pour modifier la nouvelle face sélectionnée.

L’option Mirror sert à définir une face comme miroir. Afin d’obtenir une réflexivité, il vous faut aussi cocher la case Transparent et entrer une faible valeur dans le champ de saisie Transparency Value (255 est opaque et 0 est totalement clair). Une bonne valeur pour un miroir serait de 80.

La case à cocher Sky est utilisée pour y afficher l’animation définie dans le panneau de contrôle Sky (voir le Panneau de contrôle Sky). Si cette option est cochée, l’animation du panneau de contrôle Sky remplacera, lors de l’exécution, la texture que vous voyez dans la vue 3D.

Texture Lock verrouille la texture sur les faces sélectionnées, ce qui veut dire que même si vous déplacez la pièce de géométrie, la position de la texture (Texture Offset) sur ces faces restera la même. Ainsi, la texture ne "glissera" pas sur la face.

L’option Full Bright sert à afficher la texture sur la face que vous modifiez avec sa luminosité et son contraste original, indépendamment de la luminosité ambiante. Ainsi, la face de cette pièce de géométrie ainsi définie dans un environnement sans lumière paraîtra le seul objet que vous pouvez voir dans une obscurité totale.

L’option Gouraud est extrêmement utile lorsque vous créez une scène large et/ou complexe. Elle agit sur la méthode utilisée par le moteur pour projeter la lumière sur la face. Fondamentalement, le moteur prends les valeurs de lumière aux angles de la face et les appliques uniformément sur sa surface. Cela évite un calcul complexe de la lumière à projeter et une certaine lourdeur lors de l’exécution de votre application. Si le taux de trames par seconde est très faible lors de l’exécution de votre application, essayez de définir les faces de surface importante, comme les sols et plafonds, de type Gouraud, quitte à perdre en qualité.

L’option Flat produit le même effet que Gouraud.

En cochant la case à cocher Light et en entrant la valeur de son intensité dans le champ de saisie Intensity, la face émettra de la lumière autour d’elle. Pour ce faire, il vous faudra compiler votre niveau avec l’option Radiosity cochée (voir l’option Compile du menu Tools).

Texture Offset correspond à la position de la texture sur la face en X et Y, et est exprimée en texels. Vous pouvez entrer directement leur valeur dans le champ de saisie ou cliquer sur les boutons de flèche à droite des champs de saisie. Les boutons courts feront augmenter ou décroître la valeur de 1. Les boutons longs la feront augmenter ou décroître de la valeur spécifiée dans la liste à droite des boutons.

Draw Scale agrandit ou rétrécit la taille de la texture sur la face en X et en Y. Cette option fonctionne de la même manière que l’option Texture Offset.

Light Map Scale représente le traçage de la lumière sur la face. Des valeurs importantes rendront votre application plus performante au détriment du contraste et des ombres. Si votre application tourne lentement, il est conseillé d’augmenter ces valeurs. Cette option fonctionne de la même manière que l’option Texture Offset.

L’option Angle vous permet de faire pivoter, sur son axe central, la texture sur la face. L’angle de rotation est exprimé degrés (0 à 359). Cette option fonctionne de la même manière que l’option Texture Offset.

Cochez la case Transparent lorsque vous choisissez de définir la face de la pièce de géométrie sélectionnée comme Mirror (miroir) ou si vous souhaitez créer une face transparente comme une fenêtre ou une vitre. Il vous faudra aussi entrer une valeur correspondant à son opacité dans le champ de saisie Tranparency Value. Cette valeur doit être comprise entre 0 et 255, à savoir qu’une valeur de 255 donnes une vitre totalement opaque et qu’une valeur de 0 la rend complètement transparente. Comme donné en exemple plus haut dans le paragraphe où nous traitons de l’option Mirror, entrez une valeur de 80 afin d’avoir un assez bon effet de miroir.

Les boutons Flip Vert et Flip Horiz inversent respectivement la texture appliquée sur la face verticalement et horizontalement.

Le bouton Defaults restaure les paramètres de la face par défaut.

L’option Brush/Rotate 90 du menu Tools.

Cette option vous permet de faire pivoter à 90 degrés dans le sens des aiguilles d’une montre la pièce de géométrie que vous aurez sélectionné dans une des vues 2D.

L’option Brush/Attributes du menu Tools.

Lorsqu’une pièce de géométrie est sélectionnée et que le mode Brush Adjustment du menu Mode est actif, vous pouvez alors modifier les différents paramètres de la pièce de géométrie sélectionnée.

Sélectionnez le mode Selection du menu Mode. Dans une des vues du plan de travail, sélectionnez une pièce de géométrie en cliquant dessus. Basculez en mode Brush Adjustment dans le menu Mode (ou utilisez la touche de raccourci Page Down). Le mode Brush Adjustment est le mode par défaut. Vérifiez la barre de statuts afin d’être certain de savoir dans quel mode vous vous trouvez entre Brush Mode et Face Mode. Les contours de la pièce de géométrie sélectionnée doivent apparaître en bleu clair. Vous pouvez sélectionner d’autres pièces de géométrie sans pour autant fermer la boite de dialogue Brush Attributes en cliquant dessus dans une des vues ou en utilisant les touches du clavier flèche à droite ou flèche à gauche afin de passer d’une pièce de géométrie à une autre. A savoir que si vous maintenez la touche de clavier Control (Ctrl), vous avez la possibilité de sélectionner ou de retirer la sélection de plusieurs pièces de géométrie dans les vues du plan de travail. Enfin, cliquez sur l’option Brush|Attributes du menu Tools afin de faire apparaître la boite de dialogue suivante :

Figure 10 - World Editor : Modifier les attributs des pièces de géométrie

Le Type de Brush Solid est une pièce de géométrie utilisée pour construire des murs, sols, plafonds, portes, objets solides, etc. et bloque le passage et la visibilité.

Le Type Clip sert à construire une pièce de géométrie invisible mais qui bloque le passage. Les Brush de type Clip sont utiles afin d’interdire l’accès à des parties d’un niveau sans pour autant être obligé de construire un Brush Solid.

Le Type Empty défini un Brush translucide qui ne bloque pas le passage. Il est généralement utilisé pour créer des environnements liquides comme de l’eau ou de la lave.

Le Type Window est un Brush translucide qui bloque le passage tout en permettant à la lumière de passer au travers. Il sera généralement utilisé pour créer des fenêtres ou des vitres.

Le Type Hint est un Brush invisible et qui ne bloque pas le passage. Il est uniquement utilisé pour séparer le niveau en plusieurs parties afin d’aider le compilateur de niveau à créer des niveaux plus efficaces. Globalement, le moteur ne calculera pas les parties du niveau se trouvant après un Brush de type Hint tant que la camera ne sera pas en position d’apercevoir ces parties. Le temps de calcul en temps-réel ainsi sauvé accroîtra le taux de trames par seconde.

Le Type Cut est un Brush qui découpe une pièce de géométrie existante. Il sera généralement utilisé afin de découper un encadrement de porte ou de fenêtre, ou même une ouverture quelconque dans un mur ou un plafond.

L’attribut Hollow défini une pièce de géométrie creuse. Ce type de pièce de géométrie est utilisé pour créer une pièce dont la valeur Hull Thickness correspond à l’épaisseur de ses murs et est exprimée en texels.

L’attribut Wavy donne à une pièce de géométrie de type Empty un effet de vagues mouvantes. Il est utilisé pour créer un effet de vague dans un environnement liquide comme de l’eau ou comme effets spéciaux pour un portail dimensionnel qui donnerait un effet surréaliste assez intéressant.

L’attribut Detail est utilisé afin d’aider le compilateur et d’augmenter les performances de vitesse d’exécution de votre application en augmentant le nombre de trames par seconde. En effet, une pièce de géométrie marquée de l’attribut Detail ne sera pas prise en compte lors du calcul de la visibilité (VIS) et de la lumière (Light). Par exemple, il est conseillé de marquer toutes les pièces de géométrie utilisées pour construire des meubles, des rochers, des colonnes et autres petits objets de l’attribut Detail. A noter qu’une pièce de géométrie de type Window est toujours marquée Detail.

L’attribut Area est généralement utilisé pour les pièces de géométrie formant les portes ou tout autre Brush solide et visible séparant physiquement différentes parties de votre niveau. Le moteur ne calculera pas les parties se trouvant derrière un Brush de type Area lorsque celui-ci scelle complètement les parties de votre niveau se trouvant derrière la pièce de géométrie. Comme nous le verrons plus loin, il est possible d’associer un mouvement d’ouverture à une porte en utilisant une entité Door et un Model. Il vous faut savoir que dès que la porte commence à s’ouvrir, le moteur calculera les parties de votre niveau se trouvant derrière. Il cessera le calcul lorsque la porte se refermera totalement. Il est donc possible que votre application souffre d’une certaine perte de performances lorsque des portes s’ouvrent dans votre niveau et que les parties se trouvant derrière soit assez lourdes à calculer pour le moteur. Il est donc important de savoir placer stratégiquement les portes marquées de l’attribut Area dans votre niveau.

Cochez l’attribut Sheet lorsque vous souhaitez créer un plan 2D. Il vous faut pour cela créer une forme de base de type Solid et non pas de type Hollow (voir les différentes formes de base décrites plus haut dans ce chapitre). L’axe Y de cette forme de base ainsi créée sera ignoré. A noter que même si le reste de votre forme de base 3D est invisible, elle reste cependant bloquante. Cette option est très utile pour créer une surface 2D comme par exemple un tableau accroché au mur. Etant donné que l’axe Y est ignoré, la surface 2D sera toujours créée horizontalement. Il vous suffira de la faire pivoter à 90 degrés sur l’axe X et/ou Z afin d’obtenir une surface 2D verticale.

Les options Contents s’appliquent à des Brush de type Empty. Ils permettent de définir le type d’environnement contenu dans le Brush. Water est un environnement d’eau et modifiera la gravité et la vélocité des acteurs le traversant. L’environnement Lava applique les mêmes modificatifs aux acteurs mais leur inflige en plus de cela des dommages dus à cet environnement de lave. Nous verrons plus loin comment créer de nouveaux types d’environnement ou Contents.

L’option Build Quick BSP du menu Tools.

Cette option permet à World Editor de reconstruire le niveau dans la vue 3D et n’est pas à confondre avec l’option Compile qui génère le fichier BSP (le fichier binaire de votre niveau qui sera chargé par le moteur dans votre application) que nous aborderons plus loin dans ce chapitre. Si l’option Auto Rebuild BSP du menu Options (voir Le menu Option plus haut dans ce chapitre) est cochée, il n’est pas nécessaire d’utiliser Build Quick BSP, car l’éditeur le fera automatiquement pour vous lors de chaque changement que vous opérerez sur les pièces de géométrie de votre niveau. Il est cependant utile, avant de compiler votre niveau, d’en avoir un aperçu dans la vue 3D.

L’option Compile du menu Tools.

Afin de générer un fichier utilisable par Genesis3d et par votre application, vous devrez compiler votre niveau afin de générer un fichier .BSP. Ce fichier binaire contiendra toute la géométrie de votre niveau ainsi que les informations nécessaires pour l’éclairage, les entités, les modèles et les acteurs. Il est possible de compiler votre niveau de différentes façons en accord à votre objectif et aux particularités de la construction de votre niveau. Lorsque vous aurez terminé le design de votre niveau ou atteint certaines étapes vous permettant de le visualiser, vous pouvez utiliser l’option Compile du menu Tools qui vous permettra aussi de charger et de jouer votre niveau. L’option Compile fait apparaître la boite de dialogue suivante :

{short description of image}

Figure 11 - World Editor : Compiler un niveau

Le champ de saisie MAP File correspond au nom et au chemin d’accès du fichier .MAP généré pendant l’étape intermédiaire de la création du fichier .BSP. Par défaut, il porte le même nom et se trouve dans le même répertoire que le fichier .3DT de votre niveau et que le fichier .BSP qui sera généré après la compilation. Le répertoire par défaut est ‘../Genesis3D11/levels’. Il est conseillé de ne pas modifier son nom et son chemin d’accès. Néanmoins, si vous souhaitez le modifier, cliquez sur le bouton Browse afin de parcourir les répertoires de votre disque.

L’option Entities Only ne calculera que les entités. Si vous comptez créer un niveau de taille importante, il est conseillé de construire la géométrie de votre niveau sans tenir compte, dans un premier temps, des entités (modèles, lumière, acteurs, etc.) et de le compiler sans cette option. Une fois que vous avez compilé votre niveau sans cette option et obtenu un fichier .BSP ne contenant uniquement que sa géométrie, vous pourrez y ajouter les entités et le compiler de nouveau avec cette option cochée, ce qui réduira dramatiquement le temps de compilation (jusqu’à 20 fois moins). En effet, créer une ambiance lumineuse, par exemple, peut demander nombre de modifications, compilations et aperçus. N’oubliez pas que pour avoir un aperçu de votre niveau ainsi compilé, il faudra que vous ayez compilé sa géométrie dans une séquence de compilation précédente.

Si l’option Suppress Hidden Brushes est cochée, les groupes marqués non visible (voir Le panneau de contrôle Groups) ne seront pas inclus dans la compilation et dans le fichier .BSP. Cela implique toutes les pièces de géométrie et les entités de ce groupe.

Si l’option Vis Detail Brushes est cochée, le calcul de la visibilité de votre niveau (VIS) prendra en compte toutes les pièces de géométrie de type Detail (voir L’option Brush/Attributes du menu Tools). Ceci peut réduire significativement le temps de compilation, spécialement si vous avez beaucoup de pièces de géométrie de type Detail dans votre niveau. Pour une meilleure qualité, il est cependant conseillé de cocher cette option lors de la compilation finale.

L’option BSP construira la géométrie de votre niveau. Si l’option Verbose est cochée, le compilateur fournira des informations détaillées sur le progrès de la séquence de compilation dans le panneau de contrôle Console (voir Le panneau de contrôle Console). Si l’option Entity Verbose est cochée, il fournira des informations supplémentaires concernant les entités dans ce même panneau de contrôle. Cette option est indispensable afin de pouvoir visualiser votre niveau.

L’option VIS calcule la visibilité de votre niveau. Si l’option Full Vis est cochée, le compilateur effectuera un calcul de visibilité total. Si elle est décochée, le calcul de visibilité est moins efficace mais accélérera sensiblement le temps de compilation. Si l’option Verbose est cochée, le compilateur fournira des informations détaillées sur le calcul de la visibilité dans le panneau de contrôle Console (voir Le panneau de contrôle Console). Cette option est indispensable afin de pouvoir visualiser votre niveau si vous cochez l’option Light.

L’option Light calcule les effets de lumière de votre niveau. Si cette option n’est pas cochée, votre niveau sera complètement obscur. Cette option doit être combinée avec l’option Vis, sans quoi le compilateur générera une erreur.

L’option Radiosity effectue un calcul approfondi de la réflexion de la lumière après que la lumière de base soit calculée. Cette option augmente significativement le temps de compilation. Il est donc conseillé de faire ce calcul de la lumière lors de la compilation finale.

Si l’option Extra Samples est cochée, les effets de lumière seront beaucoup plus réalistes au détriment du temps de compilation. Il est aussi conseillé de ne pas utiliser cette option avant la compilation finale.

L’option Fast Patch optimise le temps de compilation lors du calcul de la lumière. Si vous travailler sur un large niveau et que vous éprouvez un délai important lors de la compilation, cochez cette option pour en accélérer le processus.

Light Scale est un multiplicateur de l’intensité de la lumière agissant sur l’intégralité de votre niveau. Plus sa valeur est importante, plus votre niveau sera lumineux.

Reflect Scale est un multiplicateur agissant sur la réflexivité de la lumière dans l’ensemble de votre niveau. En augmentant sa valeur, votre niveau sera plus lumineux et coloré.

Bounce Limit correspond au nombre de fois que le compilateur calculera la réflexivité des faisceaux lumineux. Plus sa valeur est élevée, plus les effets de lumière seront réalistes. Cette option est néanmoins coûteuse en temps de compilation.

Patch Size défini la taille de la grille utilisée lors de l’application de la réflexivité de la lumière sur les surfaces. Une valeur faible augmente la qualité de la projection de la lumière au détriment du temps de compilation ainsi que de l’espace mémoire nécessaire. Si votre ordinateur n’a pas une quantité de mémoire libre suffisante, il utilisera de l’espace disque, ce qui rend l’opération de compilation très lourde avec des accès disque importants.

Default Light Level (RGB) éclaire tout votre niveau de manière uniforme en utilisant une valeur RGB (RVB ou Rouge, Vert, Bleu). Ces valeurs varient de 0.00 à 255.00 où 0.00 est la valeur la plus sombre et 255.00 est la valeur la plus claire. Ce type d’éclairage peut être combiné avec des éclairages locaux provenant d’entités.

Si cette option est cochée, Preview vous permettra de visualiser et de jouer votre niveau en utilisant GTEST.EXE après avoir complété la compilation.

L’option Scale World du menu Tools.

Cette option vous permet de dimensionner tout votre niveau en y appliquant un facteur de taille exprimé en virgule flottante. Si vous souhaitez rétrécir votre niveau de moitié, appliquez un facteur de 0.5. Si vous le voulez 3 fois plus grand, entrez une valeur de 3.

L’option Texture Scale du menu Tools.

L’option Texture Scale vous permet de dimensionner les textures de la pièce de géométrie ou des pièces de géométrie sélectionnées. Comme pour l’option Scale World, il vous suffit d’entrer un facteur de taille en virgule flottante.

L’option Next Brush/Face du menu Tools.

Cette option sélectionne la prochaine pièce de géométrie si vous êtes en Mode Brush ou la prochaine face si vous êtes en Mode Face. La touche de clavier touche à droite a la même fonction que cette option.

L’option Prev Brush/Face du menu Tools.

Cette option sélectionne la pièce de géométrie précédente si vous êtes en Mode Brush ou la face précédente si vous êtes en Mode Face. La touche de clavier touche à gauche a la même fonction que cette option.

L’option Add Template du menu Tools.

Une fois que vous avez sélectionné une forme de base ou une entité dans le panneau de contrôle Template, vous devez utiliser cette option afin de l’intégrer à votre niveau. La touche de raccourci est la touche de clavier Entrée.

L’option Toggle Brush/Face Mode du menu Tools.

Cette option vous permet de passer d’un mode à l’autre entre le mode Brush et le mode Face. La touche de clavier Page Down (Page Suivante) en fait de même.

 

 

 

Le menu Group

L’option Add Selected To Group vous permet d’ajouter l’objet couramment sélectionné (entité ou pièce de géométrie) au Group actuellement actif (Voir Le Panneau de Contrôle Groups plus loin dans ce chapitre). Vous pouvez aussi sélectionner plusieurs objets dans une des vues en maintenant la touche de clavier Contrôle (Ctrl) ou en les sélectionnant à partir d’un autre groupe afin de les ajouter au groupe courant. L’intérêt de diviser votre niveau en plusieurs groupes se fera sentir lorsque votre niveau commencera à prendre de l’importance. Il est conseillé de commencer à créer des groupes dès le début du design de votre niveau. Vous pouvez par exemple définir un groupe par salle ou par parties significatives de votre niveau ou même par type d’objet.

Lorsque le groupe sélectionné n’est pas le groupe Default, l’option Remove Selected From Group est disponible. Cette option déplace les objets sélectionnés vers le groupe Default (Voir Le Panneau de Contrôle Groups plus loin dans ce chapitre). Un niveau contient au moins le groupe Default qui en aucun cas ne peut être effacé ou renommé.

L’option Create New Group crée un nouveau groupe auquel vous devez donner un nom. Si lors de la création d’un nouveau groupe, des objets sont sélectionnés, ils seront inclus par défaut dans celui-ci.

 

 

 

Le menu Entities

L’option Entity Editor du menu Entities.

Figure 12 - World Editor : L’éditeur d’entité

Cette option vous permet d’éditer et de modifier les divers paramètres des entités présentes dans votre niveau. Lorsque vous cliquez cette option et qu’une entité est sélectionnée, la boite de dialogue ci-dessus s’ouvre automatiquement sur les paramètres de cette dernière. Si plusieurs entités sont sélectionnées, elles doivent être du même type (par exemple, 3 entités Light seraient sélectionnées) afin que l’option Entity Editor y affiche leurs paramètres dans la boite de dialogue. Le menu déroulant dans la partie supérieure de la boite de dialogue vous permet de sélectionner l’entité dont vous souhaitez éditer les paramètres dans la liste au-dessous de celui-ci. Chaque type d’entité possède son propre jeu de paramètres.

 

L’entité BlockActor

L’entité BlockActor sert à bloquer le passage des acteurs Bot (acteurs contrôlés par l’ordinateur), ce qui vous permet de les empêcher d’atteindre certaines parties de votre niveau. Pour ce faire, il vous suffit, par exemple, de créer une pièce de géométrie de type Hint (transparente et non bloquante), de l’intégrer dans un modèle créé spécialement pour cette occasion (voir Le Panneau de Contrôle Models plus loin dans ce chapitre) et d’attacher ce modèle à l’entité BlockActor. Les acteurs Bot ne pourront passer au travers mais pourront quand même tirer.

Les paramètres de cette entité sont :

Model qui correspond au nom du modèle à attacher. Double-cliquez sur le champ Model afin de sélectionner le modèle que vous souhaitez attacher à l’entité BlockActor. Vous aurez précédemment inclus dans le modèle la pièce de géométrie servant à bloquer le passage des acteurs Bot.

Position représente les coordonnées de l’entité sur les axes X, Y et Z dans votre niveau.

 

L’entité BotActorStart

Cette entité vous permet d’intégrer des acteurs Bot dans votre niveau. Une entité BotActorStart créé un acteur Bot. Par défaut dans le programme Gtest qui vous permet de visualiser votre niveau, un acteur BotActorStart reste immobile tant que le joueur ne rentre pas dans une zone ou il peut être vu par le Bot. Au moment où l’acteur Bot l’aperçoit, soit il l’attaquera, soit il tentera de fuir s’il se sent en position d’infériorité. Dans votre application, vous pourrez développer ce que l’on appelle l’AI du Bot (Artificial Intelligence) afin de modifier son comportement en accord avec les objectifs de votre concept de jeu. Par exemple, un acteur Bot peut être un allié, un acteur passif, un ennemi… etc.

Les paramètres de l’entité BotActorStart :

IgnoreTurrets était à l’origine sensé permettre à un acteur Bot d’ignorer les acteurs de type Turrets (Tourelle à canon) en le mettant à la valeur True (Vrai). Les acteurs Turrets n’ont finalement pas été pleinement implantés dans Genesis3D, ce qui fait que ce paramètre n’a pas d’effet dans la version actuelle. Vous avez néanmoins la possibilité de les implanter, ce qui vous permettrai d’utiliser ce paramètre.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

Respawn permet à l’acteur Bot, lorsque vous le passez à True, de revenir à la vie s’il est tué.

SkillLevel représente le niveau de compétence de l’acteur Bot. Il est compris entre les valeurs 1 à 4. Il vous suffit de récupérer cette valeur dans votre application pour modifier les caractéristiques de votre acteur Bot en rapport à son SkillLevel.

 

L’entité BotMatchStart

Cette entité est similaire à l’entité BotActorStart. Elle est plutôt utilisée dans un concept de jeu que l’on appelle Match, où le but est de gagner la partie contre un jeu d’acteurs (Bots ou autres joueurs). Une entité BotMatchStart dans votre niveau peut représenter plusieurs acteurs Bot. Par défaut, le programme Gtest qui vous sert à visualiser votre niveau, chargera 4 acteurs Bot à l’endroit où il trouvera l’entité BotMatchStart. Si votre niveau contient plusieurs entités BotMatchStart, Gtest ne chargera toujours qu’un total de 4 acteurs Bot qui apparaîtront dans votre niveau sur les entités BotMatchStart que vous aurez placé. Si vous placez 4 BotMatchStart, chacun des 4 Bot apparaîtra à une position différente. Dans votre application, vous pourrez changer le nombre d’acteurs Bot à charger.

Origin est le seul paramètre de l’entité BotMatchStart, qui par défaut revient à la vie après avoir été tué. Vous pourrez modifier son comportement dans votre application.

 

L’entité Camera

Cette entité ne peut être créée ou modifiée. Elle sert à positionner le champ de vision dans la vue 3D. Elle peut être cachée comme nous le verrons plus loin dans L’option Visibility.

 

L’entité ChangeLevel

La plupart des jeux vidéo 3D sont composés de plusieurs niveaux et cette entité permet au joueur de passer d’un niveau à un autre. Elle est attachée à un modèle lié à une pièce de géométrie. Afin de déclencher le changement de niveau, le joueur doit marcher sur cette pièce de géométrie. Celle-ci doit donc être horizontale comme une dalle sur le sol ou une marche d’escalier. Par exemple, elle ne peut correspondre à une porte puisque le joueur doit marcher dessus. Le moteur chargera alors le niveau spécifié dans le paramètre LevelName.

LevelName défini le nom du nouveau niveau à charger. Ce nom de niveau doit correspondre à un fichier de type .BSP, par exemple NIVEAU2.BSP.

Model correspond au nom du modèle à attacher. Double-cliquez sur le champ Model afin de sélectionner le modèle que vous souhaitez attacher à l’entité ChangeLevel. Vous aurez précédemment inclus dans le modèle, la pièce de géométrie sur laquelle le joueur doit marcher afin de déclencher le changement de niveau.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité Corona

Cette entité créée un halo de lumière. Elle donne un effet très réaliste sur une lumière directe de type spot, par exemple.

AllowRotation est une valeur booléenne (0 ou 1) qui est sensée, lorsque mise à 1, faire suivre à l’entité la rotation du modèle auquel elle est attachée. Elle n’est cependant pas pleinement implantée dans la version courante de Genesis3D.

Color défini la couleur en RVB (Rouge, Vert, Bleu) de l’entité. Ces valeurs entières varient de 0 à 255.

FadeOut est une valeur booléenne, 0 ou 1. Lorsque l’entité se trouve à la distance de visibilité maximale (voir le paramètre MaxVisibleDistance) ou au-delà, et que cette valeur est mise à 0, l’entité disparaît brutalement. Si elle est mise à 1, vous pourrez observer un effet de "fondu".

MaxRadius correspond au rayon maximal du halo de lumière ou plus précisément à sa taille maximale qui est relative à la distance où se trouve la caméra.

MaxRadiusDistance représente la distance en texels entre la caméra et l’entité où le halo de lumière atteint sa taille maximale (voir le paramètre MaxRadius).

MaxVisibleDistance est la distance en texels entre la caméra et l’entité à partir duquel le halo de lumière disparaît (voir le paramètre FadeOut).

MinRadius défini la taille minimum du rayon du halo de lumière. Cette taille est relative à la distance entre la caméra et l’entité.

MinRadiusDistance représente la distance en texels entre la caméra et l’entité où le halo de lumière atteint sa taille minimale (voir le paramètre MinRadius).

Model vous permet de spécifier à quel modèle vous souhaitez attacher cette entité. Par exemple, si vous voulez attacher un halo de lumière à un ascenseur afin que le halo suive son mouvement ascendant ou descendant.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité DeathMatchStart

Cette entité représente le joueur lui-même. Afin de pouvoir charger un niveau dans votre application ou dans le programme de test Gtest, il est absolument nécessaire que cette entité soit présente. Sans cette entité, Gtest retournera avec une erreur sans charger votre niveau.

Origin est le seul paramètre de l’entité DeathMatchStart et représente la position de départ du joueur dans votre niveau sur les axes X, Y et Z.

 

L’entité Door

Cette entité est utilisée pour créer des portes auxquelles on attache une séquence d’animation pour l’ouverture et la fermeture. Le principe de base est de créer une pièce de géométrie solide que l’on définit de type Area (voir l’option Brush|Attributes du menu Tools). On crée ensuite une séquence d’animation en utilisant un modèle que l’on attache à cette entité.

Model représente le nom du modèle contenant la pièce de géométrie de la porte et sa séquence d’animation.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité DynamicLight

Cette entité permet de créer des lumières dynamiques comme par exemple un stroboscope ou un effet de défaillance électrique faisant clignoter la lumière.

AllowRotation est une valeur booléenne (0 ou 1) qui est sensée, lorsque mise à 1, faire suivre à l’entité la rotation du modèle auquel elle est attachée. Elle n’est cependant pas pleinement implantée dans la version courante de Genesis3D.

Color défini la couleur en RVB (Rouge, Vert, Bleu) de l’entité. Ces valeurs entières varient de 0 à 255.

InterpolateValues est une valeur booléenne qui, lorsqu’elle est mise à 1, permet à l’entité d’interpoler l’intensité lumineuse entre les valeurs du paramètre RaduisFunction. Par exemple, avec une lumière dynamique de type stroboscopique, vous obtiendrez un effet de fondu entre chaque changement d’intensité si vous mettez ce paramètre à 1, alors que la variation d’intensité sera brutale si vous le mettez à 0.

MaxRadius correspond au rayon maximal affecté par la lumière dynamique, avec pour centre l’origine de l’entité.

MinRadius correspond au rayon minimal affecté par la lumière dynamique, avec pour centre l’origine de l’entité.

Model vous permet de spécifier à quel modèle vous souhaitez attacher cette entité. Par exemple, si vous voulez attacher une lumière dynamique à un ascenseur afin qu’elle suive son mouvement ascendant ou descendant.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

RadiusFunction correspond à une chaîne de caractères alphabétique où chaque élément représente un changement de luminosité comparé au précédant. Par exemple, la chaîne de caractères ‘aaaffjjsshhhtrvzz’, où la valeur ‘a’ correspond à la valeur du paramètre MinRadius, ‘z’ à la valeur de MaxRadius et toutes les autres aux valeurs intermédiaires. Si le paramètre InterpolateValues est mis à 1, le moteur interpolera l’intensité lumineuse entre chaque valeur de la chaîne de caractères du paramètre RadiusFunction. Dans le cas contraire, InterpolateValues à 0, il passera brutalement à la valeur suivante.

RadiusSpeed détermine la durée en secondes de la séquence lumineuse définie dans le paramètre RadiusFunction. Par exemple, une valeur de 3.5 jouera la séquence lumineuse définie dans RadiusFunction en 3 secondes et demi.

 

L’entité ElectricBolt

Cette entité créée un arc électrique à décharges continues ou intermittentes. Vous devez inclure une entité ElectricBoltTerminus dans votre niveau, et l’y attacher en utilisant le paramètre Terminus, faute de quoi votre niveau ne se chargera pas.

Color défini la couleur en RVB (Rouge, Vert, Bleu) de l’arc électrique. Ces valeurs entières varient de 0 à 255.

DominantColor spécifie la couleur dominante de l’arc électrique. Cette valeur est comprise entre 0 et 2. 0=rouge, 1=vert et 2=bleu.

Intermittent est une valeur booléenne (0 ou 1) qui définie si la décharge électrique est continue ou intermittente. Si elle est mise à 0, la décharge électrique sera continue. Si elle est mise à 1, elle variera dans le temps entre les valeurs définies dans les paramètres MaxFrequency et MinFrequency.

MaxFrequency correspond au temps maximum écoulé, en secondes, entre chaque décharge électrique lorsque le paramètre Intermittent est mis à 1.

MinFrequency correspond au temps minimum écoulé, en secondes, entre chaque décharge électrique lorsque le paramètre Intermittent est mis à 1.

NumPoints représente le nombre de points finissant chaque secteur de l’arc électrique et doit être un entier puissance de 2 (il est conseillé d’utiliser les valeurs 32, 64 ou 128). Par exemple, une valeur de 64 créera un arc électrique de 64 secteurs.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

Terminus correspond au nom de l’entité ElectricBoltTerminus qui représente la fin de l’arc électrique. Cette entité doit être présente dans votre niveau si vous souhaitez utiliser une entité ElectricBolt.

Width défini l’épaisseur de l’arc électrique exprimée en texels. La valeur par défaut est 8.

Wildness spécifie le degré de frénésie de l’arc électrique. Cette valeur exprimée en virgule flottante varie de 0.0 à 1.0.

 

L’entité ElectricBoltTerminus

Cette entité doit être présente dans votre niveau si vous y avez ajouté une entité ElectricBolt et doit y être attachée. Pour plus de détails, voir l’entité ElectricBolt.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité FogLight

Cette entité est une lumière qui simule un effet de brouillard. Selon la taille de votre niveau, cette entité peut être coûteuse en performance.

Brightness représente l’intensité de votre brouillard. Plus cette valeur est élevée, plus le brouillard paraîtra opaque.

Color défini la couleur en RVB (Rouge, Vert, Bleu) du brouillard. Ces valeurs entières varient de 0 à 255.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

Radius correspond au rayon en texels de la surface que couvre votre brouillard.

 

L’entité ForceField

Cette entité est sensée appliquer une force sur les ‘PhysicsObject’, comme par exemple faire tourner une roue, mais semble ne pas avoir été pleinement implantée dans Genesis3D (Gtest). Jusqu’à présent, personne n’a pu la faire fonctionner avec succès dans un niveau. Nous donnons cependant la liste des paramètres de cette entité.

AffectsPhysicsObjects est une variable booléenne (1 ou 0). La mise à 1 de cette valeur permet à l’entité d’appliquer une force sur un PhysicsObject.

AffectsPlayers est aussi une valeur booléenne (1 ou 0). Si cette valeur est mise à 1, la force s’applique aussi au joueur.

FalloffType est défini dans le code source de Gtest et peut être mis à une des valeurs suivantes :

0 : FALLOFF_NONE = (forceMultiplier = 1.f)

1 : FALLOFF_ONE_OVER_D = (forceMultiplier = 1 / distToFFCenter)

2 : FALLOFF_ONE_OVER_DSQUARED = (forceMultiplier = 1 / (distToFFCenter * distToFFCenter))

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

Radius correspond au rayon en texels qu’affecte le ForceField.

Strength est la valeur qui défini la force à appliquer.

 

L’entité ItemArmor

Cette entité créée une armure que le joueur peut prendre et utiliser et qui lui donne, dans Gtest, une valeur d’armure de 100. Par défaut, elle réapparaît un moment plus tard après avoir été prise (respawn). Dans Gtest, il s’agit de charger un acteur que vous trouverez dans le répertoire ‘..\Genesis3d11\actors\armor.act’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité ItemGrenade

Cette entité créée un lance-grenades que le joueur peut prendre et qui lui permet, dans Gtest, d’utiliser des grenades (l’entité ItemGrenadeAmmo). Par défaut, elle réapparaît un moment plus tard après avoir été prise (respawn). Dans Gtest, il s’agit de charger un acteur que vous trouverez dans le répertoire ‘..\Genesis3d11\actors\glaunch.act’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité ItemGrenadeAmmo

Cette entité créée un groupe de 5 grenades que le joueur peut prendre et qui lui permet, dans Gtest, d’utiliser l’entité lance-grenades (ItemGrenade). Par défaut, elle réapparaît un moment plus tard après avoir été prise (respawn). Dans Gtest, il s’agit de charger un acteur que vous trouverez dans le répertoire ‘..\Genesis3d11\actors\grenade.act’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité ItemHealth

Cette entité créée un kit médical que le joueur peut prendre et qui lui permet, dans Gtest, de regagner 25 points de santé (Health) jusqu’à son maximum qui est de 100. Par défaut, elle réapparaît un moment plus tard après avoir été prise (respawn). Dans Gtest, il s’agit de charger un acteur que vous trouverez dans le répertoire ‘..\Genesis3d11\actors\medkit.act’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité ItemRocket

Cette entité créée un lance-roquettes que le joueur peut prendre et qui lui permet, dans Gtest, d’utiliser des roquettes (l’entité ItemRocketAmmo). Par défaut, elle réapparaît un moment plus tard après avoir été prise (respawn). Dans Gtest, il s’agit de charger un acteur que vous trouverez dans le répertoire ‘..\Genesis3d11\actors\rlaunch.act’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité ItemRocketAmmo

Cette entité créée un groupe de 5 roquettes que le joueur peut prendre et qui lui permet, dans Gtest, d’utiliser l’entité lance-roquettes (ItemRocket). Par défaut, elle réapparaît un moment plus tard après avoir été prise (respawn). Dans Gtest, il s’agit de charger un acteur que vous trouverez dans le répertoire ‘..\Genesis3d11\actors\rocket.act’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité ItemShredder

Cette entité créée une mitrailleuse que le joueur peut prendre et qui lui permet, dans Gtest, d’utiliser des munitions pour mitrailleuse (l’entité ItemShredderAmmo). Par défaut, elle réapparaît un moment plus tard après avoir été prise (respawn). Dans Gtest, il s’agit de charger un acteur que vous trouverez dans le répertoire ‘..\Genesis3d11\actors\shredder.act’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité ItemShredderAmmo

Cette entité créée un chargeur de 50 balles pour mitrailleuse que le joueur peut prendre et qui lui permet, dans Gtest, d’utiliser l’entité mitrailleuse (ItemShredder). Par défaut, elle réapparaît un moment plus tard après avoir été prise (respawn). Dans Gtest, il s’agit de charger un acteur que vous trouverez dans le répertoire ‘..\Genesis3d11\actors\sammo.act’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité Light

Cette entité créée une lumière simple dont vous pouvez définir la couleur et qui contient quelques séquences prédéfinis.

Color défini la couleur en RVB (Rouge, Vert, Bleu) du brouillard. Ces valeurs entières varient de 0 à 255.

Light correspond au rayon en texels éclairé par la lumière.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

Style est un groupe de séquences lumineuses prédéfinis afin de créer des effets stroboscopiques ou de défaillance électrique de la même manière que nous le soulignions dans le paramètre RadiusFunction de l’entité DynamicLight. Sa valeur est comprise entre 0 et 11 et correspond, dans Gtest, aux séquences lumineuses suivantes (a savoir que ‘a’ est la valeur la plus sombre et ‘z’ la plus claire) :

0 = "z" (valeur par défaut d’une lumière normale).

1 = "mmnmmommommnonmmonqnmmo".

2 = "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba".

3 = "mmmmmaaaaammmmmaaaaaabcdefgabcdefg".

4 = "mamamamamama".

5 = "jklmnopqrstuvwxyzyxwvutsrqponmlkj".

6 = "nmonqnmomnmomomno".

7 = "mmmaaaabcdefgmmmmaaaammmaamm".

8 = "mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa".

9 = "aaaaaaaazzzzzzzz".

10 = "mmamammmmammamamaaamammma".

11 = "abcdefghijklmnopqrrqponmlkjihgfedcba".

 

L’entité ModelController

Cette entité sert à faire jouer la séquence d’animation d’un modèle automatiquement, comme par exemple une roue qui tournerai en permanence. Il est à noter que vous ne pouvez pas combiner un ModelController avec un PhysicsObject.

Model correspond au nom du modèle qui contient la séquence à actionner.

 

L’entité ModelOrigin

Cette entité n’a pas été implantée dans Genesis3D. Elle n’a aucun effet et aucun paramètre.

 

L’entité MovingPlat

Cette entité déclenche la séquence du modèle attaché lorsque le joueur ou un autre Bot se place dessus. Elle est typiquement utilisée pour créer des ascenseurs ou des plates-formes qui se déplacent verticalement ou horizontalement.

Model correspond au nom du modèle qui contient la séquence à actionner.

Origin représente la position de l’entité dans votre niveau en X, Y et Z.

 

L’entité PathPoint

Ces entités servent à définir le chemin que doivent suivre les Bots et les actions à entreprendre. Un chemin peut être défini par une ou plusieurs entités PathPoint liées entre elle et déterminant l’action ou les actions à entreprendre à chaque pas. Uniquement le premier PathPoint d’un Path doit avoir un PathType (voir plus loin). Les autres PathPoint du Path auront un PathType d’une valeur de –1. Dans la table du paramètre ActionType (voir plus loin), les actions marquées d’une étoile * ne sont pas pleinement implantées dans Gtest.

ActionType permet de définir une action que le Bot doit entreprendre lorsqu’il atteint ce point du PathPoint. La valeur par défaut est –1 qui signifie NULL. Ci-dessous est la description des différentes valeurs de ce paramètre.

 

 

 

 

 

-1

NULL

Aucune action définie. Le Bot recherchera le prochain PathPoint.

1

JUMP

Le Bot sautera lorsqu’il atteindra ce point. Le paramètre VelocityScale (voir plus loin) par défaut est de 0.5.

2

WAIT_POINT_DIST

Le Bot attendra que le WatchPoint (voir plus loin) soit visible. Cette valeur utilise les paramètres Dist et Time (voir plus loin) et met Time à 20 secondes (Timeout).

3

ROCKET_JUMP

Le Bot effectuera un saut d’une vélocité équivalente à une poussée générée par l’explosion d’une roquette. Le prochain PathPoint détermine la direction du saut. Le paramètre VelocityScale (voir plus loin) par défaut est de 3.

4

WAIT_FOR_PLAYER

Le Bot attendra à la position du PathPoint que le joueur entre dans son champ de vision pendant une durée de 20 secondes par défaut. Cette action est affectée par le paramètre Time (voir plus loin).

5

WAIT_POINT_VISIBLE

Défini le temps écoulé avant que ce WatchPoint ne devienne visible (voir l’action WAIT_POINT_DIST). Par défaut, cette action à une durée de 5 secondes.

6

LOOK_FOR_ITEMS

En atteignant cette position, le Bot cherchera les objets visibles autour de lui (armement, santé, …etc.).

7

BLASTER_JUMP

Cette action est identique à ROCKET_JUMP à ceci près que le Bot effectuera un saut d’une vélocité équivalente à une poussée générée par l’explosion d’un Blaster (arme de base dans Gtest).

20

* SHOOT_BLASTER

Le Bot tirera sur cette position le nombre de fois définies dans le paramètre ShootTimes. Cette action sera utilisée pour déclencher un mécanisme où l’on doit tirer dessus plutôt que pour attaquer un autre joueur. Elle utilise les paramètres WatchPoint et ShootTimes.

21

* SHOOT_GRENADE

Identique à SHOOT_BLATER.

22

* SHOOT_ROCKET

Identique à SHOOT_BLATER.

23

* SHOOT_SHREDDER

Identique à SHOOT_BLATER.

 

 

Direction sert à définir quelle direction le Bot doit prendre en atteignant ce PathPoint si la direction donnée n’est pas en contradiction avec le type de Path. La valeur 1 correspond à "en avant", -1 "en arrière" et 0 "n’importe direction". Par exemple, quelles que soient les circonstances, vous pouvez forcer un Bot à aller de l’avant avec 1 ou l’autoriser à rebrousser chemin avec 0 si cette action ne rentre pas en contradiction avec le Path.

Dist défini une valeur en texels. Il peut être utilisé avec l’action WAIT_POINT_DIST du paramètre ActioType.

MoveWithModel vous permet d’attacher le PathPoint à un model comme un ascenseur, afin qu’il se déplace avec lui.

Next point sur le prochain PathPoint dans la chaîne du Path.

Origin représente la position du PathPoint dans votre niveau en X, Y et Z.

PathType défini le type du Path et ce qu’il est sensé accomplir de manière générale. Il aidera les Bots à prendre des décisions. Seul le premier PathPoint d’un Path doit avoir un PathType. Les autres PathPoint du Path doivent être mis à –1. Le tableau suivant décris les valeurs passées à PathType.

 

 

#

Nom

Description

Direction

-1

NULL

Tous les points du Path après le premier seront mis à cette valeur.

NULL

1

UP

Déplace le Bot vers le haut.

Unidirectionnel

2

DOWN

Déplace le Bot vers le bas.

Unidirectionnel

3

ELEVATOR_UP

Déplace le Bot vers le haut par le moyen d’un ascenseur.

Unidirectionnel

4

ELEVATOR_DOWN

Déplace le Bot vers le bas par le moyen d’un ascenseur.

Unidirectionnel

5

MOVING_PLAT

Déplace le Bot par le moyen d’une plate-forme. Peut avoir à attendre la plate-forme.

Unidirectionnel

6

SCAN_PATH

Se déplace sur ce point pour chercher un autre Path.