Portes, clefs, serrures

- Généralités sur les portes et serrures

PORTES
- Portes rotatives et portes coulissantes
- Portes complexes
- Pour qu'elles ne disparaissent pas quand elles s'ouvrent
- La texture d'une porte secrète
- Ouvrir une porte avec un interrupteur
- Ouvrir et fermer une porte avec deux interrupteurs
- Ouvrir une porte en manœuvrant plusieurs interrupteurs
- Pour qu'une porte se referme toute seule
- Distance, vitesse, sens d'ouverture des portes coulissantes
- Comment transformer un objet en porte
- Comment rendre une porte incassable
- Un objet dans un coffre mural
- Comment redimensionner proprement une porte rotative
- Pourquoi les portes ne s'ouvrent pas ?

CLEFS ET SERRURES
- L'art de crocheter une serrure
- L'art d'ouvrir une porte avec une clé
- Comment transformer un objet en clef
- Comment transformer un objet en serrure (lockbox)

Généralités sur les portes et serrures

(Lionel)

Un des points fondamentaux concernant la notion d’objets dans Dark Project est qu’un objet peut être verrouillé. Le cas le plus évident est celui d’une porte, mais le concept de serrure est générique et peut être appliqué à une grande variété d'objets. Ainsi, par exemple, les contenants peuvent être fermés pour éviter que quelqu’un ne les pille et les leviers peuvent être verrouillés pour empêcher quelqu’un de les actionner.

En fait, la propriété lock détermine si un objet possède une serrure et s’il est fermé ou ouvert. Si un objet a cette propriété, il possède une serrure (indépendamment de son état). Si la valeur de cette propriété est true, le service de serrure considérera l'objet fermé. Si la valeur est false, il est considéré ouvert. La différence est que si la propriété lock n’existe pas, l’objet ne peut en aucun cas devenir verrouillé alors que si la propriété existe et est à false, l’objet est ouvert mais possède une serrure et peut donc devenir verrouillé.

De plus, il peut y avoir des circonstances où nous voulons que l'état d’une serrure soit dépendant d’un autre objet. Par exemple, une porte peut être commandée par l’état d’une autre porte ou d’un autre objet. En considérant cela, une serrure peut être dépendante de l’état de plusieurs objets. Si un de ces objets est verrouillé, la serrure sera considérée comme verrouillée, indépendamment de son état propre ou de l’état des autres objets liés.
Exemple : une porte commandée par 3 boîtes à clés qui doivent être toutes déverrouillées pour que la porte soit ouverte ; si une seule des boites à clés reste à l’état fermé, la porte ne s’ouvrira pas.

En plus du service de serrure, il y a un service clef dont le but est de déterminer ce qui influe sur une serrure, via la propriété KeySrc sur l’objet intervenant (ex : clef) et la propriété KeyDst pour l’objet commandé (ex : porte). Chacune de ces propriétés a trois champs : un MasterBit, un Région ID et un Lock ID. MasterBit peut être employée pour définir qu’il existe une clé passe-partout (clé principale) qui englobe la fonction de plusieurs autres clés. Région ID est employée principalement pour définir sur quelles serrures un passe-partout (clé principale) peut intervenir. Dans le cas le plus simple, il n’y a pas de passe partout de défini et Lock ID détermine si une clef particulière travaille sur une serrure donnée.

Le minimum à savoir : si aucun Master Bit n’est coché, alors chaque Region ID doit être renseigné avec la même valeur (binaire et différente de 0). De plus, dans ce cas, il faut renseigner le Lock ID de chaque clé avec la même valeur que le Lock ID de l’objet qu’elle commande.

Dans une mission qui comporte des passe-partout (clés principales), les correspondances des propriétés KeySrc et KeyDst suivent les règles suivantes (dans l’ordre) :

1 : Si leur Region ID n’ont pas la même valeur, la clé ne fonctionne pas. Sinon on teste l’étape 2

2 : Si le MasterBit du KeySrc (clé) est coché, la clé fonctionne. Sinon on teste l’étape 3

3 : Si les Lock ID des KeySrc et KeyDst sont les mêmes, la clé fonctionne.

4 : Sinon, la clé ne fonctionne pas.

Notez que la notion de Region ID ne doit pas être forcément comprise en tant qu’entité géographique. On peut donner une même valeur à toutes les portes d’un manoir. La notion est alors géographique. On peut attribuer une valeur à toutes les portes d’une mission et une autre valeur à tous les coffres de cette mission. La notion n’est plus géographique.

Forcer les portes

Les portes peuvent subir des dégâts et être «abîmées», comme d’autres objets. Elles ne seront pas détruites mais le fait «d’abîmer» une porte modifie ses propriétés. Notamment la propriété Lock et tous les liens avec d’autres objets telles que la clé qui l’ouvrait. Le forçage d'une porte exigera généralement des coups répétés ; ces coups seront considérés au niveau des sons dans le jeu comme des bruits de combat. Ce qui fait que cette action n'est en aucun cas une action discrète.

Toutes les portes ne sont pas susceptibles d’être forcées. Si une porte n'a pas la propriété HitPoints, elle ne subira aucun dégât et ne pourra donc pas être abîmée. En règle générale, les portes en métal ne peuvent pas être forcées, alors que celles en bois renforcées de métal le peuvent. Ces dernières demanderont plus de coups que celles en bois

Conception de portes

Les différents types de portes

Il y a deux types principaux de portes employées Dark Project, différenciées par leurs modes de mouvement. Celles qui glissent et celles qui tournent. Le mode d’actionnement de la serrure pourra être diffèrent suivant le type de porte (action sur la porte ou action sur un élément extérieur, type boite à clé ou levier).

Le paramétrage de la translation d’une porte passe par la propriété «Door/Translating ». Ses paramètres indiquent l’amplitude et la direction de mouvement. Le paramétrage de la rotation d’une porte passe par la propriété « Door/Rotating ». Ses paramètres indiquent l'axe de rotation, la direction de mouvement (dans le sens des aiguilles d'une montre ou en sens inverse des aiguilles d'une montre) et l’amplitude du mouvement (exprimée en degrés). Notez que le contrôle de l’axe de rotation indique seulement l'orientation de l'axe et pas son emplacement. La porte tourne toujours autour du centre de gravité qui est défini dans la propriété « Physics/Model/Type ». Si une porte ne tourne pas autour de l'axe désiré, ça signifie que ce paramètre est mauvais. Testez les, ça peut être drôle (qu’est ce qu’on s’marre…)

Les portes à deux battants sont constituées de 2 objets et peuvent agir en synchronisation. Cette synchronisation assure qu’une action sur une des 2 portes agira sur la deuxième de la même manière. Toutefois cette synchronisation peut être perturbée si par exemple les vitesses d’ouverture des 2 portes sont différentes ou si quelque chose entrave l’ouverture d’une des 2 portes.

Représentation des serrures

Les représentations des poignées de portes et leviers de boites à clé seront variables suivant l'état de la serrure (voir schémas ci dessous). Si la serrure est fermée, le levier sera en position horizontale ; si elle est ouverte, il sera en position verticale. Dans le cas de serrure crochetable en plusieurs étapes, le bras pourra être dans des positions intermédiaires. C'est principalement destiné à montrer au joueur quand la serrure se ferme ou s’ouvre et pour les serrures crochetables, ça montre l’état d’avancement de crochetage.

 

 

Trucs et astuces sur dromed -- la Bible de Dromed
dromed.tutoriel.free.fr