- 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)
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