Sons (ambiance, voix de Garrett...)

- Ambient sound : comment mettre des sons d'ambiance
- VO Trap : intégrer un commentaire de Garrett
- Liste des sons d'ambiance et des commentaires de Garrett
- Comment intégrer à la mission un nouveau son
- Comment déclencher un son à l'aide d'un bouton

SCHEMAS
- Généralités sur les schemas
- Fichiers schemas des sons ambiant
- Fichiers schemas pour les voix des AI
- Fichiers schemas pour les dialogues (conversations)


Fichiers schemas pour les dialogues (conversations)

(louve)

Voir les remarques en haut de Généralités sur les schemas

J'utilise le mot dialogue, parce que "Conversation" porterait à confusion. Il faut que vous soyez familiarisé avec le paramètrage de conversations dans Dromed pour bien suivre ce tuto.

Voir le tutoriel sur les conversations.

1 - Dialogue entre un Ai et Garrett
2 - Dialogue entre deux AI


1 - Dialogue entre un Ai et Garrett

Il y a déjà quelques explications dans le tutos de Gaëtane, Conversation entre Garrett et un AI, mais comme c'est quand même assez complexe, je reprends tout à zéro.

Tout d'abord, il vous faut écrire le dialogue.
Il y a 11 steps dans une conversation, de 00 à 10, mais j'ai remarqué que dans les schemas des jeux originaux, il y a toujours 10 répliques au maximum dans un dialogue, celui entre Garrett et Lotus par exemple, alors il y a sans doute une raison à cela. Vous pourrez faire des essais si vous voulez en écrivant plus de 10 répliques, je n'ai pas essayé si cela fonctionne.

Vous avez donc un dialogue entre Garrett et un Ai que l'on va appeler Dimitri. Enregistrez les répliques avec votre propre voix pour faire des essais, vous aurez quelques modifications à faire quand vous aurez les vraies voix, mais on verra ça plus tard.

Alors comme c'est Dimitri qui parle en premier vos fichiers .wav s'appellent :
dim01.wav
gar02.wav
dim03.wav
gar04.wav
dim05.wav

On n'a que 5 répliques.

Dans le dossier Snd de votre dossier thief2 où est installé Dromed, créez un dossier "dim-gar" par exemple ou n'importe quel autre nom, et mettez les .wav dedans.

Ensuite, créez un fichier .sch (Voir Comment créer un fichier schema)
et appelez-le dim_gar.sch par exemple.
Mettez-le dans le dossier "schema".

Voici ce qu'il faut mettre dedans :

//dg_c01 - DIMITRI-GARRETT CONVERSATION

schema dim01
archetype AI_CONV
dim01
schema_voice vbasso 1 dg_c01 (LineNo 1 1)

schema dim01 //"début de la réplique"
archetype AI_CONV
dim01
schema_voice vbasso 1 dg_c01 (LineNo 2 2)

schema gar02_faux
archetype AI_CONV
volume -3000
gar02
schema_voice vnull 1 dg_c01 (LineNo 3 3)

schema dim03
archetype AI_CONV
dim03
schema_voice vbasso 1 dg_c01 (LineNo 4 4)

schema gar04_faux
archetype AI_CONV
volume -3000
gar04
schema_voice vnull 1 dg_c01 (LineNo 5 5)

schema dim05
archetype AI_CONV
dim05
schema_voice vbasso 1 dg_c01 (LineNo 6 6)

>> Quelques explications :

Le premier paragraphe de paramètres et le second sont presque identiques, sauf le numéro de LineNo. En fait, dans la conversation que nous allons créer ensuite, si l'on commence par LineNo 1 cela ne marche pas. (on verra les détails plus loin). J'ai donc dupliqué le premier paragraphe pour le cas où il faille quand même qu'une instruction LineNo1 existe, même si on ne s'en sert pas. Je ne sais pas si cela fonctionne si l'on efface complètement du schema le premier paragraphe d'instructions.

Décortiquons le second paragraphe de paramètres :

schema dim01 //"début de la réplique"
archetype AI_CONV
dim01
schema_voice vbasso 1 dg_c01 (LineNo 2 2)

schema dim01 =
dim01, c'est le nom de schema que l'on peut voir dans Dromed, dans la hiérarchie. Vous pouvez utiliser le nom que vous voulez, pas forcément le même que le .wav

//"début de la réplique" =
C'est un commentaire dans lequel vous pouvez noter les premiers mots de la réplique concernée, entre les guillemets. C'est un repère pour vous, et facultatif.

archetype AI_CONV =
à laisser tel quel, c'est la catégorie dans laquelle le schema est placé dans la hiérarchie. (voir les autres chapîtres pour plus d'information)

dim01 =
le nom du .wav sans son extension. Ici, contrairement à ce qu'on a vu dans les autres chapitres, il ne peut y en avoir qu'un seul.

schema_voice vbasso 1 dg_c01 (LineNo 2 2)
-1 dg_c01 : Le chiffre indique le niveau de priorité. Ici, il doit rester à 1. (priorité absolue)
- dg_c01 est le nom du concept (voir plus bas, speech.spc). Il faut le choisir et donner toujours le même dans toutes les répliques d'un dialogue.
- vbasso est le nom de la voix choisie pour le personnage, il faut en mettre une. Ne pas mettre vnull sinon le personnage ne joue pas ses répliques, il est complètement silencieux. (Attention : voir plus bas les commentaires pour les répliques de Garrett).
Vous pouvez utiliser une voix existante, ou en créer une, ou simplement en modifier une à partir d'une voix existante pour ne garder que les toux, les sifflottements etc (voir le chapitre sur les voix des AI).

(LineNo 2 2)
c'est le numéro du paragraphe de paramètres, il va servir dans la conversation que l'on va créer.

-------

A ce stade du travail et avant d'oublier, on ouvre le fichier Speech.spc, et on ajoute le nom du concept dg_c01 à la fin de la partie
//-------CONVERSATION CONCEPTS----------//
de cette manière :
concept dg_c01 //"début de la réplique"

-------

Maintenant, avant d'expliquer les instructions pour les répliques de Garrett, voyons l'installation de la conversation et des acteurs dans la mission.
Les choses vont être un peu résumées, pour plus d'explication voir le tutoriel sur les conversations.

Il vous faut,
Un marker (fnord > marker) auquel vous donnez le script :
Properties : Add > script > TrapConverse

C'est sur cette TrapConverse que l'on "écrira" la conversation, renommez-la en convdimgar par exemple.
Dans les propriétés de la trapconverse allez dans :
Properties : Ai > Conversations > Save conversations > Cochez la case.

Ensuite il vous faut un moyen de déclencher la Trapconverse, un bouton ou une BoundsTrigger selon votre scénario. Liez-le à la TrapConverse.
links :
add >
flavor = Control Device (sans ~)
from = numéro Bounds ou bouton
to = numéro Trapconverse

Ensuite, si c'est une BoundsTrigger, il faut l'empêcher de commander la TrapConverse à chaque fois que Garrett passe dessus. Créez une DestroyTrap et liez-la à la Bounds et la Bounds à la DestroyTrap

links :
add >
flavor = Control Device (sans ~)
from = numéro DestroyTrap
to = numéro BoundsTrigger

add >
flavor = Control Device (sans ~)
from = numéro BoundsTrigger
to = numéro DestroyTrap

Ensuite il vous faut deux personnages.
Un Ai pour représenter Dimitri.
Dimitri doit avoir la voix indiquée dans le schema (Properties : speech > voice > vbasso)

Et un AI pour représenter Garrett (voir le tuto de Gaëtane)
Il faut prendre un fantôme (hiérarchie : undead > phantom > MalePaganPhantom)

Liez la TrapConv aux deux Ai.
links :
add >
flavor = AiConversationActor (sans ~)
from = numéro Trapconverse
to = numéro Ai Dimitri
date = 1 (Dimitri = actor One)

add >
flavor = AiConversationActor (sans ~)
from = numéro Trapconverse
to = numéro Ai MalePaganPhantom
date = 2 (Phantom = actor Two)


Ensuite...
Dans notre dialogue, Garrett a deux répliques, il vous faut créer un bouton et une VOTrap par réplique. Si vous avez davantage de répliques de Garrett vous avez intérêt à renommer boutons et VOTraps avec des noms parlants. Btgarret1 et VOTrap1 par exemple.
Liez-les :
add >
flavor = control Device (sans ~)
from = numéro Btgarret1
to = numéro VOTrap1

Idem pour les autres.

Ensuite, pour chaque VOTrap :
add >
flavor = sound description (sans ~)
from = numéro VOTrap1
to = gar02
(nom du .wav de la première réplique de Garrett)

add >
flavor = sound description (sans ~)
from = numéro VOTrap2
to = gar04
(nom du .wav de la deuxième réplique de Garrett)

Vous avez sans doute compris que dans la conversation, on demandera au fantôme ActorTwo d'actionner les boutons pour faire jouer les répliques de Garrett. Elles ne sont pas commandées par le schema afin que la voix de Garrett parvienne au joueur de la manière habituelle, comme venant de l'intérieur. (Si on ne faisait pas cela, la voix de Garrett viendrait du personnage fantôme.) Mais il faut quand même ajouter des lignes au schema.

--------

Retour au schema :

schema gar02_faux
archetype AI_CONV
volume -3000
gar02
schema_voice vnull 1 dg_c01 (LineNo 3 3)

Pour chaque réplique de Garrett on crée un paragraphe d'instructions "leurre" d'où le nom du schema "gar02_faux".
Le volume est à -3000 pour que le son soit très bas, inaudible.
On écrit quand même le nom du .wav "gar02".
On donne au personnage (le fantôme) la voix vnull comme dans ses propriétés.
On le numérote correctement : LineNo 3 3

----------

La conversation :
voir le tutoriel conversations pour plus de détails

TrapConverse, properties :
Add> AI > Conversation

Il y a là 11 steps, ouvrez le premier "00"

Actor = ActorOne
Conversation : action0 = Play sound/motion (sound concept, sound tags, motion tags)
Argument 1 = dg_c01
Argument 2 = LineNo 2
Argument 3 = .... rien

On vient de demander à Dimitri de lire la ligne 2 du schema et de jouer sa réplique
En argument 1 on écrit le concept
En argument 2, la lineNo 2 (on n'utilise pas la lineNo 1 comme indiqué plus haut)

On peut ajouter d'autres instructions à la suite, dans les autres emplacements du step 00, action1, action2... demander à Dimitri de faire certains gestes, etc

On clique sur ok et on ouvre le step 01

Actor = ActorTwo
Conversation : action0 = Play sound/motion (sound concept, sound tags, motion tags)
Argument 1 = dg_c01
Argument 2 = LineNo 3
Argument 3 = .... rien

Actor = ActorTwo
Conversation : action1 = Frob objetc (Target Object, With Object)
Argument 1 = numéro du btgarrett1
Argument 2 = .... rien
Argument 3 = .... rien

Actor = ActorTwo
Conversation : action2 = Wait (Time(ms), Motion Tags)
Argument 1 = 4000 (en millisecondes = 4 secondes)
Argument 2 = .... rien
Argument 3 = .... rien

On vient de demander au fantôme :
Action0 : de jouer la LineNo 3 du schema, le paragraphe leurre,
Action 1 : d'actionner (frob), le bouton 1 qui joue la Votrap 1, donc la voix de Garrett retentit,
Action 2 : d'attendre 4 secondes, ce qui permet de laisser le temps à la réplique de Garrett d'être jouée avant que Dimitri reprenne la parole en Step 02. Il faut donc ajuster ce paramètre à la durée de la réplique de Garrett. Et c'est un travail qu'il faudra sans doute refaire, ou du moins faire une vérification quand vous aurez les enregistrements des voix finales (rappel : on a fait les tests avec des enregistrements de votre propre voix). Il faudra aussi le vérifier si vous faites enregistrer une version anglaise de vos répliques.

Et on continue ainsi avec les LineNo4, 5 et 6.

Lorsque la conversation est écrite :
Tapez dans la boîte de commandes : Reload_schemas
Puis Optimisez,
Ensuite sauvegardez le gamesys
et enfin allez en mode jeu vérifier que tout va bien.


2 - Dialogue entre deux AI

C'est beaucoup plus simple donc je résume, lisez "Dialogue entre un Ai et Garrett" ci-dessus pour l'ensemble des instructions. Le contenu du schema ressemble à ceci :

//c0703 - Why the uniforms?

schema sg40703A
archetype AI_CONV
sg40703A
schema_voice vguard4 1 c0703 (LineNo 1 1)

schema sg40703A //"You know, I been wondering."
archetype AI_CONV
sg40703A
schema_voice vguard4 1 c0703 (LineNo 2 2)

schema sg60703B
archetype AI_CONV
sg60703B
schema_voice vguard6 1 c0703 (LineNo 3 3)

schema sg40703C
archetype AI_CONV
sg40703C
schema_voice vguard4 1 c0703 (LineNo 4 4)

schema sg60703D
archetype AI_CONV
sg60703D
schema_voice vguard6 1 c0703 (LineNo 5 5)

Il n'y a pas de lignes "leurre", mais quand même le premier paragraphe qui ne sert à rien.
Chaque personnage doit avoir une voix différente : vguard4, vguard6.
Tous les paragraphes ont le même concept, c0703.

Dans Dromed, il faut deux AI (voir les autres instructions) mais pas de fantôme.
Et dans la conversation, on n'écrit que des instructions comme celle de Dimitri dans step00 (voir Dialogue entre un Ai et Garret)

Step00
Actor = ActorOne
Conversation : action0 = Play sound/motion (sound concept, sound tags, motion tags)
Argument 1 = c0703
Argument 2 = LineNo 2
Argument 3 = .... rien

Step01
Actor = ActorTwo
Conversation : action0 = Play sound/motion (sound concept, sound tags, motion tags)
Argument 1 = c0703
Argument 2 = LineNo 3
Argument 3 = .... rien

Bien sûr vous pouvez ajouter d'autres instructions, avant ou après, pour faire faire des gestes à vos AI.

Quand tout est prêt :
Tapez dans la boîte de commandes : Reload_schemas
Puis Optimisez,
Ensuite sauvegardez le gamesys,
et enfin allez en mode jeu vérifier que tout va bien.

 

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