Tout permuter
=DarkRadiant (=DR)
=Interface
-
Raccourcis utiles
- 0 : Cacher / afficher la grille dans la vue 2D
- Ctrl + Entrée : lorsque l'outil Clipper est sélectionné, changer la brush qui sera supprimée lors de la séparation
- Ctrl + T : outil texture
- Ctrl + U : (tenter de) fusionner deux brush
- F3 : permuter le mode Preview
- P : Préférences
- J : liste des entités
-
Liste de modèles utiles
On ajoute un modèle à la map en faisant [clic droit dans une vue 2D] > Create Model...
camera01.ase
mapobjects > camera
flatmonitor.lwo
mapobjects > guiobjects
mattress.lwo
mapobjects > tables > bunkbed
modconsole1.lwo
mapobjects > com
modconsole6.lwo
mapobjects > com
-
Changer l'apparence de la grille
Preferences (touche P) > Settings > Grid
=Matériaux
Les matériaux sont les images appliquées sur les surfaces des modèles et des éléments de géométrie (murs, sol, plafond). Ils sont composés d'une texture (une image) et parfois aussi de filtres spéciaux pour un air particulier.
Note sur les sprite : plusieurs matériaux contiennent un attribut nommé deform
, avec la valeur sprite
. Cela signifie que la texture devra toujours faire face au joueur (la technique s'appelle le billboarding). La façon la plus pratique de les utiliser est de créer un patch simple, d'appliquer le matériau dessus et de régler sa taille dans le Surface Inspector.
-
Emplacements de matériaux
caulk textures/common/caulk Pour les surfaces extérieures du niveau qui ne seront jamais vues par le joueur.
nodraw textures/common/nodraw Un matériau invisible.
Note : Ce matériau ne doit pas être utilisé pour les surfaces extérieures du niveau, car il causera des problèmes de détection de collision. Il est préférable d'utiliser le matériau
caulk
._default (par défaut) _default
player_clip textures/common/player_clip visportal textures/editor/visportal Cette texture est définie dans materials/invisible.mtr. La définition du matériau fait référence à un fichier de texture (textures/editor/visportal.tga) qui ne semble pas exister parmi les ressources de Doom 3.
Le Dark Mod quant à lui contient un fichier nommé visportal.tga, ce qui peut porter à confusion pour les utilisateurs de l'éditeur de niveau DarkRadiant.
Note : l'effet des visportal ne sera visible que lorsqu'il y en a plusieurs dans le niveau. Un visportal seul est inutile et on peut prouver, à l'aide de la variable de console
r_showPortals
, qu'il ne sera pas pris en compte lors de la compilation du niveau. -
Textures personnalisées
- Créer un fichier avec l'extension .mtr dans base/materials
-
À la base, une texture peut être extrêmement simple :
textures/masection/monmat
{
qer_editorimage textures/fichierImage
diffusemap textures/fichierImage
}On définit ici le matériau
monmat
qui se trouvera dans le « dossier »masection
dans le gestionnaire de matériaux (Media Manager) de DarkRadiant.Noter que
masection
n'est pas un vrai dossier ; en utilisant cette nomenclature, on saura où trouver le matériau dans le gestionnaire de matériaux de DarkRadiant. C'est une méthode pour mieux catégoriser le matériel dans la fenêtre.qer_editorimage
est l'image qui représente la texture dans DarkRadiantdiffusemap
est l'image qui sera vue dans le jeu
On peut utiliser des textures en plusieurs formats, dont JPEG (pas seulement TGA). Indiquer l'extension du fichier n'est ni obligatoire, ni défendu.
Note
Pour une raison que j'ignore présentement, le premier matériau dans un fichier .mtr que j'ai fait moi-même n'est accessible que dans le dossier
Other Materials
dans DarkRadiant. Le matériau s'appelletextures/chose/navire
, et dans DR, il se trouve ici :Other Materials/textures/navire
.Le problème n'affecte que le premier matériau ; ceux qui le suivent (dans le même fichier) se trouvent au bon endroit : dans
textures/chose
. -
Fichiers de définitions de matériaux
- pak000/materials/lights.mtr : définitions des matériaux des lumières
=Fonctionnalités
-
Centrer une vue 2D sur la caméra
- Tout désélectionner
- Faire Ctrl + Tab trois fois
-
Sélection rectangulaire dans une vue 2D
Tenir la touche Maj avant de cliquer-glisser la souris dans la vue 2D
=Édition d'un niveau
-
Compilation d'une map
- Pour éviter les fuites, toujours placer tous les objets à l'intérieur de la map, même les entités non physiques (sons,
trigger
,target
, peu importe). - Lorsqu'on répare une fuite dans une map, il faut recompiler la map pour que la réparation soit enregistrée (et pour que DarkRadiant arrête de signaler la fuite).
- Pour éviter les fuites, toujours placer tous les objets à l'intérieur de la map, même les entités non physiques (sons,
-
Transformer une brush en func_static
- Sélectionner la brush
-
Dans une des vues 2D, [clic droit sur la brush] > Convert to func_static
ou
Dans une des vues 2D, [clic droit sur la brush] > Create entity... > darkmod > Func > func_static
-
Transformer une brush en patch
Patch > Create Simple Patch Mesh
Note : La fenêtre qui apparaîtra affichera deux valeurs, Width et Height. Ces deux valeurs font référence au nombre de sommets dans le patch. Plus il y a de sommets, plus le patch peut être plié en gardant une surface lisse.
-
Créer une échelle
- Créer une brush
- Lui appliquer la texture
common/ladder
, ET NONladder_metal
ou toute autre sorte d'échelle, car ces textures viennent de materials/tdm_misc.mtr, qui appartient au Dark mod
-
Créer un écran qui pourra afficher un GUI
Utiliser un modèle :
- [Clic droit dans une des vues 2D] > Create model...
- Choisir un fichier .lwo approprié. Les entités pouvant afficher des GUI sont limitées ; il y en a sous
mapobjects/guiobjects
etmapobjects/com
(modconsole1
,2
,3
, etc.)
ou
Créer une surface plate pour l'écran :
- Créer un patch simple : Patch > Create Simple Patch Mesh
- Convertir l'objet en
func_static
- Appliquer la texture
textures/common/entitygui
sur le patch -
Lui ajouter la propriété
gui
, avec comme valeur l'emplacement du gui voulu (format :guis/mon_interface.gui
)Note : il est possible d'ajuster la taille du gui sur l'écran avec la fenêtre Surface Inspector.
-
Appliquer une vue de caméra sur un écran simple
- Construire une salle avec un
info_player_start
et une lumière -
- Créer une
func_securitycamera
- Choisir son modèle :
models/mapobjects/camera/camera01.ase
- Choisir son nom
- Créer une
-
- Créer une brush, la sélectionner et faire Patch > Create Simple Patch Mesh (utiliser les paramètres par défaut)
- Dans une vue 2D, [clic droit sur l'objet] > Convert to func_static
- Dans le menu Media, appliquer la texture
textures/cameraImg1
, puis s'assurer que la texture est bien appliquée avec le Surface Inspector. - Choisir son
gui
:guis/cameras/cam_on.gui
- Choisir son
cameratarget
(le nom de la caméra)
- Construire une salle avec un
-
Appliquer la vue d'une entité func_cameraview sur un écran
- Sélectionner le modèle de l'écran (par exemple, models/mapobjects/com/modconsole1.lwo)
- Ouvrir le gestionnaire de textures (touche T)
- Shader : Media > textures > cameraView1
- Ajouter une propriété
gui
, avec le nom du func_cameraview comme valeur - Ajouter une propriété
skin
, et lui attribuer la valeur skins/flatmonitorcameragui
Note : dans le fichier DoomConfig.cfg, s'assurer que la variable
image_downSize
a la valeur 0 ; si ce n'est pas le cas, la vue de la caméra sera distordue.Note : la description de la classe C++ idCameraView décrit un problème potentiel avec l'application d'une vue de caméra sur un GUI.
-
Créer un ciel
- Sélectionner les brush qui afficheront la texture du ciel
- Leur appliquer un des matériaux dans
textures/skies
avec le Media Manager
Note : Les matériaux de ciel sont dans pak000/materials ; les images qu'ils utilisent sont dans pak000/env.
-
Cibler un objet avec une caméra
- Créer une entité
func_cameraview
- Créer une entité
target_null
et la placer où la caméra devra regarder - Ajouter au
func_cameraview
une propriété nommée « target », avec comme valeur le nom dutarget_null
Si la
func_cameraview
ne regarde pas dans la bonne direction, il suffit de lui faire subir une rotation sur l'axe de hauteur (l'axe z, dans DarkRadiant). - Créer une entité
-
Construction et placement des vis portal
La construction d'un vis portal se fait en trois étapes :
-
On crée une brush qui fera la même taille que le passage entre les deux salles.
Note : l'épaisseur du vis portal devra obligatoirement être inférieure à celle des murs qu'il touche ; ni le devant, ni l'arrière ne doivent s'aligner avec les murs. Si cela arrive, on risque d'éprouver des problèmes d'affichage, surtout dans une vue de caméra.
S'il y a une porte, lui donner les mêmes dimensions que celle-ci, toujours à l'exception de l'épaisseur qui devra être plus petite pour que la nouvelle brush puisse s'y insérer sans dépasser d'un côté ou de l'autre.
- Dans une vue 2D, on fait un clic droit sur la brush, puis on choisit "Make Visportal" (il n'y aura aucun espace entre Vis et Portal dans DarkRadiant). La surface marquée « Vis-Portal » devra être orientée vers une des deux salles.
(J'ai modifié ici la texture d'origine pour améliorer la lisibilité. Remarquer que le vis portal est plus mince que les murs.)
-
Si c'est un passage sans porte, on peut placer une entité info_locationseparator de façon à ce qu'elle passe à travers le vis portal.
Ainsi, la cadence sera plus sûre et les entités info_location passeront les bonnes données au joueur.
Pour voir si les vis portal fonctionnent bien, taper ceci dans la console :
r_showTris 2
(ou 3) : afficher tous les triangles dans la scène ; 2 == seulement les faces orientées vers le joueur, 3 == faces arrières aussir_useScissor 0
: afficher tous les triangles rendus, pas seulement ceux qu'on peut voirr_showPortals 1
: afficher les vis portal
Créer de l'eau (Dark mod seulement)
- Créer une salle
- Créer la brush qui représentera l'eau, à l'intérieur de la salle
- Appliquer la texture
common/nodraw
à la brush - Sélectionner la surface du haut (Ctrl + Maj + clic) et lui appliquer la texture
water_source/water_clear
, par exemple
=Problèmes
-
DarkRadiant n'affiche pas les trois fenêtres orthographiques, même après avoir choisi l'option, puis redémarré le logiciel
Le fichiers de configuration de DarkRadiant contiennent une erreur.
- Naviguer au dossier AppData/Roaming/DarkRadiant
- Supprimer tous les fichiers, puis redémarrer DR
-
Un matériau qu'on vient de créer et placer dans le dossier base/materials est introuvable dans DarkRadiant
Ce problème peut affecter ceux qui auraient utilisé le code source d'id Tech 4 pour créer un mod de Doom 3 dans un autre dossier.
Pour que DarkRadiant trouve un fichier, celui-ci doit être dans le dossier base/materials du répertoire qu'on a spécifié la première fois qu'on l'a exécuté, car c'est dans ce dossier que les ressources seront recherchées.
- S'assurer que le fichier est bien dans le dossier indiqué. Pour changer le dossier racine du jeu : Edit > Preferences > Game > Engine Path.
(Le champ de texte sera peut-être vide. Pour moi, c'est toujours le cas quand je le vérifie ; ça fonctionne quand même quand on le modifie.)
-
Le Media Manager n'affiche plus les onglets des matériaux
Parfois, la fenêtre Media n'affiche les onglets que la première fois qu'elle est visionnée. Ensuite, les onglets deviennent tous blancs.
- Cliquer sur un autre onglet dans la fenêtre (Entity, Script ou Console) et retourner dans Media.
OU
- Visionner les textures dans la fenêtre Surface Inspector (View > Surface Inspector) en cliquant sur le bouton à côté de Shader.
- Cliquer sur un autre onglet dans la fenêtre (Entity, Script ou Console) et retourner dans Media.
-
Les entités trigger sont affichées dans la map comme des cubes noirs au lieu d'être invisibles
Lorsqu'une entité
trigger
est modifiée mais la map n'est pas recompilée, l'entité prend la forme d'une boîte noire.Noter que la commande de console
testmap
ne met à jour la map que s'il n'y a aucune fuite.Pour compiler la map et afficher les messages d'erreur, utiliser la commande
dmap
.- Si la map a une fuite, tout placer les objets à l'intérieur du niveau, y compris les entités non physiques, puis recompiler.
-
Après avoir rétabli une entité trigger en brush normale (avec Ctrl + Z), il n'est toujours pas possible de redimensionner la brush
Il faut reconvertir explicitement l'entité en
func_static
.- [Clic droit sur la forme (dans une vue 2D)] > Revert to worldspawn
-
Une entité trigger n'a pas la même forme dans DarkRadiant et Doom 3
Parfois, les nouvelles entités
trigger
ont des formes ou des tailles différentes entre DarkRadiant et Doom. Des fois elles fonctionnent mal pour aucune raison ostensible.Je n'ai aucune explication, mais on dirait que les entités
trigger
fonctionnent mieux en suivant l'approche suivante :- Créer la brush dans la map, puis compiler
- Transformer la brush en
trigger
, puis recompiler - Si l'entité doit appeler une fonction de script, ajouter la propriété
call
et recompiler
Il est peut-être possible de jumeler les deux dernières étapes.
-
Certains types d'entité ne sont pas visibles dans DarkRadiant
Il est possible que les éléments soient filtrés dans la vue.
Filter > [désélectionner tous les éléments]
=DOOMEdit
Avant de passer à DarkRadiant, je m'étais un peu familiarisé avec l'éditeur de niveau natif de Doom 3.
Pendant un temps, je m'en servais aussi pour compiler des maps que j'avais créées avec DarkRadiant (Bsp > bsp)
=Notes générales
-
Réinitialiser l'interface
Redémarrer DOOMEdit.
-
Transformer une brush en func_static
- Sélectionner la brush
- Dans une des vues 2D, [clic droit sur la brush] > func > func_static
=Problèmes
-
L'interface de DOOMEdit ne s'affiche pas bien (Windows 7)
Désactiver le thème Aero de Win7 :
- Clic droit sur le bureau > Personnaliser
- Sélectionner un thème de base, comme Windows 7 Basic
-
Erreur lors de l'ouverture d'un fichier .map : No worldspawn in map
- Ouvrir le fichier avec un éditeur de texte
-
Sous ces lignes :
Version 2
// entity 0ajouter ceci (y compris les accolades) :
{
"classname" "worldspawn"
// primitive 0
}
-
Avertissement lors de la compilation de la map : WARNING: Couldn't load image: _emptyname
La cause de ce message n'est pas certaine. Le problème s'est réglé lorsque j'ai créé une map simple entièrement dans DOOMEdit plutôt que commencer dans DarkRadiant et utiliser DOOMEdit pour compiler.
Ce message n'est malgré tout qu'un avertissement et ne semble pas empêcher la compilation de la map.
-
Erreur de compilation : fuite dans la map
Il est possible que cette erreur apparaisse dans la console de Doom quand on utilise la commande
dmap
pour compiler une map :**********************
WARNING: ******* leaked *******
**********************- Il y a peut-être un trou dans la géométrie.
- Il n'y a peut-être pas d'
info_player_start
dans la map. - S'assurer que toutes les surfaces extérieures du niveau ont un matériau avec collision (pas
nodraw
, ni mêmenodrawsolid
). Le matériaucaulk
est utile dans ce cas.
-