Documentation - Le mode MDK

Nombre de membres 


Le mode MDK

3 - Ent Editor  -  par FSMOD

La Fonction Ent Editor

https://www.gif-maniac.com/gifs/54/53556.gif Cette fonction est exclusivement réservée au manager d'un serveur (Sysop)    

b_list.gif    GENERALITES  

Le mode MDK a la particularité d'intégrer une fonction dédiée à la conception de fichier en extension ent. Le fichier ent est associé à une map, il porte le même nom et a le pouvoir de modifier certains éléments de cette map comme les coordonnées et le nombre des points de respawn. Il permet aussi d'ajouter de la végétation, des édifices, des accessoires divers, des points de récupération d'armes et de munitions et d'autres concepts plus élaborés. Il est intégré au serveur et le joueur lambda n'a pas à se soucier de sa gestion.

Serveur et client possèdent par défaut la même map originelle et toutes les données contenues dans le fichier ent sont transmises au client lors des échanges de paquets. Le client évolue donc dans un décor modifié alors qu'il utilise la map standard. Il n'existe aucun problème d'incompatibilité.

Le fichier ent est un fichier texte et à ce titre il peut être ouvert, interprété et modifié avec n'importe quel éditeur de texte.

b_list.gif    LES BASES  

Pour mieux comprendre la conception d'un fichier ent il est nécessaire d'ouvrir un fichier map. On prendra pour exemple la map VOK.

En décompactant le fichier VOK.pk3 on obtient plusieurs répertoires. Le seul qui nous intéressera est MAPS. Il contient le fichier principal à savoir VOK.bsp. A noter que tous les fichiers pk3 concernant les maps sont tous construits sur le même principe.

En éditant VOK.bsp on peut s'apercevoir qu'il contient une zone de texte parfaitement claire comprise entre 2 zones de contenus binaires.

Les 2 captures suivantes illustrent ce qui précède. La zone de texte a été tronquée par souci de concision.

Début de la zone de texte Fin de la zone de Texte
vok_deb.jpg vok_fin.jpg

On remarque que cette zone texte englobe essentiellement une suite de paragraphes marqués par une accolade ouvrante et fermante. Un point de détail particulier concerne le premier paragraphe qui semble ne pas avoir d'accolade ouvrante. En fait cette accolade est située en fin de la dernière ligne binaire (ligne 15912) et n'apparaît pas sur la capture. D'une manière générale chaque paragraphe doit toujours être inscrit entre ses 2 accolades. L'absence de l'une ou l'autre entraine invariablement le plantage du serveur. 

La zone de texte, du début à sa fin représente en quelque sorte le contenu typique d'un fichier ent.

demo.png IMPORTANT: Pour tous vos essais avec le mode Ent Editor il est conseillé de procéder en LAN plutôt que sur votre serveur distant car durant l'édition d'une map, le serveur devient inaccessible à tout joueur et même aux bots. La création d'un serveur LAN passe par une installation identique à un serveur distant (Windows ou Linux). Ne pas utiliser l'option 'CREATE SERVER' du module client qui ne donnera pas satisfaction.

 b_list.gif     ENT EDITOR - PREPARATION  

Nous conservons toujours la map VOK pour la suite du développement.

fin.gif  Etablir un simple fichier mapcycle comme suit:

mapcycle.jpg

fin.gif  Lancer le serveur LAN et s'y connecter

fin.gif  Ouvrir le menu MDK / BINDS et créer un bind spécifique, soit ici la touche END (fin)

bind.jpg

fin.gif  Cliquer sur la touche END pour ouvrir le menu du mode Ent Editor.

start.jpg

Le panel qui s'affiche à la droite de l'image sur la map VOK retrace toutes les commandes nécessaires et suffisantes à la création du fichier ENT.
A noter que l'arrivée sur la map est en mode spectateur et ce mode restera actif tout au long de la création.

Ma dernière version client n'affiche plus les 2 lignes SPECTATOR en bas d'écran afin de faciliter la lecture des références sous-titrées des modèles et items affichés comme le montrait cette ancienne capture:

bot_mix.jpg

Avant de continuer, quelques points de détail sur ce panel

Groupes Attribution
part1.jpg
 Boutons dédiés au choix des différents objets, bots, modèles MD3, modèles BSP,
 flags, briefcase, pickup armes, santé, armure et backpacks.

part2.jpg
  Les touches X,Y et Z autorisent le déplacement des objets en coordonnées
 positives ou négatives, sur les 3 axes orthonormés.
 Les touches + et - fixent le pas d'incrémentation en pixel. Le pas s'affiche dans la
 fenêtre "Move Increments"
 La valeur 1 permet une précision extrême.

 La touche C place automatiquement l'objet à la position de l'observateur (vous)

part3.jpg
  Les touches numérales font pivoter l'objet d'un valeur angulaire équivalente à
  leur valeur faciale. Les pas minimum sont de 45°.
  La touche C oriente l'objet orthogonalement à l'axe de vue de l'observateur.
  Selon sa position, l'orientation de l'objet peut être réglée au degré près.

 

part4.jpg
  Chaque objet créé reçoit un ID (numéro). Leur sélection permet de les situer, 
  de les supprimer ou de les cloner.
  Cette dernière option est très pratique pour dupliquer des objets identiques
  à des coordonnées différentes (grillage, végétation herbeuse etc..)
 
part5.jpg
 1ère icône : Lancement du mode Ent Editor
  
  2ème icône : Gestion des fichiers
b_list.gif     ENT EDITOR - RECUPERATION DU FICHIER ENT  

Il convient maintenant d'extraire cette partie texte du fichier BSP aux fins de créer le fichier ent sur lequel s'appuieront toutes les modifications que l'on prévoie d'accomplir. Pour ce faire, la procédure est la suivante:

fin.gif  Cliquer sur le bouton Ent Editor. Cette action est unique mais nécessaire pour démarrer le mode. Elle est irréversible malgré un nouvel appui sur ce bouton.

btn_enteditor.jpg

La map est relancée et vous êtes maintenant en mode Ent Editor. Cette action va créer automatiquement le fichier vok_sources.ent dans le répertoire edits du serveur LAN. Il servira désormais de base pour toutes vos opérations de remodelage.

fin.gif  Cliquer sur le bouton Files.

btn_files.jpg

fin.gif  Cliquer sur le bouton Load Sources Data. Cette action va relancer la map et affichera tous les modèles et les items du fichier vok_sources.ent.

load_sces_btn.jpg

Voici une vue partielle de la map où tous les objets sont visibles. A noter toutefois que la plupart d'entre eux sont simplement représentés par 3 vecteurs orthonormés. Leur identification est toujours possible grâce à un baptême qui s'affiche en se rapprochant de leur position.

mini_vok_sources.jpg

On peut donc répertorier les plus importants comme le montre le tableau suivant:

VUE CLASSNAME  DESIGNATION
gametype_player.jpg gametype_player
  Point de respawn d'un bot spécifique aux gametype
  d'équipe  codés dans le fichier BSP et pointés dans
  un fichier arena.

  CTF, TDM, etc...

info_player_deathmatch.jpg info_player_deathmatch
   Point de respawn d'un bot uniquement dédié au DM.
  La plupart des erreurs viennent de la  confusion fréquente
  entre le classname gametype_player et le présent
  classname.
pickup_weapon_m60.jpg pickup_weapon_M60   Point de ramassage d'une arme. Ici le M60.
target_location.jpg target_location
 
   Point sur lequel un joueur pourra donner sa position
  en actionnant le token #L.
  Dans cet exemple le terme désert s'affichera en chat.

teleport.jpg target_teleporter
  Point de téléportage. Cette option est très intéressante
  pour identifier facilement ces points dans des maps
  particulières. 
gametype_item_flag.jpg gametype_item
  Item spécifique au gametype. Ici le drapeau de l'équipe
  rouge en CTF.
pickup_backpack.jpg pickup_backpack
  Point de ramassage d'un sac de ravitaillement.
pickup_ammo_9.jpg pickup_ammo_9mm
  Point de ramassage de munitions. Ici du calibre 9mm.
briefcase.jpg gametype_item  
  Item spécifique au gametype. Ici lla mallette propre au
  STQ entre autres gametypes.
 

 

b_list.gif     ENT EDITOR - CREATION D'UN POINT DE SPAWN  

On se fixe pour objectif d'ajouter un bot pour le DM.

Pressez à nouveau le bind END pour récupérer l'affichage du panel de commandes. A noter qu'après chaque sélection d'un objet il sera nécessaire d'ouvrir à nouveau le panel de commandes pour choisir l'action suivante.

fin.gif  Cliquer sur le bouton Spawn point.

btn_spawn.jpg

fin.gif  Sélectionner un point de spawn en fonction du gametype (DM dans l'exemple). A noter que la création du fichier ENT prendra un suffixe propre au gametype choisi soit ici, vok_dm.ent

bot_spawn.jpg

fin.gif  Cliquer sur le bouton Deathmatch/Team, un nouveau bot sera créé.

fin.gif  Revenir à la position du bot.

bot_add.jpg

La ligne Entity ID prend le numéro 323 ce qui signifie que le codeur qui a conçu la map a placé 322 items, models et autres objets. Le classname précise la nature de l'occupant du spawn en l'occurrence un joueur DM.
Les angles de présentation du bot pourront être redéfinis avec l'option Rotate du panel de commandes et Origin indique les coordonnées triples de l'objet sur la map.

Tous ses renseignements apparaitront chaque fois que vous survolerez ou vous rapprocherez d'un objet créé sur la map.

gysample.gif  IMPORTANT: Un point de respawn doit affleurer le sol mais ne jamais être dans le sol, auquel cas le bot et surtout le joueur, risquent fort de se retrouver les pieds pris dans la masse avec l'impossibilité de se mouvoir. Il est donc absolument nécessaire d'ajuster la valeur Y au pixel près. Par mesure de prudence quelques pixels au-dessus du sol ne seront pas à dédaigner. Certains codeurs de maps n'hésitent pas d'ailleurs, à placer le spawn à bonne hauteur du sol.

b_list.gif     ENT EDITOR - CREATION D'UN ITEM  

fin.gif  Cliquer sur le bouton Items

btn_items.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment. 

panel_items.jpg

b_list.gif     ENT EDITOR - CREATION D'UN POINT DE PICKUP WEAPON  

fin.gif  Cliquez sur le bouton Wpn pickup

btn_wpn.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment.

panel_wpn.jpg

b_list.gif     ENT EDITOR - CREATION D'UN POINT DE PICKUP ACCESSOIRES  

fin.gif  Cliquer sur le bouton Acc pickup

btn_acc.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment.

panel_acc.jpg

b_list.gif     ENT EDITOR - CREATION D'UN MODELE BSP  

L'édition des modèles BSP est de loin la partie la plus intéressante de la fonction Ent Editor car elle permet de modifier profondément le décor d'une map. 

On se propose d'ajouter un arbre sur le toit d'un temple car à cet endroit, il ne présente aucune interférence avec d'autres objets existants. A noter qu'il aurait été possible de le placer sans risque dans un autre endroit du décor en évitant d'englober des objets présents.

fin.gif  Cliquer sur le bouton BSP

btn_bsp.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment.

liste_bsp.jpg md3_model.jpg

gysample.gif  AIDE: Un léger inconvénient existe néanmoins dans l'absence de préavis graphique des modèles BSP. En effet, à l'opposé des items et accessoires précédents qui sont connus par leur simple évocation, les modèles BSP ne sont pas facilement interprétés par l'opérateur à moins d'avoir une longue pratique. Les modèles BSP, (plus de 200) sont répartis dans 6 répertoires inclus dans le répertoire INSTANCES du fichier système maps.pk3 comme le montre la capture suivante:

instances.jpg

Afin de faciliter leur appréhension avant leur édition, vous trouverez à ce lien un fichier RAR qui après décompactage vous donnera une représentation graphique de tous les modèles BSP. Chaque image est agrémentée de son baptême. Il sera donc plus facile de rapprocher une désignation dans la liste des objets avec sa représentation picturale.

Voici quelques aperçus :

building03.jpg fence01_gate.jpg
randomcover01.jpg oilbomb.jpg

b_list.gif     ENT EDITOR - CREATION D'UN MODELE MD3  

fin.gif  Cliquez sur le bouton MD3

btn_md3.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment.

liste_md3.jpg statue.jpg

gysample.gif IMPORTANT : Il existe une différence fondamentale entre les modèles BSP et les modèles MD3 qu'il est nécessaire de comprendre:

comment.gif BSP : Les modèles BSP qualifient des volumes solides c'est-à-dire offrant un obstacle aux joueurs. Ils sont indépendants et sans liaison aucune avec le codage originel de la map.

comment.gif MD3 : Les modèles MD3 que vous ajouterez ne seront pas solides et tout joueur pourra les traverser de part en part. Ainsi, placer une voiture au milieu d'une map n'est pas très judicieux et surtout pas très réaliste. Le modèle MD3 sera donc placé de préférence dans des points de la map inaccessibles aux joueurs. Dans l'exemple qui précède, j'ai posé la statue au sommet de la tour de garde attendu qu'aucun joueur ne peut monter la-haut. Elle ne trône ici que pour la décoration.

Pour info les modèles MD3, déjà existants dans une map, ont été prévus à l'origine par le programmeur.

fin.gif  EXEMPLE : Cette jeep posée dans le décor de la map mp_col2 est un modèle MD3.

jeep_mp_col2.jpg

Sa construction réunit 4 planches graphiques qui constituent son "habillage" extérieur.

jeep_body.jpg jeep_seats.jpg jeep_shaders.png jeep_tires.jpg

On retrouve la présence de cette construction à la fois dans la zone binaire où la capture suivante montre le pointage de la première planche:   

jeep_body.jpg

Ainsi que dans un paragraphe de la zone texte:

code_jeep.jpg

fin.gif  Toutefois il est possible de placer certains modèles MD3 au milieu de la zone d'action, à savoir les modèles représentatifs d'un décor herbeux, qui n'offriront aucun obstacle aux mouvements tout en améliorant l'aspect de la map.

La capture suivante montre quelques pousses vertes ajoutées dans le sable de la vallée des rois.

grass.jpg

Les modèles MD3 sont disponibles dans le fichier système models.pk3, ça ne s'invente pas laugh

Concernant les modèles liés à la végétation, voir principalement dans models/objects/colombia/jungle.

Mais il y en a d'autres......

fern_lrg01_shd.png fern_lrg02_shd.png fern_sm01_shd.png grass_tall_shd.png

soldat.gifEn résumé:

  • Placer les modèles BSP ou vous voulez en s'assurant toutefois que leur position n'englobe pas un point de respawn. Pour y remédier il est préférable de procéder en priorité aux ancrages des modèles BSP et de revoir ensuite tous les points de respawn.

  • Placer les modèles MD3 dans des endroits où les joueurs ne passeront pas sauf choisir des éléments de végétation perméables.

  • Armez vous de patience............wink

fin.gif  Un dernier point qu'il convient de souligner concerne les ombres portées par l'ajout des modèles BSP et MD3: elles n'existent pas !

Les ombres sont crées à la conception de la map par le programme dédié et ne peuvent en aucun cas, être produites par un fichier ent.

b_list.gif     ENT EDITOR - SAUVEGARDE  

fin.gif  Cliquer sur le bouton Files.

btn_files.jpg

fin.gif  Cliquer sur le bouton Save Project.

Un fichier vok_dm.ent sera créé dans le répertoire edits, comme suit:

ent_files.jpg

Ce fichier vok_dm.ent sauvegardera les modifications effectuées sur la map VOK.

vok_dm_file.jpg

Je rappelle que le fichier vok_sources.ent représente la copie conforme de la zone texte du fichier vok.bsp encapsulé dans le fichier d’origine vok.pk3. Ce fichier ne sera jamais altéré par le mode Ent Editor et restera toujours la référence à laquelle on pourra repartir pour de nouveaux essais.

Si l’on place le fichier vok_dm.ent dans le répertoire MODS du serveur, une fois la map vok lancée, les nouveaux objets introduits dans la map apparaitront au même titre que tous les autres éléments codés d'origine, ce qui induit une constatation à savoir que les données du fichier ent sont prioritaires et complémentaires sur celles du fichier BSP.

gysample.gif Remarque: Dans le premier paragraphe une ligne message est introduite mentionnant le nom du créateur du fichier ent. Vous avez toute latitude pour en modifier éventuellement le texte.

b_list.gif     ENT EDITOR - VARIANTE  

Dans la mesure où votre projet est d'agrémenter une map de certains modèles supplémentaires et compte tenu du fait qu'un ou plusieurs points de respawn risquent par erreur d'être enchâssés dans les décors, vous avez certainement projeté avec sagesse de redéfinir tous les points de respawn.
Le développement qui suit ne concerne que le DM, car je suis profondément réfractaire à tout autre gametype !
Procéder comme suit:

fin.gif  Editer le fichier vok_sources.ent

fin.gif  Repérer tous les paragraphes qui contiennent la ligne classname info_player_deathmatch comme cet exemple suivant :

{
"classname" "info_player_deathmatch"
"origin" "1796 -1520 58"
"angles" "0 90 0"
}

Ainsi qu'éventuellement tous les fichiers classname gametype_player comme cet exemple:

{
"classname" "gametype_player"
"origin" "417 -2656 62"
"gametype" "dm tdm"
"angle" "360"
"spawnflags" "0"
}

Une remarque au passage, concernant cette dernière forme qui représente une erreur de codage des bots affectés au DM. Elle a été la cause de plantages sous le défunt mode 1FX. Seul le classname info_player_deathmatch est adéquat pour coder les respawns DM

fin.gif  Effacer tous ces paragraphes.

fin.gif  Rebaptiser vok_sources.ent en vok_dm.ent

fin.gif  Placer le fichier vok_dm.ent dans le répertoire MODS du serveur.

fin.gif  Lancer le serveur LAN. Se connecter et lancer Ent Editor

btn_enteditor.jpg

fin.gif  Cliquer le bouton Files

btn_files.jpg

fin.gif Cliquer sur le bouton Load Ent Data

load_ent_data.jpg

Vous arrivez sur la map VOK où tous les items seront présents sauf les bots affectés au DM.

Il ne restera plus qu'à créer les nouveaux points de respawn par la procédure décrite plus haut.
A noter que si vous désiriez ajouter d'autres modèles sur la map, il aurait fallu également, préalablement au lancement du fichier vok.ent, effacer tous les paragraphes relatifs aux bots des autres gametypes.

Ces paragraphes peuvent être de la forme suivante:

{
"classname" "gametype_player"
"origin" "-640 6912 302"
"gametype" "elim cctf inf dem ctf"
"angle" "270"
"spawnflags" "2"
}

gysample.gif Avant de placer vos bots, si vous avez envisagé d'inclure dans la map un modèle BSP, la présence d'un item pourrait être gênant. Dans ce cas il possible de l'éliminer même si ce n'est pas vous qui l'avez créé. Pour ce faire il suffit de se rapprocher de l'objet afin de noter son ID puis de saisir cet ID dans la fenêtre Sélection ID du panel de contrôle et enfin de cliquer sur le bouton Delete, comme le montre la capture suivante:

delete_item.jpg

gysample.gif Remarque:  Cette variante n'introduit pas de commentaires dans la ligne message du premier paragraphe du fichier vok.ent ou à tout le moins, ne modifie pas cette ligne si d'aventure elle existait déjà dans le fichier vok_sources.ent. Il conviendra alors soit de la modifier, soit de la créer.

fin.gif  N'oubliez pas de sauvegarder votre travail en cliquant sur le bouton Files puis Save Project !

b_list.gif     ENT EDITOR - EXTRAS  

Il existe quelques maps entachées d'imperfections. qui peuvent être facilement corrigées grâce aux fichiers ent. Lorsque j'ai expérimenté plus de 1300 maps, certaines dont le graphisme très soigné avait retenu mon attention m'avaient toutefois un peu déçu par des erreurs invalidant les mouvements des joueurs. C'est le cas, la plupart du temps de formes codées dans le fichier BSP mais mal "habillées" par des modèles MD3 comme je l'ai évoqué plus haut.  

Je ne désire pas dresser un tableau de toutes les modifications que j'ai déjà effectuées.

Je me bornerai dans le moment présent à juste évoquer la map mp_dust2. Très beau graphisme aux couleurs chaudes et lumineuses mais hélas ternie par un petit bug aux abords des 2 camions parqués. Les bots se retrouvaient souvent englués dans le bas de la carrosserie et des pneus, révélant du fait une anomalie entre la forme codée et le modèle MD3.

mini_bot1.jpg

Le but de la correction était d'interdire le rapprochement latéral des camions en ajoutant des obstacles de proximité.

Voici l'aspect initial de la map (clic pour zoom):

mini_dust2_orig.jpg

1er projet de modification qui consiste à encercler le parc d'une clôture infranchissable

mini_dust2_fence.jpg

2ème projet qui consiste à flanquer les côtés des véhicules par des caisses et un muret

mini_dust2_crates.jpg

Je ne me suis pas encore décidé entre ces 2 options.

Peut-être avez vous une préférence ? eek

-=mad=-

Publié le 29/04/2021 21:50   Toutes les pages   Prévisualiser...   Imprimer...   Haut
Rubriques

Vous êtes ici :   Accueil » Documentation » Le mode MDK