Changement de niveau

Écrit le 07/09/2004 par Bl@de
Dernière mise à jour : 05/04/2006

Introduction

Bonjour à tous, ce tutorial est là pour vous apprendre à changer de niveau dans un mod solo, ou bien dans une campagne solo.

Le principe est très simple, il faut utiliser une entité appelé target_endlevel qui signale à doom3 que c'est la fin de la map en cour et qu'il faut charger la map suivante. Il faut déclencher cette entitée a l'aide d'un trigger_once, mais nous verons ça en détail un peu plus bas.

Pratique

Pour commencer il nous faut deux map différentes que j'appellerai map1 et map2 pour ce tutorial, mon but étant de commencer le jeu par la map1 et d'enchainer avec la map2.

Voici les deux maps:

http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv00.jpg
http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv01.jpg

Dans la map1

Je commence par créer cette entité qui sert a changer de niveau (level en anglais) c'est pour ca qu'elle s'appelle

target_endlevel. Faites un clic droit où vous voulez mettre votre entité, dans la limite de votre map sinon il y aura un leak. Allez dans target>target_endlevel. Voilà, votre entité est créée, il ne vous reste plus qu'à la configurer.

http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv02.jpg

Commencez par la key nextMap, qui est celle qui nous interesse le plus pour changer de niveau, son chemin commence dans Doom 3\base\maps, comme map1 et map2 ce trouve dans Doom 3\base\maps\test j'ai mis test/map2 comme ça on sera dirigé vers la map2.

La key endOfGame, est là pour faire signe a doom3 que c'est la fin du jeu, ou de votre mod, true pour dire que c'est la fin du jeu et donc revenir au menu générale, ne pas mettre la key pour dire que c'est un simple changement de
niveau.

Par contre la key guiName est utilisé dans aucune des maps de doom3, mais apparament sert quand il y a plusieurstarget_endlevel dans la même map, je mettrai à jour quand je trouverai vraiment à quoi ça sert.

Voila notre entité target_endlevel est fini à une chose près, il faudrait lui donner un nom un peu plus clair, pour ça, cliquez dans name et à la place de target_endlevel_1 je met endlevel_map1_to_map2.

http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv03.jpg

Voilà pour ce qui est du target_endlevel. Maintenant nous allons nous occuper du trigger_once toujours dans la map1, mais qu'est ce que c'est donc que cette entité bizzare ? et ben c'est tout simplement un brush qui déclenche une action, un évenement, un son, etc. Quand on y passe au travers, nous allons configurer le trigger_once pour qu'il déclenche notre target_endlevel, ce qui nous fera charger la map2 !

Commençons par choisir la texture pour les tigger_once, qui ce trouve dans Textures>common>trigonce:

http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv04.jpg

Une fois celle-ci sélectionnée, créez un brush où vous voulez que votre map prennent fin, et faites en sorte que ça recouvre tout l'espace comme sur le screen ci-dessous

http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv05.jpg
http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv06.jpg

Et voici ce que ça donne dans la vue cam, attention, c'est tout à fait normal si la texture ne se voit pas en mode rendu:

http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv07.jpg

Tout en ayant ce brush sélectionné, faites un clic droit dans la vue 2d et allé dans trigger>trigger_once, voilà, votre brush est devenu une brush-entité, dès que vous y passerez au travers ça déclenchera quelque chose, en l'occurance ici le changement de niveau, encore faut-il configurer ce brush-entité.

Allez dans ses options, et ce que nous allons faire c'est créer un lien avec le target_endlevel, donc vers la fin de la fenêtre il y a écrit key avec un texte à saisir à côté, dans ce carré entrez target et dans val entrez le nom de votre target_endlevel, pour moi c'est endlevel_map1_to_map2, mais pour vous ça peut très bien être un autre nom.

http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv08.jpg

une fois ces mots entrés, appuyez sur entrée, et là comme par magie, un trait jaune se cré entre le trigger_once et le target_endlevel, ce qui veut dire qu'ils sont bien reliés.

http://www.game-lab.com/images/tuts/doom3_changelevel/cg_lv09.jpg

Pour les autres keys du trigger_once il n'y a rien de bien spécial pour notre cas, il y a juste la key delay qui peut être interessante pour les target_endlevel, ça permet de déclencher la target(la cible) du tigger_once

en retard, exemple: le joueur traversse le trigger_once, et plein de monstres viennent l'attaquer puis pouf 10 secondes après, il est sauvé, c'est le prochain niveau, pour la valeur du delay, c'est en seconde !

Voila tout ce qu'il y avait à faire pour la map1.

Dans la map2

Et ben dans la map2 la seule chose qu'il y a à faire est de placer un info_player_start
non non ce n'est pas une blague, le target_endlevel agit comme si vous tappiez dans la console, map test/map2, et donc vous met à l'info_player_start de votre map2.

voici les map que j'ai fait pour ce tutorial map1&map2 qu'il faut décompresser dans le dossier maps de doom3, et compiler avant d'utiliser.

Conclusion

Voila, ce tutorial ce termine, il n'y avait rien de vraiment sorcier, maintenant vous n'avez plus d'excuses pour ne pas faire des campagnes solo de 10h !