Didacticiel jouable : Rêve Egyptien
DOCUMENTATION pour le Tutoriel RÊVE EGYPTIEN
Par Pascal Ducey
Téléchargez le source du projet :
Télécharger
Tout le didacticiel est
rédigé en fonction du projet correspondant MagpTut1. Ce projet est composé des
fichiers suivants :
-
maps\MagpTut1\MagpTut1.PRJ : projet visible sous l'éditeur de niveau
-
maps\MagpTut1\MagpTut1.TGA : ensemble des textures utilisées dans le projet
-
maps\MagpTut1\MagpTut1.TBM : sons associés aux textures
-
maps\MagpTut1\MagpTut1.TFX : sons associés aux textures
-
graphics\wads\MagpTut1.* : tous les objets du wad
Dans ce didacticiel sont présentés et expliqués les points
suivants : cliquez sur un lien pour aller directement sur le sujet
- Le brouillard lointain
FOG
- L'effet de brume
MIST
- L'effet miroir
MIRROR
- Les puzzles à base
d'objets à déplacer de type PUSHABLE_OBJECTS
- Les combinaisons
multiples interrupteurs - portes SWITCH - DOOR
- L'utilisation des
plateformes montantes de type TWOBLOCK_PLATFORM
- L'utilisation des
balances SCALES
- L'utilisation des
interrupteurs de type SEQUENCE_SWITCH
- L'utilisation des
interrupteurs à élément de type ELEMENT_PUZZLE (eau/essence/sable)
- Le TRAVELLING CAMERA
: La caméra suit Lara pendant son déplacement
- La construction
personnalisée des SCRIPTS
Pour mieux comprendre
les différents éléments, ouvrez le projet sous l'éditeur de niveaux officiel.
|
2. Conventions syntaxiques employées |
Lors des explications figurant dans
ce document, il est fait référence à différents termes concernant l'éditeur de
niveau officiel. Chaque fois que vous noterez un terme de couleur verte,
référez-vous aux définition suivantes :
- Fenêtre STT : fenêtre de
configuration d'un déclencheur ("Set Trigger Type")
- TT : type de
déclencheur (ou Trigger Type), comme TRIGGER, PAD, HEAVY, etc.
- Trigger : carré
déclencheur d'une action
- Flags STT : boutons
chiffres de 1 à 5 de la fenêtre STT.
- Fenêtre OCB : fenêtre de
configuration des valeurs OCB d'un objet
- Flags OCB : boutons
chiffres de 1 à 5 de la fenêtre OCB
- Valeur OCB : valeur
indiquée dans la fenêtre OCB
- TCombi : indique de
manière générale l'ensemble des flags qui activés forment la combinaison
1-2-3-4-5 nécessaire au déclenchement d'une action. Cette combinaison peut
être un mix des flags des deux fenêtres STT et OCB.
- RGB : composants Rouge
Vert Bleu d'une couleur (Red Green Blue)
- "Room##"
: indique les pièces du projet à sélectionner dans l'éditeur afin de mieux
comprendre la méthode employée.
Fenêtre STT
Fenêtre OCB

Pour les Flags STT, on notera
1-2-3-4-5
Pour les Flags OCB, on notera
1-x-x-x-5 où "x" indique que le bouton n'est pas appuyé.
Pour de plus amples informations
concernant la fenêtre STT ainsi que la fenêtre OCB, veuillez vous référer
au manuel fourni avec l'éditeur de niveau.
|
3. Présentation des différents thèmes abordés |
Retour au début
L'effet de brouillard lointain
Sans Avec

Sur ces images, on voit
nettement la différence. L'utilisation du brouillard lointain a pour avantage de
permettre la réalisation de pièces dont la limite de profondeur de champ
dépasse les 20 carrés fatidiques. En effet, ceci se traduit par un estompage
progressif et quasi complet des "cassures" apparaissant sur les textures
lointaines. Remarquez la "cassure" inesthétique sur le bâtiment entre les 2
obélisques, sur l'image de gauche. Sur l'image de droite, elle n'y parait plus.
Comparez également ces mêmes cassures au niveau des collines de sables au loin.
Mise en oeuvre
de l'effet de brouillard :
- Retirez les
[Effets spéciaux volumétriques] en décochant la case correspondante dans le setup du jeu. Pour ceci, lancez le programme "setup.exe" qui se situe dans le
répertoire où l'éditeur de niveau est installé.
- Ajoutez la ligne "Fog="
suivante dans le fichier "script.txt" dans le paragraphe concernant le
niveau.
[Level]
Name= Egyptian dream - tutorial
Legend= Turn OFF the Volumetric FX...
Horizon= ENABLED
Fog= 152,192,216
Puzzle= 4,Jewel of Apophis,
$0000,$0400,$0000,$0000,$0000,$0002
Puzzle= 7,Guardian Key,
$0009,$0300,$0000,$0000,$0000,$0002
Puzzle= 12,Golden Beetle,
$0008,$03b0,$0000,$e000,$0000,$000a
Pickup= 1,Bag of Sand,
$0000,$0400,$0000,$2000,$1000,$8002
Pickup= 2,Jerrycan,
$0015,$0500,$4000,$f000,$0000,$4002
Examine= 2,The Sphinx's map,
$0000,$0500,$0000,$0000,$0000,$0002
Mirror= 52,$BC00
LoadCamera= 72000,-280,44029,73827,-811,46221,13
Level= DATA\MAGPTUT1,107
Pensez également à inclure la ligne
"Horizon=" afin d'activer l'affichage de l'objet correspondant du wad.
Les 3 valeurs indiquées dans la ligne "Fog=" correspondent à la valeur
RGB
composant la couleur du brouillard. Cette couleur doit absolument
correspondre à celle de l'HORIZON utilisé dans le wad. En l'occurrence, dans
ce projet, l'horizon est un ciel bleu clair de couleur
RGB=152,192,216
Restrictions :
- Il est impossible d'utiliser
les effets lumineux de type FOG_BULB déclenchés à l'aide des triggers de type
FLIPEFFECT 28, du fait même que les effets volumétriques sont désactivés.
- L'objet HORIZON contenu dans le wad doit être de couleur uniforme et ne doit pas posséder d'éléments de décors
au niveau de l'horizon. Dans ce projet, une planète est ajoutée au décor, mais
elle figure nettement au dessus de l'horizon, ce qui ne peut pas créer de
mélange de couleurs entre la couleur du brouillard et les couleurs de
l'élément de décor. Le tout reste ainsi homogène.
Remarque :
Lors de l'utilisation d'un horizon
complètement noir, donc de couleur RGB=0,0,0, l'effet de brouillard n'a pas
besoin d'être implémenté dans le niveau. Il est entièrement implicite.
Retour au début
L'EFFET DE BRUME
Regardez les pièces "Room16"
(pièce de brume), "Room12" et "Room13"
(pièces au dessus).
Cet effet est activé en pressant le
bouton [M] dans la fenêtre [Room edit buttons]. Il suffit juste de régler
ensuite l'intensité par une valeur comprise entre 1 et 4.
brume au sol

La manière de construire les
différentes pièces est identique à celle utilisée pour concevoir des pièces
d'eau. D'ailleurs, le résultat en lumière est identique. La seule
différence est que Lara ne nage pas dans une pièce de brume. Pour donner un
côté plus réaliste, il faut utiliser une texture particulière qui
sera appliquée au portail entre la pièce du dessus et la pièce de brume, en
n'omettant pas d'activer [Toggle Opacity 2] et [Transparent]. Une texture non
animée est nettement suffisante.

Retour au début
L'EFFET MIROIR
Regardez les pièces "Room52"
(pièce où évolue Lara), et "Room54" (pièce
simulant le miroir). Pour de plus amples informations, référez-vous au manuel
fourni avec l'éditeur, page 74.

Mise en oeuvre :
- Créez 2
pièces, une où Lara évolue, et une simulant le miroir. la pièce simulant le
miroir doit impérativement se situer à gauche de la pièce où
évolue Lara, et être reliée par un portail unique. Le plus simple pour créer
la pièce miroir, c'est de copier la pièce réelle et d'appliquer à la copie
l'effet "mirror" du menu "Room" de l'éditeur.
- Reliez ces 2
pièces et appliquer au portail une texture transparente simulant un miroir. Ne
pas omettre d'activer [Toggle Opacity] et [Transparent].
- Les objets
"fantômes" qu'on voit dans le miroir pendant le jeu doivent être déposés dans
la pièce simulant le miroir, celle de gauche donc (voir les différentes
flammes). Si certains items peuvent être
ramassés, ils doivent également être déposés dans la pièce où évolue Lara
(voir les munitions pour fusil). De
plus, indiquez la valeur 256 dans la fenêtre OCB de chaque
item de la salle de droite.
- Relevez les
coordonnées du carré le plus en haut à gauche de la pièce de droite, comme
indiquez dans l'image suivante.

- Déterminez la
valeur hexadécimale correspondant à la formule suivante (X+1)*1024. Pour ce
faire, utilisez la calculatrice de Windows. Ici, (46+1)*1024 donne 48128 et
48128 donne BC00 en hexadécimal.
- Ajoutez la ligne "Mirror="
dans le fichier "script.txt" dans le paragraphe concernant le niveau.
[Level]
Name= Egyptian dream - tutorial
Legend= Turn OFF the Volumetric FX...
Horizon= ENABLED
Fog= 152,192,216
Puzzle= 4,Jewel of Apophis,
$0000,$0400,$0000,$0000,$0000,$0002
Puzzle= 7,Guardian Key,
$0009,$0300,$0000,$0000,$0000,$0002
Puzzle= 12,Golden Beetle,
$0008,$03b0,$0000,$e000,$0000,$000a
Pickup= 1,Bag of Sand,
$0000,$0400,$0000,$2000,$1000,$8002
Pickup= 2,Jerrycan,
$0015,$0500,$4000,$f000,$0000,$4002
Examine= 2,The Sphinx's map,
$0000,$0500,$0000,$0000,$0000,$0002
Mirror= 52,$BC00
LoadCamera= 72000,-280,44029,73827,-811,46221,13
Level= DATA\MAGPTUT1,107
Ici, la valeur 52
correspond au numéro de la pièce où Lara évolue.
Remarque :
Rappelez-vous que seule Lara est représentée automatiquement dans le miroir.
Soyez également conscients que lorsque vous déplacez l'ensemble des pièces
dans [l'Editor Window Panel] de l'éditeur de niveau, vous devez recalculer la
valeur hexadécimale et modifier le script.
Retour au début
LES PUZZLES A BASE D'OBJETS A DEPLACER
Il faut distinguer 2
grands types de puzzles :
- ceux où chaque objet
à déplacer peut être placé sur n'importe lequel des triggers de l'action
- ceux où chaque objet
à déplacer a sa position bien définie. Il doit être placé sur le trigger correspondant.

On peut alors avoir
plusieurs cas possibles pour chacun de ces 2 grand types de puzzle.
>> PREMIER CAS : 1 ou plusieurs
PUSHABLE_OBJECT pour une action globale, sans notion d'emplacement réservé
Regardez les pièces "Room6"
et "Room7". Dans la pièce n°6 figurent 2
PUSHABLE_OBJECTS pour 2 actions globales distinctes, à savoir :
- l'ouverture des 2
portes centrales
- l'élévation des 2
RAISING_BLOCK1 de la pièce n°7
D'une manière
générale, pour chacune des actions distinctes, il faut que chaque
PUSHABLE_OBJECT soit placé sur un trigger quelconque, et ce n'est que quand
tous les objets sont placés que l'action est déclenchée. Pour ce faire,
il suffit de codifier les différents triggers de la manière suivante : exemple
avec 2 PUSHABLE_OBJECT et 2 objets à déclencher.
|
|
TT |
Flags STT |
Flags OCB du
PUSHABLE_OBJECT |
Flags OCB de
l'objet à déclencher |
|
1erTrigger |
HEAVY for object #1 |
1-x-x-x-x |
|
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
|
|
|
2ème Trigger |
HEAVY for object #1 |
x-2-3-4-5 |
|
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
|
|
Remarquez les
combinaisons 1-2-3-4-5 pour chaque TRIGGER simple. Comme le précédent
TT sur
le même carré est un HEAVY, les autres TT adoptent automatiquement la
même fonction et la même combinaison.
>>
DEUXIEME
CAS : plusieurs PUSHABLE_OBJECT pour une action globale, avec notion
d'emplacement réservé
Regardez les pièces "Room0"
et "Room3". Dans la pièce n°0 figurent 4
PUSHABLE_OBJECTS pour 1 action distincte, à savoir l'ouverture de la
TRAPDOOR1 (dans la même pièce) et la mise en route du ventilateur (ANIMATING1
de la pièce n°3), le tout en même temps. Ici, il faut que les 4
PUSHABLE_OBJECT soient correctement placés pour que l'action globale soit
déclenchée. C'est-à-dire que chaque trigger est codifié en fonction du PUSHABLE_OBJECT qu'il doit recevoir. Si on place un autre PUSHABLE_OBJECT sur
ce trigger, rien ne doit se passer. Aussi, ce n'est pas un
HEAVY qu'il
faut employer mais un HEAVYSWITCH. D'une manière générale, codifier les
différents éléments de la manière suivante : exemple avec 4 PUSHABLE_OBJECT et
2 objets à déclencher.
Exemple N° 1 :
|
|
TT |
Flags STT |
Flags OCB du
PUSHABLE_OBJECT |
Flags OCB de
l'objet à déclencher |
|
1er Trigger |
HEAVYSWITCH for object #1 |
1-x-x-x-x |
1-x-x-x-x |
x-x-x-x-5 |
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
|
x-x-x-x-5 |
|
2ème Trigger |
HEAVYSWITCH for object #1 |
x-2-x-x-x |
x-2-x-x-x |
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
|
|
|
3ème Trigger |
HEAVYSWITCH for object #1 |
x-x-3-x-x |
x-x-3-x-x |
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
|
|
|
4ème Trigger |
HEAVYSWITCH for object #1 |
x-x-x-4-x |
x-x-x-4-x |
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
|
|
Les cases blanches du
tableau indiquent qu'il n'y a rien de particulier à faire.
Remarquez que comme il
n'y à que 4 triggers, pour que la
TCombi soit complète, le 5ème flag est
activé sur les objets à déclencher. Voir également les pièces "Room58",
"Room59" et "Room60"
pour un exemple avec seulement 2 PUSHABLE_OBJECT. Dans ce cas, ce seront les
3ème, 4ème et 5ème flags qui seront activés pour l'objet à déclencher, donc
dans sa fenêtre OCB. Ce n'est évidemment pas une nécessité, car il est
possible de procéder autrement, du moment que la TCombi est complète :
Exemple n° 2 :
|
|
TT |
Flags STT |
Flags OCB du
PUSHABLE_OBJECT |
Flags OCB de
l'objet à déclencher |
|
1er Trigger |
HEAVYSWITCH for object #1 |
1-x-x-x-x |
1-x-x-x-x |
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
" |
|
|
2ème Trigger |
HEAVYSWITCH for object #1 |
x-2-x-x-x |
x-2-x-x-x |
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
" |
|
|
3ème Trigger |
HEAVYSWITCH for object #1 |
x-x-3-x-x |
x-x-3-x-x |
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
" |
|
|
4ème Trigger |
HEAVYSWITCH for object #1 |
x-x-x-4-5 |
x-x-x-4-5 |
|
|
|
TRIGGER for object #2 |
1-2-3-4-5 |
" |
|
Remarquez la
différence par rapport au premier exemple. Ici, le 4ème
trigger ainsi que le
4ème PUSHABLE_OBJECT ont les flags 4 et 5 activés, de manière à compléter la
TCombi. Ainsi, les objets à déclencher n'ont aucun flag activé.
>> TROISIEME CAS : plusieurs
PUSHABLE_OBJECT pour une action globale et plusieurs actions secondaires, avec
notion d'emplacement réservé
Regardez la pièce "Room31".
Dans cette pièce figurent 4 PUSHABLE_OBJECTS pour 1 action globale, et
plusieurs actions secondaires liées à chaque objet bien placé. L'action
globale est ciblée au centre de la pièce. Il s'agit de l'explosion de la
pyramide bleue (MINE), de l'activation de la lumière clignotante bleue (AMBER_LIGHT),
de l'activation de l'arc électrique vertical (LIGHTNING_CONDUCTOR) et de
l'abaissement du bloc invisible (RAISING_BLOCK2). Les actions secondaires sont
l'activation des arcs électriques (FLAME_EMITTER3) situés aux mêmes endroits
que les triggers, et qui sont donc au nombre de 4. Ces derniers sont
importants, car ils permettent d'indiquer au joueur qu'un PUSHABLE_OBJECT est
bien à sa position.
Comme pour le deuxième
cas, l'action globale ne peut être déclenchée que lorsque les 4
PUSHABLE_OBJECT auront été placés correctement. Par contre, les 4 actions
secondaires se déclencheront à chaque fois qu'un PUSHABLE_OBJECT sera bien
placé. De manière générale, les 2 exemples du deuxième cas sont valables pour
ce qui est de la TCombi. En revanche, dans ce projet, il y a une restriction
imposée uniquement par le RAISING_BLOCK2. En effet, comme il est déjà élevé au
départ, c'est le seul objet qui agit à l'envers des autres, de manière
analogique. Ainsi, et comme il est impossible dans ce cas d'utiliser des
ANTITRIGGER, il faut qu'au départ ses flags OCB soient tous activés
(1-2-3-4-5). Par conséquent, il est impossible d'employer l'exemple n°1 du
2ème cas.
Donc, pour réaliser ce
genre de puzzle, utilisez la codification suivante des
triggers pour que la TCombi soit complète : exemple avec 4 PUSHABLE_OBJECT, 3 objets pour le
déclenchement de l'action globale (G_object #n), et 2 objets pour le
déclenchement des actions secondaires (S_object #n).
|
|
TT |
Flags STT |
Flags OCB du
PUSHABLE_OBJECT |
Flags OCB de
l'objet à déclencher |
|
1er Trigger |
HEAVYSWITCH for G_object #1 |
1-x-x-x-x |
1-x-x-x-x |
|
|
|
TRIGGER for G_object #2 |
1-2-3-4-5 |
|
|
| |
TRIGGER
for G_object #3 |
1-2-3-4-5 |
|
|
| |
TRIGGER
for S_object #1 |
1-2-3-4-5 |
|
x-2-3-4-5 |
| |
TRIGGER
for S_object #2 |
1-2-3-4-5 |
|
x-2-3-4-5 |
|
2ème Trigger |
HEAVYSWITCH for G_object #1 |
x-2-x-x-x |
x-2-x-x-x |
|
|
|
TRIGGER for G_object #2 |
1-2-3-4-5 |
|
|
| |
TRIGGER
for G_object #3 |
1-2-3-4-5 |
|
|
| |
TRIGGER
for S_object #1 |
1-2-3-4-5 |
|
1-x-3-4-5 |
| |
TRIGGER
for S_object #2 |
1-2-3-4-5 |
|
1-x-3-4-5 |
|
3ème Trigger |
HEAVYSWITCH for G_object #1 |
x-x-3-x-x |
x-x-3-x-x |
|
|
|
TRIGGER for G_object #2 |
1-2-3-4-5 |
|
|
| |
TRIGGER
for G_object #3 |
1-2-3-4-5 |
|
|
| |
TRIGGER
for S_object #1 |
1-2-3-4-5 |
|
1-2-x-4-5 |
| |
TRIGGER
for S_object #2 |
1-2-3-4-5 |
|
1-2-x-4-5 |
|
4ème Trigger |
HEAVYSWITCH for G_object #1 |
x-x-x-4-5 |
x-x-x-4-5 |
|
|
|
TRIGGER for G_object #2 |
1-2-3-4-5 |
|
|
| |
TRIGGER
for G_object #3 |
1-2-3-4-5 |
|
|
| |
TRIGGER
for S_object #1 |
1-2-3-4-5 |
|
1-2-3-x-x |
| |
TRIGGER
for S_object #2 |
1-2-3-4-5 |
|
1-2-3-x-x |
Remarquez les
Flags
OCB des objets secondaires. Ils forment le complément de la
Tcombi concernant
les objets de l'action globale. De cette manière, ils sont déclenchés à chaque
fois qu'un PUSHABLE_OBJECT est placé.
>> QUATRIEME CAS : plusieurs
PUSHABLE_OBJECT combinés avec les PLANET_EFFECT
Ce cas est similaire
au troisième cas, à la différence que l'objet PLANET_EFFECT est inséré en tant
qu'objet pour les actions secondaires. De plus, une valeur OCB est indiquée
pour chaque PUSHABLE_OBJECT et PLANET_EFFECT. Ceci à pour effet de figer
chaque PUSHABLE_OBJECT une fois bien placé. Il devient alors impossible de le
bouger. Regardez le projet "Library"
fourni avec l'éditeur de niveaux, à la pièce "Room23".
Retour au début
LES COMBINAISONS
MULTIPLES INTERRUPTEURS - PORTES
Dans les exemples
suivants, on ne parlera que de portes et de flammes, mais il va de soi qu'il peut s'agir de
tout autre objet qu'il est possible de déclencher, comme des Blocs, des Animating, des Ennemis, etc...

>> PREMIER CAS : 2 interrupteurs pour
une seule porte
Il s'agit du cas le
plus simple. Regardez la pièce "Room9".
D'une manière générale, codifiez les différents triggers de la manière
suivante :
|
Triggers sur le même carré
que chaque switch |
TT |
Flags STT |
|
1er Trigger |
SWITCH for Switch #1 |
1-x-x-x-x |
|
|
TRIGGER for Door #1 |
1-2-3-4-5 |
| 2ème
Trigger |
SWITCH
for Switch #2 |
x-2-3-4-5 |
| |
TRIGGER
for Door #1 |
1-2-3-4-5 |
>> DEUXIEME CAS : plusieurs
interrupteurs pour plusieurs portes avec notion de combinaison
Dans cet exemple, la
notion de combinaison est importante, car c'est l'utilisation du bon groupe
d'interrupteurs qui déclenchera l'ouverture d'une seule porte parmi les
autres. Pour ouvrir les autres portes, toujours une à une, il faudra utiliser
un autre groupe d'interrupteurs. Ainsi, dans notre projet, comme il y a 4
portes à ouvrir, il nous faut donc 4 combinaisons possibles. Pour ce faire, il
suffit de combiner 3 interrupteurs parmi 4 :
- Interrupteurs 1/2/3
pour la porte 1
- Interrupteurs 1/3/4
pour la porte 2
- Interrupteurs 1/2/4
pour la porte 3
- Interrupteurs 2/3/4
pour la porte 4
De cette manière,
toutes les combinaisons sont employées. Je rappelle que les combinaisons
1/3/2, 2/1/3, 2/3/1, 3/1/2 et 3/2/1 sont strictement les mêmes que la
combinaison 1/2/3. Le résultat final est le même : les 3 mêmes interrupteurs
ont été utilisés. L'exercice n'est bien entendu pas limité à 4 portes, par
contre il est limité à 5 interrupteurs du fait même de la restriction de la
TCombi.
Si nous avions 5
portes, il nous faudrait 5 combinaisons. Par conséquent, il nous faudrait
également 5 interrupteurs, mais combinés 4 à 4 cette fois-ci. On aurait alors
:
- Interrupteurs
1/2/3/4 pour la porte 1
- Interrupteurs
1/2/3/5 pour la porte 2
- Interrupteurs
1/2/4/5 pour la porte 3
- Interrupteurs
1/3/4/5 pour la porte 4
- Interrupteurs
2/3/4/5 pour la porte 5
Encore une fois,
toutes les combinaisons sont couvertes. Mais revenons à l'exemple de notre
projet. Regardez la pièce "Room49". Dans
cette pièce figurent donc 4 interrupteurs ou leviers ainsi que 4 portes et 4
flammes. Chaque flamme au dessus de chaque porte s'allume quand celle-ci
s'ouvre, et s'éteint quand elle se referme. A ce propos, quand une combinaison
de leviers est utilisée, la porte et la flamme correspondantes sont activées,
et les autres sont automatiquement désactivées. Codifiez donc les différents
triggers de la manière suivante :
|
Triggers sur le même carré
que chaque levier |
TT |
Flags STT |
Flags OCB des
objets à déclencher |
|
1er Trigger |
SWITCH for Switch #1 |
1-x-x-x-x |
|
|
|
TRIGGER for Door #1 et Flame
#1 |
1-2-3-4-5 |
x-x-x-4-5 |
| |
TRIGGER
for Door #2 et Flame #2 |
1-2-3-4-5 |
|
| |
TRIGGER
for Door #3 et Flame #3 |
1-2-3-4-5 |
|
| |
TRIGGER
for Door #4 et Flame #4 |
1-2-3-4-5 |
|
|
2ème Trigger |
SWITCH for Switch #2 |
x-2-x-x-x |
|
|
|
TRIGGER for Door #1 et Flame
#1 |
1-2-3-4-5 |
|
| |
TRIGGER for Door #2 et Flame
#2 |
1-2-3-4-5 |
x-2-x-x-5 |
| |
TRIGGER for Door #3 et Flame
#3 |
1-2-3-4-5 |
|
| |
TRIGGER for Door #4 et Flame
#4 |
1-2-3-4-5 |
|
|
3ème Trigger |
SWITCH for Switch #3 |
x-x-3-x-x |
|
|
|
TRIGGER for Door #1 et Flame
#1 |
1-2-3-4-5 |
|
| |
TRIGGER for Door #2 et Flame
#2 |
1-2-3-4-5 |
|
| |
TRIGGER for Door #3 et Flame
#3 |
1-2-3-4-5 |
x-x-3-x-5 |
| |
TRIGGER for Door #4 et Flame
#4 |
1-2-3-4-5 |
|
|
4ème Trigger |
SWITCH for Switch #4 |
x-x-x-4-x |
|
|
|
TRIGGER for Door #1 et Flame
#1 |
1-2-3-4-5 |
|
| |
TRIGGER for Door #2 et Flame
#2 |
1-2-3-4-5 |
|
| |
TRIGGER for Door #3 et Flame
#3 |
1-2-3-4-5 |
|
| |
TRIGGER for Door #4 et Flame
#4 |
1-2-3-4-5 |
1-x-x-x-5 |
Remarquez que le 4ème
trigger n'a que le 4ème
flag STT activé. Le complément de la
TCombi est déterminé par les
flags OCB des différents objets.
Ainsi, pour déterminer
quelle combinaison de leviers active chacun des objets, notez leurs
flags OCB activés et déterminez le
complément de la TCombi :
- Pour la Door #1 et
la Flame #1, c'est bien la combinaison de leviers 1/2/3
- Pour la Door #2 et
la Flame #2, c'est bien la combinaison de leviers 1/3/4
- Pour la Door #3 et
la Flame #3, c'est bien la combinaison de leviers 1/2/4
- Pour la Door #4 et
la Flame #4, c'est bien la combinaison de leviers 2/3/4
Notez également que ce
genre de puzzle est très gourmand en terme de nombre de
triggers utilisés. Rien que pour cette combinaison 4 portes, 4
flammes et 4 leviers, nous avons besoin de 36
triggers.
Retour au début
LES PLATEFORMES MONTANTES
Ici encore, il existe
2 exemples d'utilisation des plateformes montantes ou TWOBLOCK_PLATFORM :
>> PREMIER CAS : les plateformes qui
font office d'ascenseur
Regardez les pièces "Room33",
"Room37", "Room45"
et "Room46".
Dans ces différents
exemples, chaque plateforme amène Lara à un étage différent. Ceci implique que
chaque plateforme devra s'élever à une hauteur différente. Pour ce faire, il
faut agir sur la valeur OCB de chacune des
plateformes en appliquant la formule suivante :
Valeur OCB = H*16 + V
où H est
déterminé par la hauteur d'élévation en nombre de clics.
où V indique la
vitesse de déplacement de la plateforme (valeur comprise entre 1 et
15).
Ainsi, si l'on regarde
chacune des pièces indiquée, on note les différentes
valeurs OCB suivantes :
- Room33 : Valeur OCB=207,
qui équivaut à une élévation de 12 et une vitesse de 15 ==> 12*16+15=207
- Room37 : Valeur OCB=399,
qui équivaut à une élévation de 24 et une vitesse de 15 ==> 24*16+15=399
- Room45 : Valeur OCB=591,
qui équivaut à une élévation de 36 et une vitesse de 15 ==> 36*16+15=591
Ensuite, il faut
déclencher la plateforme, et pour ceci, il y a une règle à respecter : il faut
que la plateforme soit activée par un ou plusieurs
triggers couvrant la surface complète de cette plateforme, et
placés sur le sol de la pièce la plus en dessous. Dans les pièces 33 et 37,
les déclencheurs sont au même endroit que la plateforme, alors que dans les
pièces 45 et 46, la plateforme est dans la pièce du dessus (45) et les
déclencheurs dans la pièce du dessous.(46).
Pour activer une
plateforme montante, il faut absolument un TRIGGER ou HEAVY, mais
celui-ci peut ne pas couvrir toute la surface. Il faut alors compléter les
carrés non couverts par un autre TT, à
savoir un DUMMY. Ce dernier TT à pour
effet d'empêcher Lara de passer au travers de la plateforme aux endroits non
couverts par le trigger normal.
Par exemple, dans les
différentes pièces, on note que la plateforme sera déclenchée lorsque Lara
pressera sur un bouton. Donc, sous le carré de ce bouton figurent deux
TT : un SWITCH pour le bouton et le
TRIGGER pour la plateforme. Or, comme la plateforme couvre une surface de 2
carrés sur 2, il subsiste 3 carrés où il faut activer la plateforme. On place
alors un DUMMY pour la plateforme sur ces carrés restant. Voici deux exemples
de déclenchement d'une plateforme : C1, C2, C3 et C4 représentent les 4 carrés
couvrant la surface de la plateforme.
C1
C2
|
DUMMY
for Twoblock_Platform |
DUMMY
for Twoblock_Platform |
|
TRIGGER
for Twoblock_Platform |
C3
C4
C1
C2
|
|
|
|
|
_ _ _ _ _ _ _ TRIGGER
_ _ _ _ _ _ _
for Twoblock_Platform
|
|
|
| |
C3
C4
>> DEUXIEME CAS : les plateformes
flottantes
Regardez les pièces "Room58"
et "Room59". Dans ce cas, la plateforme
est dite flottante car elle ne s'élève pas, mais elle subit le poids de Lara
quand celle-ci marche dessus, s'abaissant légèrement. Le but de ce puzzle est
alors de faire en sorte de figer la plateforme afin de :
- pouvoir s'en servir
comme pont par exemple. On peut alors y déplacer des PUSHABLE_OBJECT.
- faire qu'un switch
mural devienne accessible pour Lara. Elle est alors à la bonne hauteur pour
l'atteindre.
La
valeur OCB de la plateforme doit être
égale à 0. Par contre, comme elle est flottante au début du puzzle,
elle doit alors être activée. Le plus simple dans ce cas, c'est d'appuyer tous
ses Flags OCB (1-2-3-4-5). Ensuite, la
figer reviendra simplement à la désactiver par un ANTITRIGGER ou un
HEAVYANTITRIGGER. Comme pour le premier cas, veillez toujours à ce que
l'ensemble des triggers occupe toute la
surface de la plateforme.
Retour au début
L'UTILISATION DES
BALANCES
Les balances,
symbolisées par l'objet SCALE, peuvent être utilisées seules ou combinées avec
l'ennemi AHMET. D'une manière générale, le fonctionnement des balances est le
suivant :
- On déverse une
certaine quantité d'eau dans le plateau de gauche de la balance.
- Si la quantité n'est
pas celle définie, un déclenchement s'opère comme un piège mortel où la
libération de AHMET.
- Si la quantité est
la bonne, un autre déclenchement s'opère, comme l'ouverture d'une porte de
sortie.

N'oubliez jamais de
construire non loin une petite salle d'eau facilement accessible où Lara
pourra remplir ses gourdes.
Liste des objets
à insérer dans le wad :
- WATERSKIN1_EMPTY,
WATERSKIN1_1, WATERSKIN1_2, WATERSKIN1_3 : petite gourde
- WATERSKIN2_EMPTY,
WATERSKIN2_1, WATERSKIN2_2, WATERSKIN2_3, WATERSKIN2_4, WATERSKIN2_5 : grande
gourde
- LARA_WATER_MESH :
animation de Lara pour l'utilisation des gourdes
- SCALE : balance
- AHMET : ennemi
facultatif
>> PREMIER CAS : utilisation de la
balance seule
Regardez la pièce "Room21".
Dans cet exemple, si Lara verse la bonne quantité d'eau dans la balance, la
porte située à l'autre bout de la pièce s'ouvre, permettant de continuer
l'aventure. Dans le cas contraire, les pointes mortelles sont activées, ne
laissant aucune chance à notre héroïne de s'en sortir. La codification du
puzzle concerna t les balances se fait de la manière suivante :
- Encastrez
toujours l'objet SCALE dans un renfoncement de 3 carrés de large sur 2 de
profondeur minimum (voir l'image suivante). De cette façon, Lara ne pourra
y accéder que par le devant, et ne pourra s'en aller que par le même passage,
l'obligeant à passer sur les triggers
prévus pour le déclenchement du piège mortel.
- Indiquez dans la
valeur OCB de l'objet SCALE le nombre de
litres d'eau que Lara devra verser pour activer la porte de sortie.
- Placez un
trigger HEAVY pour la porte de sortie,
sous le pied central de la balance.
- Placez un
trigger KEY pour la balance sur l'ensemble
des 3 carrés situés devant la balance.
- Sur ces mêmes 3
carrés, placez autant de TRIGGER pour les objets mortels que nécessaire.

en rouge : zone d'encastrement de la balance
en bleu : zone d'emplacement de l'objet SCALE
Vous remarquerez
pendant le jeu que lorsque la quantité d'eau versée n'est pas la bonne, la
porte de sortie s'ouvre quand même. C'est dû au fait que le
trigger HEAVY est systématiquement
déclenché. Cependant, dans ce cas là uniquement, les pièges mortels
empêcheront Lara de s'enfuir.
>> DEUXIEME CAS : utilisation de la
balance combinée avec l'ennemi AHMET
Regardez les pièces "Room40",
"Room42" et "Room43".
L'exemple est quasiment le même que celui du premier cas, à la différence que
le puzzle peut être réinitialiser de manière à permettre une nouvelle
tentative par le joueur. La réinitialisation s'opère ainsi :
- AHMET est enfermé
dans sa cage.
- Lara verse une
mauvaise quantité d'eau dans la balance.
- La cage de l'ennemi
s'ouvre, libérant AHMET.
- Lara doit éliminer
AHMET.
- AHMET disparaît et
reprend sa position dans sa cage, et la balance retrouve son état initial.
ATTENTION :
construisez votre niveau de manière à bien respecter cet ordre d'évènements.
Ne pas permettre à Lara d'éliminer AHMET avant qu'elle ait versé de l'eau dans
la balance, où le puzzle ne fonctionnera pas. Bien entendu, si Lara verse la
bonne quantité d'eau, aucun de ces évènements ne se produira, et la balance ne
pourra pas être réinitialisée, ce qui est tout à fait normal, puisque le
puzzle est résolu. Pour codifier ce puzzle, respectez les points suivants :
- Placez AHMET dans
une salle adjacente, connectée à la salle au puzzle, et placez-y une porte
grillagée symbolisant une cage. Ne placez pas cette porte au niveau de la
connexion entre les 2 salles, mais bien dans la cage, en prenant garde de
l'orientée correctement afin que le problème de collision soit bien dirigé
vers l'intérieur de la cage. Ainsi, AHMET restera à distance derrière la
porte, sans passer sa tête au travers et Lara ne pourra pas lui tirer dessus
non plus.
- Activez AHMET dans
une pièce précédente par un TRIGGER simple. De cette manière, l'ennemi sera
visible dès l'arrivée dans la salle au puzzle.
- Indiquez dans la
valeur OCB de l'objet SCALE le nombre de
litres d'eau que Lara devra verser pour activer la porte de sortie.
- Placez un
trigger HEAVY pour la porte de sortie,
sous le pied central de la balance.
- Placez un
trigger KEY pour la balance sur l'ensemble
des 3 carrés situés devant la balance.
- Sur ces mêmes 3
carrés, placez un TRIGGER pour la porte de la cage.
- Devant la cage, dans
la salle au puzzle, placez un HEAVIANTITRIGGER pour la porte de cette cage. Ce
trigger à un double avantage. D'une part, c'est AHMET qui, une fois libéré
activera le trigger qui refermera la porte, évitant ainsi à Lara de pouvoir
pénétrer dans la cage. D'autre part, une fois AHMET éliminé, il retournera
automatiquement dans sa salle et la porte sera déjà refermée.
Dans cet exemple,
étant donné que la balance peut être réinitialisée autant de fois qu'on veut,
il n'y a donc pas de piège mortel.
N.B. : dans
certains cas, il arrive que AHMET ne reprenne pas sa position initiale une
fois éliminé. Afin d'éviter ce genre de désagrément, veillez à ne pas disposer
d'autres objets dans la salle d'AHMET, respectez une hauteur de 8 clics
minimum, et placez AHMET sur un sol plat sous un plafond également plat. Il
est néanmoins possible qu'il existe d'autres facteurs générateurs de ce
problème.
Retour au début
UTILISATION
DES SEQUENCE_SWITCH
Les SEQUENCE_SWITCH
constituent un groupe de 3 gros interrupteurs qui fonctionnent de manière
combinée, c'est-à-dire qu'il ne peuvent pas être utilisés séparément. Ici,
contrairement au chapitre concernant les combinaisons multiples
Interrupteur/Porte, l'ordre de pression des SEQUENCE_SWITCH est important. Et
comme ils sont au nombre de 3, il y a donc 6 combinaisons possibles, à savoir
: 1/2/3, 1/3/2, 2/1/3, 2/3/1, 3/1/2 et 3/2/1. Chaque combinaison déclenche
automatiquement l'ouverture d'une porte spéciale correspondante. Par
conséquent, il faut toujours prévoir 6 portes dans le niveau. En effet, du
fait que ces interrupteurs sont codifiés dans le jeu lui-même, il n'y a que
très peu de liberté quant à leur utilisation. Il faut donc respecter
scrupuleusement les règles suivantes afin de les faire fonctionner :

Liste des objets
à insérer dans le wad :
- SEQUENCE_SWITCH1 :
1er interrupteur
- SEQUENCE_SWITCH2 :
2ème interrupteur
- SEQUENCE_SWITCH3 :
3ème interrupteur
- SEQUENCE_DOOR1 :
porte directement liée aux interrupteurs. Les autres portes ne fonctionnent
pas avec ces interrupteurs
- ANIMATING8 :
encadrement des interrupteurs
Mise en oeuvre
du jeu d'interrupteurs :
Regardez la pièce "Room26".
Placez sur 3 carrés
côte à côte les 3 SEQUENCE_SWITCH, 3 ANIMATING8 ainsi que 3
triggers SWITCH de la manière suivante :
|
Objets à
2 clics de haut |
ANIMATING8
SEQUENCE_SWITCH2 |
ANIMATING8
SEQUENCE_SWITCH3 |
ANIMATING8
SEQUENCE_SWITCH1 |
|
Triggers |
SWITCH for SEQUENCE_SWITCH1 |
SWITCH for SEQUENCE_SWITCH2 |
SWITCH for SEQUENCE_SWITCH3 |
Attention à l'ordre
des interrupteurs et veillez à bien sélectionner le bon SEQUENCE_SWITCH pour
chaque trigger. N'oubliez pas d'élever les
objets à une hauteur de 2 clics.
- Placez ensuite 6
portes SEQUENCE_DOOR1 au niveau des connexions avec d'autres pièces.
- Réglez la
valeur OCB de chacune d'elles avec une
valeur différente allant de 0 à 5.
- Activez également
tous les Flags OCB de chaque porte (1-2-3-4-5),
ceci afin qu'elles soient reconnues dès le départ.
Afin de bien connaître
quelle combinaison d'interrupteurs déclenche l'ouverture de quelle porte,
consultez le tableau suivant :
|
Combinaisons des
SEQUENCE_SWITCH |
SEQUENCE_DOOR déclenchée
par la combinaison
Valeur OCB |
|
1-2-3 |
0 |
|
1-3-2 |
1 |
|
2-1-3 |
2 |
|
2-3-1 |
3 |
|
3-1-2 |
4 |
|
3-2-1 |
5 |
Par exemple, lorsque
Lara pressera les interrupteurs 2, puis 1, puis 3, c'est
la porte dont la valeur OCB est égale à
2 qui s'ouvrira.
Restrictions
importantes :
- La porte dont la
valeur OCB est égale à 0 doit
absolument être la première déclenchée. Prévoir donc que la combinaison
1/2/3 soit la première utilisée par le joueur.
- Le système
d'interrupteurs ne se réinitialise que lorsque qu'une porte est refermée,
obligeant Lara à emprunter tout de suite le chemin nouvellement ouvert. Il
faut donc prévoir aux endroits adéquats des triggers
de type ANTITRIGGER for SEQUENCE_DOOR1 #n. Ensuite, et comme le chemin aura
déjà été visité, prévoir également un trigger
de type TRIGGER for SEQUENCE_DOOR1 #n afin d'ouvrir à nouveau la porte. De
cette manière, si le joueur utilise encre une fois la même combinaison
d'interrupteurs, ceux-ci se réinitialiseront automatiquement, du fait que le
chemin est désormais toujours accessible.
Exemple
particulier employé dans ce projet :
Regardez les pièces "Room26",
"Room35" et "Room36".
Dans ce projet, seules
3 portes sont utilisées dans le jeu (visibles dans la pièce n°26). Mais, comme
il faut absolument que les 6 portes soient présentes dans le niveau, une
astuce consiste à faire en sorte que l'ouverture d'une porte non prévue
déclenche un piège mortel. C'est le cas dans les pièces n° 35 et 36. Ces
pièces ne sont reliées avec aucune autre, et sont donc invisibles pour le
joueur. Ici, le piège consiste à libérer une ROLLINGBALL, retenue au départ
derrière la porte, et qui va déclencher le piège en passant dessus. Observez
les différents réglages OCB des
ROLLINGBALL, des 3 portes et des triggers
de ces deux pièces.
Retour au début
UTILISATION DES
ELEMENT_PUZZLE
Regardez la pièce "Room96".
Les ELEMENT_PUZZLE
consistent en trois objets représentant des plateaux de balance, destinés à
recevoir trois éléments distincts : l'eau, la terre et le feu. Il y a donc 3
types d'ELEMENT_PUZZLE, et ceux-ci peuvent être utilisés indépendamment les
uns des autres, ou alors combinés, afin de déclencher toute sorte d'évènement.
N'oubliez jamais de
construire non loin une petite salle d'eau facilement accessible où Lara
pourra remplir ses gourdes. N'oubliez pas non plus de placer une flamme où
Lara pourra allumer la torche à main.

Liste des objets
à insérer dans le wad :
La liste suivante est
établie pour les 3 éléments. Si vous ne voulez pas implémenter un élément
particulier dans votre niveau, omettez les objets correspondants.
- ELEMENT_PUZZLE :
objet à plateau
- WATERSKINs : Une
seule ou les 2 gourdes nécessaires au placement de l'élément "eau" (voir le
chapitre sur l'utilisation des balances)
- PICKUP_ITEM1 : le
sac de sable nécessaire au placement de l'élément "terre"
- PICKUP_ITEM2 : le
jerrican d'essence nécessaire au placement de l'élément "feu"
- BURNING_TORCH_ITEM :
la torche à main nécessaire à l'embrasement de l'essence pour l'élément "feu"
- LARA_WATER_MESH :
animation de Lara pour l'utilisation des gourdes
- LARA_DIRT_MESH :
animation de Lara pour l'utilisation du sac de sable
- LARA_PETROL_MESH :
animation de Lara pour l'utilisation du jerrican d'essence
- TORCH_ANIM :
animation de Lara pour l'utilisation de la torche à main
Mise en oeuvre :
- Placez autant
d'objets ELEMENT_PUZZLE que nécessaire, où bon vous semble, et réglez la
valeur OCB de chacun d'eux comme suit :
- 0 : le
plateau recevra l'élément "eau".
- 1 : le
plateau recevra l'élément "feu".
- 2 : le
plateau recevra l'élément "terre"
- Placez ensuite sous
chacun d'eux un trigger de type HEAVY
pour l'objet à déclencher. Rappelez-vous que les ELEMENT_PUZZLE peuvent être
combinés pour un déclenchement unique. Il faudra alors régler les
flags STT de chaque
trigger de manière à ce que la TCombi
soit complète. C'est la cas dans ce projet, dans la pièce n° 96.
Fonctionnement
du puzzle dans le jeu :
Pour déposer chaque
élément, il faut au préalable ouvrir l'inventaire, et sélectionner cet
élément.
- Pour le plateau
destiné à recevoir l'eau : remplissez une gourde, placez ensuite Lara
devant le plateau avec les vagues bleutées et versez-y le contenu de la
gourde.
- Pour le plateau
destiné à recevoir la terre : ramassez le sac de sable, placez ensuite
Lara devant le plateau avec le triangle brunâtre et versez-y le contenu
du sac.
- Pour le plateau
destiné à recevoir le feu : ramassez le jerrican, placez ensuite Lara
devant le plateau avec le soleil, et versez-y le contenu du jerrican.
Ramassez ensuite la torche à main, allumez-la et embrasez le plateau.
Retour au début
LE TRAVELLING
CAMERA
Le travelling caméra
consiste en un séquence de plusieurs caméras placées judicieusement, et qui
suivent les déplacements de Lara. Pour ceci, on utilise des caméras de type
FLYBY d'une manière un peu particulière, car le joueur garde le contrôle de
Lara pendant toute la séquence. Regardez les pièces "Room90"
et "Room91" pour mieux comprendre.
En général, procédez
de la manière suivante :
- Prévoyez une suite
de plusieurs carrés côte à côte où la séquence sera activée
- Placez au minimum 2
caméras de type FLYBY en respectant ceci : la 1ère à côté du carré où débute
la séquence, et la dernière à côté du carré où se termine la séquence. Essayez
de na pas placer de caméras au dessus de la suite de carrés, où le résultat ne
sera pas très esthétique. Vous pouvez placer d'autres caméras intermédiaires
entre les 2 extrémités, où bon vous semble, en gardant à l'esprit que ce n'est
que lorsque Lara se déplacera que la séquence passera progressivement d'une
caméra à la suivante.
- Réglez les
propriétés de chaque caméra dans sa fenêtre OCB
comme ceci :

Seq :
numéro de séquence des caméras
Num :
numéro de la caméra dans la séquence
Speed :
rapidité de la caméra. Laissez toujours 1
Roll :
inclinaison de la caméra
FOV :
focale
OCB :
appuyez uniquement le 3 (pour indiquer que les caméras surveillent
Lara) et le 11 (pour permettre le contrôle de Lara)
- Sélectionnez la
suite de carrés, et placez un TRIGGER pour la première caméra. N'activez pas
le "oneshot", ni aucun flags STT, car la
séquence doit être systématiquement activée lorsque Lara passe dessus. Lorsque
Lara quitte le trigger, la séquence se coupe automatiquement.
Dans ce projet, il n'y
a que 2 caméras, ce qui est largement suffisant. Le
trigger est en fait de type MONKEY, car ce n'est que lorsque Lara
est suspendue à l'échelle de singe du plafond que la séquence est activée
depuis la salle du dessous. Lorsque Lara marche sur le
trigger, rien ne se passe.
Retour au début
LA CONSTRUCTION
PERSONNALISEE DES SCRIPTS
Construire des scripts
personnalisés consiste à apporter diverses modifications dans les fichiers
"SCRIPT.TXT", "FRENCH.TXT" et "ENGLISH.TXT", de manière à personnaliser les
différents affichages dans le jeu, comme :
- le libellé du niveau
- la légende affichée
au lancement de la partie
- les noms des items
dans l'inventaire
Nous verrons également
comment :
- intégrer les objets
à examiner dans le jeu
- ajouter un ciel en
mouvement
- ajouter l'effet
lenticulaire
- effacer le contenu
de l'inventaire
- configurer la
position des items dans l'inventaire
Pour tout autre
renseignement concernant les scripts, référez-vous au manuel fourni avec
l'éditeur, aux pages 63 et 64.
a. Configurer
les scripts pour une conversion multi-langues
Il faut savoir qu'il
est totalement inutile de créer un fichier "script.txt" en Français. Il suffit
simplement de modifier les fichiers "english.txt" et "french.txt" aux endroits
adéquats. Le convertisseur fourni avec l'éditeur se chargera d'effectuer la
traduction nécessaire, à condition de l'avoir indiqué dans le "script.txt". En
effet, si vous désirez fournir votre niveau en Français et en Anglais, laissez
simplement les lignes suivantes dans le fichier "script.txt" :
;--------------------------------------
; Language Filenames
;--------------------------------------
[Language]
File= 0,ENGLISH.TXT
File= 1,FRENCH.TXT
Ensuite, il suffit de
lancer le convertisseur : "English Script.bat" pour générer les scripts
anglais et "French Script.bat" pour générer les scripts
français. Mais avant de lancer le convertisseur, je vous conseille de le
modifier afin d'y ajouter une pause à la fin, de manière à pouvoir lire
les résultats de la conversion dans la fenêtre DOS, avant que celle-ci se
referme. Ceci à pour avantage de savoir si vous avez commis une erreur dans
les fichiers ".txt". Par exemple, le convertisseur français devrait ressembler
à ceci :
script script.txt
del ..\*.dat
copy script.dat ..\
copy french.dat ..\
del strings.h
pause
b. Comment
modifier les différents libellés
- La ligne "Name="
indique le nom de votre niveau. Veillez à ne pas utiliser certains caractères
spéciaux comme les deux points ":" par exemple.
- La ligne "Legend="
indique un texte qui apparaît dans le jeu au début d'une nouvelle partie.
- Les lignes "Puzzle=",
"Pickup=", "Key=" et "Examine=" indiquent les noms des
différents items figurant dans l'inventaire, et prévus dans le niveau.
Extrait du fichier
"script.txt" :
...
[Level]
Name= Egyptian dream - tutorial
Legend= Turn OFF the Volumetric FX...
Puzzle= 4,Jewel of Apophis,
$0000,$0400,$0000,$0000,$0000,$0002
Puzzle= 7,Guardian Key, $0009,$0300,$0000,$0000,$0000,$0002
Puzzle= 12,Golden Beetle, $0008,$03b0,$0000,$e000,$0000,$000a
Pickup= 1,Bag of Sand, $0000,$0400,$0000,$2000,$1000,$8002
Pickup= 2,Jerrycan, $0015,$0500,$4000,$f000,$0000,$4002
Examine= 2,The Sphinx's map, $0000,$0500,$0000,$0000,$0000,$0002
...
Dans cet exemple, vous
remarquerez que les lignes en gras désignent des libellés totalement nouveaux,
qui n'existent pas dans la version de l'éditeur de niveaux. Pour
conserver une cohérence, chaque libellé figurant dans le fichier "script.txt"
doit également exister dans le fichier "english.txt", sinon il y aura une
erreur de conversion, et les scripts ne seront pas générés. Quant au fichier
"french.txt", il contiendra la version traduite de chaque libellé.
ATTENTION :
Pensez que les fichiers "english.txt" et "french.txt" listent de manière
exhaustive tout ce qui peut exister dans le jeu. Vous y retrouverez tous les
noms de niveaux standard de Tomb Raider 4 ainsi que les noms de tous les items
de l'inventaire. Aussi, vous ne devez jamais ajouter ou supprimer de
ligne dans ces fichiers, sous peine d'avoir systématiquement une erreur de
conversion. Vous devrez également veillez à choisir judicieusement les lignes
que vous modifierez. Pour les noms de niveau, la ligne est celle
correspondant au numéro d'ordre du niveau. Pour les items de l'inventaire,
modifiez les noms de ceux que vous n'utiliserez jamais dans votre niveau.
Pour mieux comprendre
les lignes choisies dans le tableau ci-dessous, ouvrez sous le bloc notes les
fichier "english.txt" et "french.txt" standard.
|
Extrait du fichier "english.txt" modifié
|
Extrait du
fichier "french.txt" modifié |
|
;**************************************
;
; Tomb Raider IV English Strings File
; Release Version 1.00
;
;**************************************
;--------------------------------------
; Generic Strings
;--------------------------------------
[Strings]
Cambodia, 1984
Turn OFF the Volumetric FX...
Title Load Screen
Egyptian dream - tutorial
The Tomb Of Seth
Burial Chambers
Valley Of The Kings
KV5
Temple Of Karnak
...
|
;**************************************
;
; Tomb Raider IV English Strings File
; Release Version 1.00
;
;**************************************
;--------------------------------------
; Generic Strings
;--------------------------------------
[Strings]
Cambodge, 1984
Mettez les effets volum‚triques sur OFF...
Ecran de chargement
Rˆve ‚gyptien - tutoriel
Le tombeau de Seth
Les chambres s‚pulcrales
La vall‚e des rois
KV5
Le temple de Karnak
...
|
|
...
Armoury Key
The Guards Keys
Scrap Of Paper
Stone of Maat
Stone of Khepri
Stone of Atum
Stone of Re
Jewel of Apophis
Golden Beetle
The Sphinx's map
Black Beetle
Broken Beetle
Broken Glasses
Fire Circle Scroll
...
|
...
Clef de l'armurerie
Clefs des gardes
Bout de papier
Pierre de Maƒt
Pierre de Kh‚pri
Pierre d'Atoum
Pierre de Rƒ
Joyau d'Apophis
Scarab‚e d'or
Les conseils du Sphinx
Scarab‚e noir
Scarab‚e bris‚
Lunettes bris‚es
Parchemin du Cercle de Feu
...
|
Faites attention
également à ne jamais utiliser les caractères diacritiques français, comme :
"é", "è", "ê", "ù", "û", "à", "â", "î", "ô". Cherchez les caractères
correspondants dans le fichier "french.txt" et faites un copier-coller.
Retour au début
de ce paragraphe
c. Intégrer des
objets à examiner
Les objets à examiner
sont des items que Lara peut ramasser dans le jeu, et auxquels sont attachés
un texte explicatif. Ceci afin d'aider le joueur dans sa progression, en lui
fournissant quelques indices. Ces objets peuvent également figurer un plan ou
un carte sans aucune explication.
Pour ce faire, ajouter
dans votre wad le ou les objets EXAMINE1, EXAMINE2, EXAMINE3, en sachant que
seul l'objet EXAMINE1 ne peut avoir de texte explicatif. Ajoutez ensuite dans
le fichier "script.txt" la ligne suivante, dans le paragraphe concernant le
niveau :
[Level]
Name= Egyptian dream - tutorial
Legend= Turn OFF the Volumetric FX...
Horizon= ENABLED
Fog= 152,192,216
Puzzle= 4,Jewel of Apophis,
$0000,$0400,$0000,$0000,$0000,$0002
Puzzle= 7,Guardian Key,
$0009,$0300,$0000,$0000,$0000,$0002
Puzzle= 12,Golden Beetle,
$0008,$03b0,$0000,$e000,$0000,$000a
Pickup= 1,Bag of Sand,
$0000,$0400,$0000,$2000,$1000,$8002
Pickup= 2,Jerrycan,
$0015,$0500,$4000,$f000,$0000,$4002
Examine= 2,The Sphinx's map,
$0000,$0500,$0000,$0000,$0000,$0002
Mirror= 52,$BC00
LoadCamera= 72000,-280,44029,73827,-811,46221,13
Level= DATA\MAGPTUT1,107
Ici, le chiffre 2
indique que c'est l'objet EXAMINE2 qui est utilisé. Il faudra donc modifier le
texte explicatif dans le fichier "english.txt" et dans le fichier "french.txt".
Rendez-vous donc au niveau des lignes suivantes dans ces fichiers :
|
english.txt |
...
Action
Draw Weapon
Jump
Roll
Walk
Look
Duck
Dash
Inventory
RULES1:On the 3rd floor,\ndon't waste your
time.\nTake the following paths\nE
- N/E - N/W - W.
RULES2:On the 2nd visit to the N/E path,\nchoose
these floating slabs\nS/W - N/W - W - S/W - N/W -
N -\n N/E - E - N - N/E - E
PETEPOO:For the serpents to live,\nall must first be stilled.\nprovoke
each in turn,\nand the circle will burn\ncomplete.
...
|
|
french.txt |
...
Action
D‚gainer
Saut
Roulade
Marcher
Scruter
S'accroupir
Sprinter
Inventaire
REGLES (1Šre partie) : Au troisiŠme ‚tage,\nne
gaspillez par votre temps.\nEmpruntez les
chemins suivants :\nE - N/E - N/W - W.
REGLES (2nde partie): A la 2Šme visite du chemin au N/E,\nchoisissez
les dalles flottantes\nS/W - N/W - W - S/W -
N/W - N -\n N/E - E - N - N/E - E
PETEPOO : Pour que les serpents vivent,\ntous doivent\nˆtre calm‚s.
D‚fiez-les chacun … son tour\net le cercle se consumera\ntotalement.
...
|
Les caractères "\n"
sont en fait des séparateurs indiquant que le texte qui suit devra être à la
ligne suivante sur l'écran de jeu.
Si vous décidez
d'incorporer un objet à examiner dont le texte sera plus court, utilisez alors
l'objet EXAMINE3, et modifiez le texte au niveau de la ligne commençant par "PETEPOO".
Retour au début
de ce paragraphe
d. Ajouter un
ciel en mouvement
Ajouter un ciel en
mouvement nécessite d'avoir :
- dans le wad, l'objet
HORIZON ouvert. Dans ce projet, l'horizon utilisé est fermé. Pour voir un
horizon ouvert, ouvrez le projet "karnak.prj"
- dans le wad, l'objet
SKY_GRAPHICS.
- dans le même
répertoire que celui du wad, un fichier image au format ".raw"
correspondant à l'image du ciel. Ce fichier doit être codifié en 256x256,
trois couches chromatiques RGB entrelacées et en ordre RGB, RGB, ...
Ajouter ensuite les
lignes suivantes dans le fichier "script.txt", dans le paragraphe concernant
le niveau :
...
[Level]
Name= My
level
Horizon= ENABLED
Layer1= 128,96,192,7
Layer2= 128,96,192,-10
ColAddHorizon= ENABLED
Lightning= ENABLED
Puzzle= 1,My item 1,
$0001,$0320,$0000,$0000,$0000,$0002
Puzzle= 2,My item 2,
$0001,$0320,$0000,$0000,$0000,$0002
...
>> La ligne "Horizon="
fait apparaître l'objet HORIZON pendant le jeu. Ligne obligatoire.
>> La ligne "Layer1="
fait apparaître le ciel pendant le jeu. Les différentes valeurs indiquent la
couleur RGB du ciel ainsi que la vitesse
des nuages. Ligne obligatoire.
Les nombres
128,96,192 indiquent une valeur modifiant la composante Rouge, Verte et
Bleue de l'image ".raw". Les valeurs sont comprises entre 0 et 255, et
s'indiquent de la manière suivante :
- entre 0 et 127 ==>
la composante sera moins prononcée donc plus foncée.
- égale à 128 ==> la
composante sera identique à celle de l'image ".raw"
- entre 129 et 255 ==>
la composante sera plus prononcée donc plus claire
Le chiffre 7
indique la vitesse et l'axe de déplacement des nuages. La valeur s'indique de
la manière suivante :
- valeur négative ==>
les nuages vont dans un sens. Plus le nombre est petit, plus ils se déplacent
rapidement.
- égale à 0 ==> les
nuages ne bougent pas
- valeur positive ==>
les nuages vont dans le sens contraire. Plus le nombre est grand, plus ils se
déplacent rapidement.
>> La ligne "Layer2="
permet d'ajouter un effet identique supplémentaire au ciel. On peut par
exemple faire que les nuages se déplacent dans les 2 sens, et à des vitesses
différentes. Ligne facultative.
>> La ligne "ColAddHorizon="
permet d'ajouter une jonction entre le haut de l'horizon et le ciel. Pour
ceci, il faut que l'objet HORIZON ait des textures semi-transparentes à son
sommet. Regardez en exemple l'horizon du wad "coastal" (les ruines côtières).
Ligne facultative.
>> La ligne "Lightning="
ajoute l'effet d'éclair dans le ciel accompagné du bruit de tonnerre. Ligne
facultative.
Retour au début
de ce paragraphe
e. Ajouter
l'effet lenticulaire
L'effet lenticulaire
fait apparaître une lumière symbolisant le soleil. C'est l'effet de "LENS
FLARE". Ajoutez la ligne suivante dans le fichier "script.txt", dans le
paragraphe concernant le niveau :
...
[Level]
Name= My
level
Horizon= ENABLED
Layer1= 128,96,192,7
Layer2= 128,96,192,-10
ColAddHorizon= ENABLED
Lightning= ENABLED
LensFlare= 250000,-32000,110000,128,96,0
Puzzle= 1,My item 1,
$0001,$0320,$0000,$0000,$0000,$0002
Puzzle= 2,My item 2,
$0001,$0320,$0000,$0000,$0000,$0002
...
>> Les 3 premières
valeurs 250000,-32000,110000 indiquent l'emplacement X;Y;Z de l'effet.
Remarquez la valeur négative de l'ordonnée Y. Une valeur plus petite (-40000
par ex.) placera l'effet plus haut, et inversement.
>> Les 3 valeurs
suivantes 128,96,0 indiquent la couleur RGB
de l'effet
Pour que l'effet soit
visible, il faut que Lara se trouve dans une pièce extérieure,
c'est-à-dire avec le bouton [O] de la fenêtre [Room edit buttons]
pressé. Pressez le bouton [NL] si vous voulez éliminez l'effet
d'éblouissement.
Retour au début
de ce paragraphe
f. Effacer le
contenu de l'inventaire
Cette fonction
consiste à vider l'inventaire de tous les items ramassés par Lara pendant le
jeu. Evidemment, ce procédé n'est utile que si vous comptez fournir une
aventure faite de plusieurs niveaux consécutifs. En effet, l'inventaire est
seulement effacé quand Lara passe d'un niveau au suivant. Pour intégrer cette
fonction, ajoutez la ligne suivante dans le fichier "script.txt", dans le
paragraphe concernant le niveau avant lequel l'inventaire doit être effacé :
...
[Level]
Name= My
level
Horizon= ENABLED
Layer1= 128,96,192,7
Layer2= 128,96,192,-10
ColAddHorizon= ENABLED
Lightning= ENABLED
ResetHub= 5
LensFlare= 250000,-32000,110000,128,96,0
Puzzle= 1,My item 1,
$0001,$0320,$0000,$0000,$0000,$0002
Puzzle= 2,My item 2,
$0001,$0320,$0000,$0000,$0000,$0002
...
Dans cet exemple, on
considère qu'il s'agit du niveau 4. Et lorsque Lara débutera le niveau
numéro 5, tous les objets PUZZLE, EXAMINE, KEY et PICKUP déjà ramassés
n'existeront plus. Ca a pour avantage de ne pas avoir à incorporer dans le wad
des niveaux suivants des items dont on a pas besoin.
Retour au début
de ce paragraphe
g. Configurer la
position et le comportement des items dans l'inventaire
Lorsque vous
visualisez l'inventaire durant le jeu, chaque item ramassé apparaît, pour peu
qu'une ligne le définissant soit incorporée dans le fichier "script.txt". La
façon dont il apparaît est déterminée par un ensemble de valeurs indiquant sa
position, son inclinaison et sa rotation. Ces différents éléments sont
codifiées dans chaque nombre qui suit le signe "$" au bout des lignes débutant
par "Puzzle=", "Key=", "Examine=" ou "Pickup=". Il y a au total 6 valeurs
hexadécimales qui
peuvent être paramétrées de la manière suivante :
Les explications suivantes ont été réalisées par "Bojrkraider"
du forum de "Lara's Home".
Puzzle= 1,My item 1, $0017,$03b0,$8000,$f000,$0000,$0002
>> Valeur
1 :
Déplace l'objet en haut ou en bas dans l'inventaire
Exemple :
1000 - changer le chiffre 1 ==> grand déplacement (l' object is off the screen)
0100 - changer le chiffre 2 ==> L'objet se déplace d'environ la moitié de
l'écran
0010 - changer le chiffre 3 ==> L'objet se déplace un peu vers le bas (utile
pour les objets qui apparaissent trop haut dans l'inventaire).
0001 - changer le chiffre 4 ==> Le mouvement est très faible (pour de petits
déplacements)
>> Valeur 2 : Taille de l'objet.
Modifiez le chiffre 2 et 3 uniquement
>> Valeur 3 : Rotation de l'objet en diagonale. Changez le chiffre 1
uniquement.
>> Valeur 4 : Rotation de haut en bas.
Changez le chiffre 1 uniquement.
>> Valeur 5 : Rotation de gauche à droite.
Changez le chiffre 1 uniquement
>> Valeur 6 : Vitesse de rotation
Exemple général :
$0002 - rotation
par défaut
$000a -
rotation régulière (à utiliser si $0002 fait "trembler" l'objet)
Exemple particulier des ELEMENT_PUZZLE :
Pickup= 1,Bag of Sand, $0000,$0400,$0000,$2000,$1000,$8002
Pickup= 2,Jerrycan, $0015,$0500,$4000,$f000,$0000,$4002
Retour au début
de ce paragraphe
Retour
|