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.

Unidirectionnel et PathPoint unique

7

HIDE

Se déplace sur ce point et attend le joueur.

Bidirectionnel

8

EXIT

Indique qu’il y a une sortie dans le cas d’une pièce complexe. Pour les portes, il est préférable d’utiliser TRAVERSE_DOOR.

Bidirectionnel

9

SCAN_HEALTH

Le bot peut voir les acteurs armes, munitions et santé à partir de ce point.

Bidirectionnel ou PathPoint unique

10

TRAVERSE

Passer les obstacles. Le Bot ne bougera pas excessivement vers le haut ou le bas.

Bidirectionnel

11

SCAN_LOOP

Le Bot courra en cercle autour de cette boucle afin de trouver le joueur.

Boucle

12

SCAN_WEAPON_AMMO

Le bot peut voir les acteurs armes et munitions à partir de ce point.

Bidirectionnel ou PathPoint unique

13

TRAVERSE_DOOR

Afin de passer une porte, il est nécessaire de mettre un Point de chaque coté de la porte et de les lier. N’ajoutez aucun autre point dans ce Path, seulement les deux permettant de passer la porte.

Bidirectionnel

 

ShootTimes est une valeur qui défini le nombre de fois qu’un Bot, en atteignant ce point, tirera sur le PathPoint défini dans le paramètre WatchPoint (voir plus loin).

Time est le paramètre utilisé dans l’ActionType (voir plus haut) WAIT_FOR_PLAYER. Il représente une valeur en secondes.

VelocityScale est le paramètre utilisé dans les ActionType (voir plus haut) JUMP, ROCKET_JUMP et BLASTER_JUMP.

WatchPoint pointe sur le point du Path sur lequel le Bot tirera lorsqu’il rencontrera une action WAIT_POINT_VISIBLE, SHOOT_BLASTER, SHOOT_GRENADE, SHOOT_ROCKET ou SHOOT_SHREDDER décris dans le paramètre ActionType (voir plus haut). Il est aussi utilisé pour calculer la distance et la visibilité d’un point.

 

L’entité PhysicalSystem

Cette entité déclare un système de physique. Un système de physique permet à des pièces de géométrie de réagir à une poussée ou à un choc selon les lois de la physique. Plus concrètement, cette entité permet de créer par exemple un pendule accroché au plafond, et qui réagi lorsqu’on le pousse ou que l’on tire dessus, et se balance selon sa masse. Il réagira aussi à la gravité et à son inertie, et arrêtera de se balancer au bout d’un moment.

JointListHeadPtr pointe sur le premier PhysicsJoint (voir plus bas) de l’ensemble représentant les pièces de géométrie que l’on veut affecter par le système de physique.

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

physicsObjectListHeadPtr pointe sur le premier PhysicsObject (voir plus bas) de l’ensemble représentant les pièces de géométrie que l’on veut affecter par le système de physique.

 

L’entité PhysicsJoint

Cette entité lie 2 PhysicsObject (voir plus loin) entre eux ou un PhysicsObject à une pièce de géométrie fixe. Par exemple, dans le cadre d’un pendule accroché au plafond, elle liera le bras du pendule au plafond afin que celui-ci puisse se balancer.

assemblyRate permet de définir si l’attachement entre 2 PhysicsObject ou entre un PhysicsObject et une pièce de géométrie est plus ou moins important. Il est conseillé d’utiliser une valeur de 0.01. Si vous entrez une valeur importante (1 ou plus) le PhysicsObject tombera.

jointType est une valeur booléenne. Passez cette valeur à 0 si vous souhaitez attacher un PhysicsObject à une pièce de géométrie (dans l’exemple du pendule, le PhysicsObject, accroché au plafond, la pièce de géométrie). Mettez cette valeur à 1 pour lier 2 PhysicsObject entre eux. IMPORTANT : Si cette valeur ne correspond pas au type d’objet à lier, Gtest peut s’arrêter avant d’avoir chargé votre niveau ou vous pourrez noter d’étranges réactions avec votre système de physique.

Next correspond au prochain PhysicsJoint dans votre système de physique. L’ordre dans lequel vous enchaînerez ces PhysicsObject et PhysicsJoint est important. Si vous n’avez pas d’autres PhysicsJoint, laissez cette valeur à ‘null’.

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

physicsObject1 pointe sur le premier physicsObject lié par le PhysicsJoint dans le cas d’un joint liant 2 PhysicsObject ou sur le premier PhysicsObject du système de physique dans le cas d’un joint liant un PhysicsObject à une pièce de géométrie. Dans ce dernier cas, il est à noter que le paramètre physicsObject2 doit être laissé à la valeur null.

PhysicsObject2 pointe sur le deuxième physicsObject lié par le PhysicsJoint dans le cas d’un joint liant 2 PhysicsObject. Si le PhysicsJoint lie un PhysicsObject à une pièce de géométrie, cette valeur doit être laissée à null.

PhysicsScale est un paramètre utilisé par le moteur pour tracer les vecteurs 3D relatifs au système de physique. Il n’est pas conseillé de modifier ce paramètre qui change l’échelle de ces vecteurs 3D à moins de connaître comment le moteur fonctionne au niveau des vecteurs 3D. Sa valeur par défaut est de 0.01.

 

L’entité PhysicsObject

Cette entité définie les paramètres d’un objet dans un système de physique. La pièce de géométrie utilisée pour représenter le PhysicsObject doit être attachée à un Model qui lui-même sera référencé dans le paramètre Model (voir plus loin). Il est très important de placer cette entité sur le centre de gravité de l’objet (la pièce de géométrie). A moins que vous ne désiriez créer un effet spécial, il vous faut la positionner au centre de l’objet.

angularDamping représente l’amortissement angulaire du mouvement du PhysicsObject. Sa valeur par défaut est de 0.0005. Si vous augmentez cette valeur, le PhysicsObject verra son mouvement angulaire (lorsqu’il se balance) sensiblement amorti. Afin d’obtenir un effet réaliste, il est conseillé de le modifier en accord avec le paramètre linearDamping (voir plus loin).

isAffectedByGravity est une valeur booléenne. Lorsque cette valeur est mise à 1, le PhysicsObject sera affecté par la gravité. A une valeur de 0, la gravité n’aura plus d’effet sur lui.

linearDamping représente l’amortissement linéaire du mouvement du PhysicsObject. Sa valeur par défaut est de 0.0005. Si vous augmentez cette valeur, le PhysicsObject verra son mouvement linéaire (horizontal) sensiblement amorti. Afin d’obtenir un effet réaliste, il est conseillé de le modifier en accord avec le paramètre angularDamping (voir plus haut).

mass correspond à la masse du PhysicsObject. Elle ne peut en aucun cas être inférieure à 0.1, sans quoi Gtest crachera.

Model pointe sur le model représentant le PhysicsObject auquel est attachée la pièce de géométrie.

Next correspond au prochain PhysicsObject, dans le cas d’un système de physique fait de plusieurs objets. L’ordre dans lequel vous enchaînerez ces PhysicsObject est important. Si vous n’utilisez qu’un PhysicsObject dans votre système de physique, laissez cette valeur à ‘null’.

Origin représente la position de l’entité dans votre niveau en X, Y et Z. Rappelez-vous qu’il est important que cette entité soit placée sur le centre de gravité de l’objet, à moins que vous ne désiriez créer un effet particulier.

PhysicsScale est un paramètre utilisé par le moteur pour tracer les vecteurs 3D relatifs au système de physique. Il n’est pas conseillé de modifier ce paramètre qui change l’échelle de ces vecteurs 3D à moins de connaître comment le moteur fonctionne au niveau des vecteurs 3D. Sa valeur par défaut est de 0.01.

respondsToForces est une valeur booléenne. Une valeur de 1 signifie que le PhysicsObject réagira à une force telle qu’une poussée ou un coup (tir). Mise à 0, le PhysicsObject ne bougera pas.

 

L’entité PlayerStart

Cette entité n’est pas utilisée dans Gtest. Elle est souvent confondue avec l’entité DeathMatchStart.

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

 

L’entité spotlight

Cette entité créée une lumière de type projecteur. Vous pouvez en modifier l’angle, la couleur, l’ampleur de son champ et lui passer des séquences de lumière dynamique prédéfinis.

angles détermine l’angle d’éclairage du projecteur sur les axes X, Y et Z. Afin de modifier l’angle plus aisément, sélectionnez l’entité spotlight, cliquez sur le bouton "Move/Rotate Brush", maintenez la touche de clavier "Alt" enfoncée et le bouton droit de la souris enfoncé puis déplacez la souris à droite ou à gauche dans une des vues 2D.

arc spécifie le stéradian du faisceau lumineux de l’entité spotlight en degrés. Afin de modifier l’arc plus aisément, sélectionnez l’entité spotlight, cliquez sur le bouton "Move/Rotate Brush", maintenez la touche de clavier "Shift" enfoncée et le bouton droit de la souris enfoncé puis déplacez la souris à droite ou à gauche dans une des vues 2D.

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

Light correspond à la distance en texels éclairée par le projecteur.

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’option Show du menu Entities.

Cette option est cochée par défaut. Si vous la décochez, l’éditeur ne fera pas apparaître les entités dans la vue 3D et les vues 2D. Cette fonction peut être utile lorsque vous désirez travailler sur la géométrie de votre niveau sans que les entités apparaissent.

L’option Visibility du menu Entities.

Cliquer sur cette option fera apparaître la boite de dialogue suivante :

Figure 13 - World Editor : Visibilité des Entités

Toutes les entités de base du World Editor sont listées dans cette boite de dialogue. En décochant la case devant le type de l’entité, toutes les entités de ce genre présentes dans votre niveau deviendront invisibles. Cette option a donc le même effet que l’option Show ci-dessus à part qu’elle est sélective au niveau du type de l’entité.

 

 

 

Le menu Axis

Le menu Axis présente 3 options, Lock X, Lock Y et Lock Z. Lorsque l’une ou plusieurs de ces options sont cochées, elles verrouillent leur axe respectif. Le fait de verrouiller un axe dans les vues 2D est extrêmement utile pour garder l’alignement sur l’axe verrouillé lors du déplacement d’une pièce de géométrie ou d’une entité ainsi que lorsque vous clonez un objet. Lorsque votre opération est terminée, n’oubliez pas de décocher ces options afin de pouvoir manipuler des objets librement sur les axes X, Y et Z.

 

 

Le menu Window

En plus des manipulations standards de fenêtres Windows (Cascade, Tile, Arrange Icons…), vous pouvez passer d’un niveau à un autre si plusieurs fichiers sont ouverts simultanément. Vous pouvez aussi cloner une instance d’un niveau afin de travailler sur un doublon sans perdre l’ancienne configuration en cliquant sur New Window lorsqu’un fichier est déjà ouvert.

 

 

Le menu Help

Le menu Help vous donne accès à une documentation succincte de l’utilisation de World Editor ainsi que du nom et de la version courante de l’éditeur.

 

 

 

Les barres de boutons

Les barres de boutons sont des fonctions que vous trouvez dans les menus. Elles sont ainsi présentées afin de faciliter leur accès par ces boutons de raccourci car il s’agit des fonctions de menu les plus utilisés. Certains de ces boutons sont des fonctions uniques que vous ne trouverez pas dans les menus comme dans la barre de mode et dans la barre de groupe.

Figure 14 - World Editor : Barre de d’outils

La Barre d’outils contient les boutons de fonction suivants, respectivement de la gauche vers la droite :

  • L’option New du menu File (touche de raccourci Ctrl+N).

  • L’option Open du menu File (touche de raccourci Ctrl+O).

  • L’option Save du menu File (touche de raccourci Ctrl+S).

  • L’option Lock X du menu Axis (touche de raccourci X).

  • L’option Lock Y du menu Axis (touche de raccourci Y).

  • L’option Lock Z du menu Axis (touche de raccourci Z).

  • L’option Snap to Grid du menu Options.

  • L’option Grid Settings du menu Options.

  • L’option Entity Editor du menu Entities.

  • L’option Show du menu Entities.

  • L’option Build Quick BSP du menu Tools.

  • L’option Compile du menu Tools.

 

 

 

Figure 15 - World Editor : Barre de mode

La Barre de mode contient les boutons de fonction suivants, respectivement de la gauche vers la droite :

  • L’option Camera du menu Mode (touche de raccourci C).

  • L’option Selection du menu Mode (touche de raccourci A).

  • L’option Template du menu Mode (touche de raccourci T).

  • L’option Move/Rotate du menu Mode (touche de raccourci M).

  • L’option Scale du menu Mode (touche de raccourci L).

  • L’option Shear du menu Mode (touche de raccourci R).

  • L’option Rotate 45 fait pivoter la pièce de géométrie ou l’entité sélectionnée de 45 degrés vers la droite. Elle est similaire à l’option Brush|Rotate 90 du menu Tools.

  • L’option Face/Brush Attributes correspond aux options Face|Attributes ou Brush|Attributes du menu Tools, selon le mode couramment sélectionné (Face Adjustment ou Brush Adjustment dans le menu Mode).

  • L’option Cut Brush transforme la pièce de géométrie en type Cut Brush. Cette option est équivalente à Brush|Attributes|Cut(Subtract) du menu Tools.

  • L’option Center Brush/Entity in View vous permet, en mode Template, de centrer la pièce de géométrie ou l’entité que vous vous apprêtez à créer dans la vue 2D couramment sélectionnée.

 

 

 

 

Figure 16 - World Editor : Barre de groupe

La Barre de groupe contient les boutons de fonction suivants, respectivement de la gauche vers la droite :

  • L’option All Groups rend tous les groupes définis dans le panneau de contrôle Groups (voir les panneaux de contrôle) visibles dans les vues 2D.

  • L’option Visible Groups fait apparaître dans les vues 2D tous les groupes marqués "Visible" dans le panneau de contrôle Groups (voir les panneaux de contrôle).

  • L’option Current Group n’affiche, dans les vues 2D, que le groupe couramment sélectionné dans le panneau de contrôle Groups (voir les panneaux de contrôle).

  • L’option Add Selected to Group du menu Group.

  • L’option Remove Selected from Group du menu Group.

La liste à l’extrême droite de cette barre de boutons contient le groupe couramment sélectionné ainsi que tous les groupes que vous aurez créée. Il vous suffit de sélectionner un autre groupe dans la liste pour changer de groupe courant.

 

 

 

Le Panneau de contrôle Template

Figure 17 - World Editor : Le panneau de contrôle Template.

Le panneau de contrôle Template sert à créer des pièces de géométrie ou à ajouter des entités dans votre niveau. Il est composé de deux parties.

La partie supérieure du panneau de contrôle se constitue d’un groupe de boutons qui correspondent respectivement, de la gauche vers la droite, aux options New Brush|Cube, New Brush|Spheroid, New Brush|Cylinder, New Brush|Staircase, New Brush|Arch et New Brush|Cone du menu Tools (voir les options de menu plus haut dans ce chapitre).

La partie inférieure présente une liste d’entités à sélectionner. Après avoir sélectionné l’entité voulue, il vous faut cliquer sur le bouton représentant une ampoule électrique afin de faire apparaître l’entité sur le plan de travail et presser la touche de clavier Enter afin de la valider.

 

 

 

Le Panneau de contrôle Textures

Figure 18 - World Editor : Le panneau de contrôle Textures

Le panneau de contrôle Textures montre la liste des textures disponible dans la bibliothèque de textures courante définie dans l’option Level Options|Texture Library du menu Options. La liste présente le nom des textures est affiche la texture couramment sélectionnée au-dessous de la liste. Le bouton Apply sert à appliquer cette texture sur la ou les pièces de géométrie ou faces couramment sélectionnées.

La taille en pixels de la texture sélectionnée s’affiche en bas sur le coté droit de la liste. Comme il a déjà été dit, elle sera d’une taille exprimée en puissance de 2 (32x32, 64x64, 128x128, 256x256).

 

 

 

Le Panneau de contrôle Groups

Figure 19 - World Editor : Le panneau de contrôle Groups

Le panneau de contrôle Groups vous permet de créer des groupes d’objets (pièces de géométrie et entités) afin d’organiser et de hiérarchiser votre niveau. Par exemple, vous pouvez grouper des lieux spécifiques, des pièces ou des corridors, …etc. Cela rend votre niveau modulaire et facile à travailler car vous avez la possibilité de choisir différentes couleurs pour chaque groupe et les rendre indépendamment visibles ou invisibles.

Le bouton Add to Current sert à ajouter l’objet couramment sélectionné dans le groupe actuellement actif et ne faisant pas partie de ce groupe. L’objet ainsi intégré au groupe courant sera enlevé de son groupe d’origine. Cette fonction est similaire à l’option Add Selected To Group du menu Group.

Le bouton Remove From Current enlève l’objet ou les objets couramment sélectionnés de leur groupe (si ce groupe n’est pas le groupe Default) et les place dans le groupe Default. Cette fonction est similaire à l’option Remove Selected From Group du menu Group.

Le bouton Create New crée un nouveau groupe. Si des objets sont sélectionnés lors de la création d ‘un nouveau groupe, ils lui seront automatiquement affectés. Cette fonction est similaire à l’option Create New Group du menu Group.

Le bouton Delete efface un groupe de la liste des groupes et range sont contenu dans le groupe Default. Le groupe Default ne peut être effacé de la liste des groupes.

La liste Name contient les noms des groupes de votre niveau et vous permet de passer d’un groupe à l’autre et d’afficher dans la liste Brushes/Entities son contenu. Chaque objet dans cette liste est précédé d’une lettre capitalisée et mise entre parenthèses. La lettre B signifie que l’objet est une pièce de géométrie. La lettre E défini une entité.

Le bouton Select All sélectionne tous les objets du groupe courant et le bouton Unselect All a l’effet inverse.

Le bouton Color vous permet de choisir une couleur uniforme pour tous les objets du groupe dans les vues 2D. Ceci vous permet de différencier rapidement les différents groupes de votre niveau dans les vues 2D.

La case à cocher Visible sert à rendre visible ou invisible le groupe sur le plan de travail. Ceci est particulièrement intéressant si vous travaillez sur des niveaux importants, spécialement si l’option Auto Rebuild BSP du menu Options est cochée. En effet, si tous les groupes sont visibles, la manipulation d’un tel niveau peut devenir extrêmement lourde.

 

 

 

Le Panneau de contrôle Console

Figure 20 - World Editor : Le panneau de contrôle Console

Le panneau de contrôle Console affiche un report détaillé de chaque étape lors de la compilation de votre niveau. Il vous donne d’importantes informations et vous reporte les erreurs qu’il peut rencontrer. Vous obtenez aussi les statistiques de votre niveau comme le nombre d’Areas, Portals, Lights, Brushes, …etc.

Voici une liste de quelques erreurs ou problèmes que vous pourriez rencontrer :

Message : PlaceEntities: No valid entities for operation x. (où x représente un nombre)

Raison : Il faut que vous ayez placé au moins une entité dans votre niveau avant de compiler. N’oubliez pas qu’il vous faudra une entité DeathMatchStart afin de pouvoir visualiser votre niveau.

Message : *WARNING* FillAreas_r: Area Portal touched more than 2 areas. FinishAreaPortals_r: No model for leaf. CreateAreas: FinishAreaPortals_r failed.

Raison : Vous avez défini une pièce de géométrie de type Area sans y attacher un model (voir l’entité Door, plus haut dans ce chapitre).

Message : *WARNING* FinishAreas: AreaPortal touches only one area.

Raison : La pièce de géométrie que vous utilisez comme porte et qui est définie comme Area Brush ne ferme pas complètement l’encadrement (CutBrush) et ne sépare donc pas les 2 zones.

Message : SplitBrush: Brush was not split.

Raison : Le compilateur découpe le niveau en plusieurs section lorsqu’il génère votre fichier BSP. Une ou plusieurs pièces de géométrie étaient trop petites pour être découpées et le compilateur vous le signale, même si cela n’a aucun effet sur le bon fonctionnement de votre niveau.

Message : LoadPortalFile: Max portals for temp buffers.

Raison : Vous avez dépassé le maximum de 25000 portals (ce qui est énorme). Essayez de réduire les dimensions de votre niveau, le séparer en 2 niveaux distincts ou d’utiliser plus de pièces de géométrie de type Detail.

Message : Max BSP Planes. FinishLeafSides: Could not create the plane. Could not create leaf sides.

Raison : Vous avez atteint le maximum de Planes/Polygons, ce qui signifie que votre niveau est terriblement gigantesque. Séparez-le en 2 niveaux, vérifiez que vos objets sphériques (sphère, colonnes, disques, …etc.) ne sont pas formés de trop de sections ou essayer d’utiliser des acteurs au lieu de géométrie complexes (voitures, arbres, …etc.).

Message : *WARNING* HIGH Alpha value for mirror face: 255.000000.

Raison : Ce message signifie que la valeur de transparence de la face d’une pièce de géométrie définie comme miroir est de 255. Avec une telle valeur, la face ne se comportera pas en miroir (voir l’option Face|Attributes du menu Tools, plus haut dans ce chapitre). Néanmoins, ceci n’empêchera pas votre niveau de fonctionner.

 

 

 

Le Panneau de contrôle Models

Figure 21 - World Editor : Le panneau de contrôle Models

Ce panneau de contrôle vous permet de créer des Models. Un modèle est un groupe de une ou plusieurs pièces de géométrie auquel vous attachez des paramètres afin de pouvoir par exemple programmer une séquence d’animation du modèle (voir l’entité MovingPlat, plus haut dans ce chapitre), un système de physique (voir l’entité PhysicalSystem, plus haut dans ce chapitre) ou de pouvoir y faire référence dans votre application. Par exemple, il peut être intéressant de différencier de multiples pièces de géométrie de liquides dans un niveau afin de faire la distinction entre les piscines, les fontaines ou les coulées de lave.

La liste dans la partie haute du panneau présente les modèles existants dans votre niveau ainsi que celui couramment sélectionné.

Le bouton Add Model crée un nouveau modèle auquel vous devez donner un nom. Si, lorsque vous cliquez sur ce bouton, une ou plusieurs pièces de géométrie sont sélectionnées, le modèle nouvellement créé les inclus automatiquement.

Le bouton Delete Model efface le modèle couramment sélectionné sans pour autant effacer les pièces de géométrie associées, qu’il laissera dans leur Groupe d’origine.

Le bouton Select sélectionne toutes les pièces de géométrie associées au modèle sur le plan de travail. Le bouton Deselect enlève la sélection.

Les boutons Add Brushes et Remove Brushes respectivement ajoute ou retire la ou les pièces de géométrie sélectionnées du modèle.

Le bouton Clone Model duplique le modèle et les pièces de géométrie associées.

Le bouton Set Origin défini le centre de rotation du modèle et la case à cocher Lock Origin sert à le verrouiller.

La liste dans la partie inférieure droite du panneau montre la liste chronologique des points clef de la séquence d’animation. Les points clef (Keyframe) définissent le début, la fin, les changements et les accélérations/ralentissements du mouvement du modèle. Ils sont exprimés en secondes dans un ordre chronologique. Par exemple, dans la figure 21, le premier point clef K0.00 est le point de départ de la séquence d’animation. K1.00 interviendra 1 seconde après le début de la séquence d’animation, K1.50 interviendra 1 seconde et demi après le point de départ K0.00 et non pas 1 seconde et demi après le point clef K1.00. Ce qui signifie que la durée de la séquence d’animation dans la figure 21 est de 2 secondes et non pas d’un total de 6.02 secondes.

Le bouton Anime sert à créer un point clef exprimé en secondes. Ce nouveau point clef sera classé dans la liste de manière chronologique.

Le bouton Delete Key efface de la liste le point clef couramment sélectionné.

Le bouton Edit Key vous permet de modifier l’ordre chronologique du point clef et de le déplacer en avant ou en arrière dans la liste.

 

 

 

Le Panneau de contrôle Sky

Figure 22 - World Editor : Le panneau de contrôle Sky

Le panneau de contrôle Sky affiche un ciel en rotation sur les faces de pièces de géométrie définies comme Sky dans la boite de dialogue Face Attributes (voir l’option Face|Attributes du menu Tools plus haut dans ce chapitre). Le ciel est un cube dont les six faces contiennent les textures définies dans les listes Left, Right, Top, Bottom, Front et Back (respectivement gauche, droite, haut, bas, devant et derrière). Chaque face doit être cochée afin d’être active. Le cube se mettra en rotation sur l’axe défini dans la section Rotation Axis à la vitesse correspondant à la valeur entrée dans le champ de saisie Rotation Speed et exprimée en degré par seconde. Les textures peuvent être dimensionnées dans la section Texture Scale.

 

 

 

La barre de Statut

Figure 23 - World Editor : La barre de statut

La barre de statut contient les informations suivantes, respectivement de la gauche vers la droite :

  • Le mode d’ajustement courant, BRUSHMODE (mode brush) ou FACEMODE (mode face) ainsi que le nombre d’entités et de pièces de géométrie sélectionnées.

  • Les coordonnées courantes de la position de la souris en X, Y et Z dans la vue 2D.

  • Le nom de la pièce de géométrie ou de l’entité au-dessus de laquelle le curseur de la souris passe.

  • La taille en texels d’une unité de la grille (carreau).

  • La taille en texels du Grid Snap (voir les options Snap to Grid et Grid Settings du menu Options, plus haut dans ce chapitre).

 

 

 




Vos questions techniques :Le Forum C/C++ - Publiez vos avis, liens, cours & articles : Publication
et rejoignez-nous dans l'équipe de rédaction de l'Association d'entraide des développeurs Francophones
Copyright 2000, 2001 www.developpez.com
Hit-Parade