Baldur's Gate et Dragon Age | La Couronne de Cuivre
Merci de prendre connaissance des conditions d'utilisation des forums, des blogs et du chat

Précédent   Baldur's Gate et Dragon Age | La Couronne de Cuivre > La Forge de GrondMarteau > La Forge des Apprentis > Les Outils

Les Outils
Besoin d'outils pour concevoir vos mods ? Ne cherchez plus, vous êtes à la bonne adresse. Trouvez ici une description des différents outils disponibles.

Réponse
 
Outils de la discussion Noter la discussion
Vieux 21/02/2005, 00h45   #1
Shinook
Araignée Éclipsante
 
Avatar de Shinook
 
Date d'inscription: mai 2004
Localisation: dans le vent...
Messages: 1 266
Par défaut

Ce tutorial vient de la TeamBG, et il me semblait intéressant d'en faire une traduction, car les CutScenes rajoutent un côté plus vivant et attractif à un MOD.

<span style=\'font-family:Arial\'>Tutorial pour les scripts de CutScene</span></span>
Par Max a.k.a Potencius
Traduit par Shinook


Etape 1 : Préface

Les scripts de CutScene sont ce que vous voyez, dans le jeu, lorsque vous ne pouvez plus cliquer sur l'écran. Durant ces CutScenes, les personnages et d'autres choses peuvent agir sans peur d'être interrompus par le joueur. Il s'agit juste d'une vision générale qui éclarcit certains points qui peuvent vous poser problème.

Etape 2 : Comment est construit une CutScene

La suite met en avant la forme générale que prend une CutScene. Elle inclut deux ou plus de scripts.

Le premier script aura toujours les actions suivantes, à la fin, qui introduisent la VERITABLE CutScene...

Citation:
IF
TriggersHere()
THEN
RESPONSE#100
ClearAllActions() // Voir Note #1
StartCutSceneMode() // Voir Note #2
StartCutScene("SCRIPT") // Voir Note #3
END
Notes:

1. C'est facultatif, mais vérifiez que les actions faites par les personnages ou des créatures sont annulées avant que la coupure ne commence.
2. Cette action est ce qui empêche le joueur de cliquer sur l'écran.
3. Cette action renvoie au second script qui, en réalité, réalise les actions de la CutScene.

-----<<

Très bien, voyons maintenant la forme générale du second script qui réalise les actions de la CutScene.

Citation:
IF
True() // Voir Note #4
THEN
RESPONSE#100
CutSceneID(Object) // Voir Note #5
ActionsHere()
EndCutSceneMode() // Voir Note #6
END
4. Le "trigger" est toujours considéré comme "True" ( vrai en français ) dans une CutScene de toute façon, donc vous pouvez le faire simplement pour vous !
5. Cette action ( si on peut l'appeler comme ça ) doit être écrite au début du script d'une CutScene. Elle indique qui crée les actions qui la suivent.
6. Le nom est assez révélateur. Elle permet au joueur de recliquer sur l'écran.

Etape 3 : Actions

Les actions dans les scripts d'une CutScene sont plutôt étranges ( ou logiques, quoi que vous pensiez ) dans la façon dont elles fonctionnent. J'essaierai de l'expliquer du mieux que je puisse.


D'abord, j'aborderai l'action la plus fréquemment utilisée dans les scripts de CutScene, "ActionOverride()".
ActionOverride() spécifie un acteur et dit à cet acteur de faire une action. Donc, dans une CutScene, ça doit ressembler à ça...

Citation:
IF
True()
THEN
RESPONSE#100
CutSceneID(Player1)
ActionOverride("TROLL",Kill(Myself)) // Voir Note #7
EndCutSceneMode()
END
7. Cette action a fait à "Player1" ( celui qui contrôle la CutScene ) demander à "TROLL" de se tuer.

Maintenant, ActionOverride() peut aussi être une mauvaise chose. Par exemple, l'action "PlayDead()" est une action que vous ne voulez pas utiliser en même temps que ActionOverride(). Voici pourquoi :

Citation:
IF
True()
THEN
RESPONSE#100
CutSceneID(Player1)
ActionOverride("TROLL",PlayDead(180)) // Voir Note #8
MoveToObject("TROLL") // Voir Note #8
END
8. Dans ce script, juste après que Player1 dise à "TROLL" de faire le mort ( PlayDead ), il devrait avancer jusqu'à "TROLL". Cependant, il ne le fait pas. Avec cetet combinaison, Player1 avancera jusqu'à "TROLL" seulement après que l'action PlayDead() soit terminée. C'est parce que Player1 doit contrôler à la fois les actions de "TROLL" et les siennes.

Vous vous demandez donc comment régler cela ? C'est assez simple en fait. Plusieurs états du type CutSceneID() IF-THEN. Voici à quoi ça devrait ressembler...

Citation:
IF
True()
THEN
RESPONSE#100
CutSceneID("TROLL")
PlayDead(180)
EMD

IF
True()
THEN
RESPONSE#100
CutSceneID(Player1)
MoveToObject("TROLL")
END
Cette combinaison d'étas fait jouer le mort à "TROLL" pendant que Player1 s'avance vers lui au même moment.

<span style=\'color:blue\'>Etape 4 : Exemple


Parfait, après en on met ça en pratique. Ici, on va faire un script de CutScene rapide qui transporte votre partie dans une zone donnée.

Ceci est ce que nous voulons comme résultat final. Nous voulons aller jusqu'à une zone, sans interruption dans le jeu. L'écran deviendra noir, et tous les joueurs seront transportés dans la zone simultanément. Si ce n'est pas simultanément, alors la CutScene ne fonctionnera pas convenablement. Une fois là, l'écran redeviendra normal.

Allez, c'est parti...

D'abord, nous avons besoin d'un état qui commencera le script de la CutScene. Il devrait être placé dans quelquechose comme un script de zone, un script de créature, ou autrechose. Tant que des bonnes conditions sont rencontrées, ça devrait marcher.

Citation:
IF
Trigger()
THEN
RESPONSE#100
ClearAllActions()
StartCutSceneMode()
StartCutScene("CUTMOVE")
END

Voici le second script. Il configure le mouvement de la zone. Une fois que c'est fait, compilez-le en le nommant CUTMOVE.bcs ( pour l'exemple ).
Ici, je vous autorise à prendre votre propre zone, coordonnées, et la direction dans laquelle sont tournés les personnages. Sonc trouvez une zone et prenez des coordonnées aléatoire si vous n'avez pas le temps.

Citation:
IF
True()
THEN
RESPONSE#100
CutSceneID(Player1)
FadeToColor([20.0],0) // L'écran devient noir
Wait(2) // Voir Note #9
LeaveAreaLUA("AREA","",[x.y],FACE) // Voir Note #10
Wait(2)
FadeFromColor([20.0],0)
Wait(2)
EndCutSceneMode()
END

IF
True()
THEN
RESPONSE#100
CutSceneID(Player2)
Wait(2)
LeaveAreaLUA("AREA","",[x.y],FACE)
END

IF
True()
THEN
RESPONSE#100
CutSceneID(Player3)
Wait(2)
LeaveAreaLUA("AREA","",[x.y],FACE)
END

IF
True()
THEN
RESPONSE#100
CutSceneID(Player4)
Wait(2)
LeaveAreaLUA("AREA","",[x.y],FACE)
END

IF
True()
THEN
RESPONSE#100
CutSceneID(Player5)
Wait(2)
LeaveAreaLUA("AREA","",[x.y],FACE)
END

IF
True()
THEN
RESPONSE#100
CutSceneID(Player6)
Wait(2)
LeaveAreaLUA("AREA","",[x.y],FACE)
END
9. Wait() est utilisé ici pour quelques secondes pour permettre à l'écran de devenir noir ( cette action prend environ 1 seconde, on en met donc 2, juste pour être sûr ).
10. J'expliquerai juste les paramètres de cette action.
"AREA" = Le nom du fichier de la zone jusqu'à laquelle vous voulez aller.
"" = Ca contrôle en fait quelle image s'affiche sur l'écran de chargement. Laissez-le comme ceci pour qu'elle soit aléatoire.
[x.y] = Les coordonnées X et Y du point où le personnage est envoyé dans la nouvelle carte.
FACE = C'est une valeur numérique comprise entre 0 et 15. 0 veut dire que le personnage regarde vers le sud et les autres nombres sont ordonnés dans le sens des aiguilles d'une montre.


GENERAL NOTE: Maintenant, vous remarquerez que toutes les principales actions dans sont placées dans l'état de Player1. C'est parce que Player1 est toujours dans le jeu et peu d'actions n'ont pas besoin d'être réalisées deux fois.
__________________
FloraNPC : Au cimetierre...
Shinook est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Tags
Aucune


Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Noter la discussion
Noter la discussion:

Règles de messages
Vous pouvez créer de nouvelles discussions
Vous pouvez envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are non

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
[GUIDE] Le Multijoueur Egrevyn La Taverne d'Amkethran (Baldur's Gate 2) 4 06/02/2008 14h16
[TUTORIAL] Création d'Objets Mathrim Cauthon Les Outils 23 18/10/2006 10h53
[TUTORIAL] Création de Magasins Mathrim Cauthon Les Outils 22 01/03/2005 22h56
[TUTORIAL] Ecriture de Romance Mathrim Cauthon Les Outils 3 02/09/2004 18h26
[TUTORIAL] Création de Kit pour BG2 Mathrim Cauthon Les Outils 3 20/07/2004 17h55


Fuseau horaire GMT +2. Il est actuellement 06h06.



Merci de soutenir La Couronne de Cuivre et le Wiki consacré à Baldur's Gate et aux RPG

Les forums La Sirène Rougissante, La Couronne de Cuivre, ainsi que les sites associés Le Portail du Web et Le Monde de Baldur's Gate sont protégés par le Code de la propriété littéraire et artistique. Baldur's Gate I (1998), Tales of the Sword Coast (1999), Baldur's Gate II (2000) Shadows of Amn, et Throne of Bhaal (2001) sont ©BioWare, licenses et distribution ©ATARI. Dungeons & Dragons material est ©Wizards of the Coast. NeverWinter Nights est un produit ©Bioware, licenses et distribution ©ATARI. DRAGON AGE © 2002-2007 BioWare Corp. Dragon Age, the Dragon Age logo, BioWare Corp., and the BioWare logo are trademarks of BioWare Corp. in the United States, Canada and other countries. All other trademarks are the property of their respective owners. All rights reserved.
Conformément à l'article 34 de la loi 78-17 du 6 janvier 1978 dite loi "Informatiques et Libertés" vous disposez d'un droit d'accès, de modification, de rectification et de suppression de vos données personnelles (déclaration CNIL en cours mai 2007). Pour faire valoir ce droit contactez nous en cliquant ici et en utilisant le formulaire à votre disposition


Édité par : vBulletin® version 3.7.0
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185