Affichage des résultats 1 à 5 sur 5

Discussion: [TUTORIAL] Musique de romance

  1. #1
    Date d'inscription
    April 2003
    Localisation
    En migration
    Messages
    1 140

    Flèche [TUTORIAL] Musique de romance

    Pour comprendre ce tutorial il est nécessaire de connaitre un peu les scripts et d'utiliser le tp2 pour compiler tous ses scripts. Donc de savoir ce qu'est un fichier .baf, ce qu'est un fichier .bcs et de connaitre leur lien.

    Introduction
    Pour commencer il faut savoir qu'il n'y a que trois sortes de musique dans BG2 : les musiques d'ambiance, de combat et de romance (le reste sont des sons qui ne sont pas gérés de la même manière).
    Elles sont composées d’un fichier .mus et de fichiers .acm. Le fichier mus se trouve dans le dossier music et les fichiers acm dans un sous dossier portant le même nom que le fichier mus. Enfin ces musiques sont référencées par un numéro dans le fichier songlist.2da.
    La complexité des musiques est dans l’ordre croissant : romance, ambiance et combat. Ici, il ne sera question que des musiques de romance.
    Il existe différentes méthodes pour installer une musique, celle qui est exposée ici est la plus lente mais la plus compacte en terme de taille de fichiers tout en étant relativement fidèle à la technique utilisée dans le jeu original pour les personnages romançables.
    Pour ce tutorial l’exemple qui sera pris sera celui du mini-mod écrit pour l’occasion : Deecy-Music. Cliquez sur ce lien pour le télécharger

    I - Choix et encodage de la musique
    • Il faut choisir un musique ou un extrait de musique qui fasse environ 60 secondes.
    • Il faut ensuite doubler sa vitesse.
    • Enfin l’encoder en ogg (codec comparable au mp3 mais qui a l’avantage d’être ouvert, libre et dégagé de tout brevet).

    Toutes ces manipulations peuvent être faites avec le logiciel gratuit Audacity.Cliquez sur ce lien pour le télécharger sur la page officielle
    Il faut choisir un nom de 7 caractères maximum (préfixe éventuel inclus) pour la musique. Exemple : E_DeMus.ogg (E_ est le préfixe, De signifie Deecy, Mus est pour musique).
    L’objet de ce tutorial n’étant pas Audacity, voici brièvement la fonction permettant de :

    1. Couper éventuellement la musique afin qu’elle fasse 60 secondes. On peut soit sélectionner les parties à enlever puis faire Edition/Effacer, soit sélectionner le morceau à garder et faire Edition>Ne garder que la sélection.
    2. Si le morceau choisi est au milieu d’une piste originale, on peut utiliser les fonctions Effets>Fondre en ouverture et Effets>Fondre en fermeture afin d’augmenter et diminuer progressivement le volume en début et en fin du morceau. Il faut sélectionner la zone concernée avant d’appliquer l’effet.
    3. Doubler la vitesse Edition>Sélectionner>Tout sélectionner puis, Effet>changer la vitesse entrer 100.00 en pourcentage de modification puis cliquer sur OK.
    4. Encoder en ogg Fichier>Exporter comme Ogg Vorbis sous le nom choisi, suivi du caractère A majuscule. Exemple : E_DeMusA.ogg



    II – Insertion de la musique dans la base du jeu

    • Il faut rajouter la ligne de code suivante dans le script à l'endroit où l'on veut lancer la musique :
      PlaySong(991274)
      où 991274 est un nombre de votre choix de préférence à 6 chiffres et commençant par 99.


    • Ensuite, il faut écrire le fichier mus, c'est un simple fichier texte qui comporte les 3 lignes suivantes :

    E_DeMus
    1
    A @TAG END
    La ligne 1 doit être le nom choisi pour la musique et les lignes 2 et 3 restent les mêmes. Il faut l'enregistrer sous le nom choisi, suivi de l'extension .mus. Exemple : E_DeMus.mus
    • Dans le fichier tp2 il faut ajouter les lignes suivantes
      // Création de dossier de la musique
      MKDIR ~music/E_DeMus~
      ADD_MUSIC ~E_DeMus~ ~Deecy/E_DeMus.mus~

      COMPILE ~Deecy/E_DeeSrc.baf~
      COPY ~override/E_DeeSrc.bcs~ ~Deecy/E_Deecy.bcs~

      COPY ~Deecy/E_Deecy.bcs~ ~override~
      REPLACE_TEXTUALLY 991274 ~%E_DeMus%~
      Dans tout ce code il faut remplacer :
    • E_DeMus par le nom de la musique
    • Deecy par le nom du dossier du mod
    • E_DeeSrc par le nom du fichier source du script
    • E_Deecy par le nom du fichier compilé du script, tel qu'il est décrit dans le fichier cre du personnage.

    NB : Pour le script, il est impératif que le nom du fichier source soit différent du nom du fichier compilé.
    MKDIR ~music/E_DeMus~ crée le dossier dans lequel sera copié le fichier acm.

    ADD_MUSIC ~E_DeMus~ ~Deecy/E_DeMus.mus~ ajoute la musique dans le fichier songlist.2da et lui affecte un numéro de référence.

    COMPILE ~Deecy/E_DeeSrc.baf~ compilation du fichier source du script
    COPY ~override/E_DeeSrc.bcs~ ~Deecy/E_Deecy.bcs~ copie du script compilé vers le dossier Deecy en le renommant E_Deecy

    COPY ~Deecy/E_Deecy.bcs~ ~override~
    REPLACE_TEXTUALLY 991274 ~%E_DeMus%~ copie le script compilé en remplaçant 991274 par le numéro de référence de la musique dans le songlist.2da.
    IIICopie et décodage des fichiers
    Il faut maintenant décompresser les fichiers ogg en fichiers acm. Il n'existe pas (à ma connaissance) de logiciel, en ligne de commande, qui le fasse directement. Il faut donc en utiliser deux successivement : un décodeur ogg-->wav et un encodeur wav-->acm.
    Pour le ogg-->wav, on peut utiliser le oggdec Cliquez sur ce lien pour accéder à son téléchargement
    Pour le wav-->acm on peut utiliser le snd2acm qu'on peut trouver dans la rubrique Sound de cette page
    Il faut ensuite placer les fichiers oggdec.exe et snd2acm.exe dans le dossier du mod.
    Les actions de copie et de décompression ne sont pas directement lancées par le tp2 mais par un fichier de commande (aussi appelé batch) qui est appelé par le tp2. Il a l'extension .bat
    Fichier install-mus.bat commenté, les lignes commençant par rem sont des commentaires :
    @echo off

    rem Affichage de "Install music"
    echo Install music

    rem Décodage du fichier musique de ogg->wav
    Deecy\oggdec -w Deecy\E_DeMusA.wav Deecy\E_DeMusA.ogg

    rem Encodage du wav->acm directement dans le répertoire approprié
    Deecy\snd2acm -wav Deecy\E_DeMusA.wav music\E_DeMus\E_DeMusA.acm

    rem Suppression des fichiers temporaires
    del Deecy\E_DeMusA.wav

    rem Affichage de "Music intalled"
    echo Music intalled
    Il faut remplacer
    • Deecy par le nom du dossier du mod
    • E_DeMus par le nom du fichier de la musique
    • E_DeMusA par le nom donné au fichier ogg

    Le fichier tp2 appelle ce fichier de commande avec l'instruction :
    AT_INTERACTIVE_EXIT ~Deecy/Install-mus.bat~
    A la désinstallation du module, il faut supprimer le dossier créé dans music ainsi que ce qu'il contient. Là encore on utilise un fichier de commande.
    Fichier uninstall-mus.bat commenté, les lignes commençant par rem sont des commentaires :
    @echo off

    rem Afficher "Uninstall music"
    echo Uninstall music

    rem Suppression du fichier
    del music\E_DeMus\E_DeMusA.acm

    rem Suppression du dossier E_DeMus
    rd music\E_DeMus

    rem Afficher "Music uninstalled"
    echo Music uninstalled
    Il faut remplacer :

    • E_DeMus par le nom du fichier de la musique
    • E_DeMusA par le nom donné au fichier ogg

    Le fichier tp2 appelle ce fichier de commande avec l'instruction :
    AT_INTERACTIVE_UNINSTALL ~Deecy/Uninstall-mus.bat~
    Désolé pour toutes les fautes d'orthographe. J'attends vos commentaires et suggestions avec impatience.

    EDIT
    Les listings des fichiers install.bat et uninstall.bat ont été remplacé par le version simplifié proposé par Isaya dans le post #4 ci-dessous.
    Dernière modification par Akadis ; 29/06/2008 à 10h24.
    Développeur du mod Akadis version disponible Beta 3.1b : envoyez moi un MPResponsable de la maintenance du mod Kim

  2. #2
    Graoumf Invités

    Re : [TUTORIAL]Musique de romance

    Quelles fautes d'orthographe ?
    Belle initiative en tout cas, et même si je ne suis pas modder, cela m'a paru très clair et très détaillé.

  3. #3
    Avatar de phoeunix
    phoeunix est déconnecté Punching-ball de service (avec un solide penchant masochiste)
    Date d'inscription
    February 2008
    Localisation
    Nice
    Messages
    469

    Re : [TUTORIAL]Musique de romance

    Merci pour ce tutorial qui servira certainement à pas mal de gens, moi le premier

    Je l'ai lu rapidement, il est clair et bien fait, tout baigne !

  4. #4
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages
    6 474

    Re : [TUTORIAL]Musique de romance

    Excellente initiative. Il y a très peu de documents sur ce sujet. Et même la documentation de WeiDU ne dit rien sur ADD_MUSIC !

    J'ai quelques suggestions de forme. Tu peux alléger de façon significative les fichiers bat. Par rapport à d'anciens mods, une version récente d'oggdec (celle qu'on obtient par le lien que tu as donné) permet d'indiquer le nom du fichier wav après décodage. De même on peut indiquer des chemins dans les noms de fichiers ce qui permet d'éviter toutes les étapes de copie et de suppression de fichiers. Au final, le fichier d'installation peut se résumer à ça :
    @echo off

    rem Affichage de "Install music"
    echo Install music

    rem Décodage du fichier musique de ogg->wav
    Deecy\oggdec -w Deecy\E_DeMusA.wav Deecy\E_DeMusA.ogg

    rem Encodage du wav->acm directement dans le répertoire approprié
    Deecy\snd2acm -wav Deecy\E_DeMusA.wav music\E_DeMus\E_DeMusA.acm

    rem Suppression des fichiers temporaires
    del Deecy\E_DeMusA.wav

    rem Affichage de "Music intalled"
    echo Music intalled
    Quant au fichier de désinstallation, le gain est moindre mais tu peux économiser les changements de répertoires
    @echo off

    rem Afficher "Uninstall music"
    echo Uninstall music

    rem Suppression du fichier
    del music\E_DeMus\E_DeMusA.acm

    rem Suppression du dossier E_DeMus
    rd music\E_DeMus

    rem Afficher "Music uninstalled"
    echo Music uninstalled
    Sur le fond, à savoir l'ajout d'une musique de romance, je voudrais apporter quelques précisions et proposer une alternative, basée sur ce tutorial.

    Dans Baldur's Gate II, le nombre total de musique dans le jeu est de 100, dont 84 sont déjà utilisées. Cette limite s'établit à partir du fichier SONGLIST.2DA, auquel l'instruction ADD_MUSIC essaie d'ajouter la nouvelle musique. Depuis longtemps les moddeurs sont confrontés à un problème pour l'ajout de musique lorsqu'il y a déjà un grand nombre de mods installés ou lorsque des gros mods ont déjà squatté toutes les places disponibles. Avec BGT, c'est encore plus critique.
    Les musiques définies dans un fichier mus ont de nombreux usages : les combats, les musiques de fond notamment. Le fichier mus fonctionne comme une sorte de playlist de fichiers acm et permet aussi d'indiquer de boucler à la fin.

    Il existe une alternative pour les musiques de romance, pour lesquelles le bouclage n'est pas vraiment indispensable (à moins que le joueur ne fasse une pause pour réfléchir longuement aux différentes répliques du dialogue). Elle consiste à utiliser PlaySound au lieu de PlaySong. Cette méthode a plusieurs avantages :
    • elle permet d'utiliser un fichier wav et non un fichier acm
    • comme on n'ajoute pas de fichier mus, l'installation est plus simple
    • le fait de ne pas avoir besoin de convertir le fichier son au format ACM ouvre la porte à la création d'une version Mac du mod (il semble qu'il n'y ait pas d'outil de conversion pour Mac)
    • et, le meilleur pour la fin, on est certain que notre musique sera présente dans le jeu, quelle que soit la surcharge du fichier des musiques

    Il semble que de nombreux mods utilisent cette méthode. Le tutorial cité prend l'exemple de Kelsey et j'ai aussi constaté qu'un tutoriel de création de PNJ utilisait cette solution.

    Le principe consiste à réutiliser un numéro de musique non utilisé par le jeu mais que ADD_MUSIC n'utilise pas non plus. Le fichier SONGLIST.2DA commence ainsi :
    2DA V1.0
    ****
    Name RESOURCE
    0 No_music ****
    1 Area0011 MX0011.MUS
    Concrètement, la musique numéro 0 n'est pas utilisé (la colonne RESOURCE ne désigne pas un fichier MUS). L'idée du tutorial dont j'ai indiqué le lien est d'utiliser la musique 0 comme moyen d'arrêter une musique en cours (celle de la zone par exemple) pour éviter qu'elle ne se déroule en parallèle de celle qu'on veut lancer avec la commande PlaySound. Il s'agit de créer un fichier MUS composé d'un blanc et qui s'arrête tout de suite (pas de boucle) et qui constitue ainsi une musique "vide". Il suffit alors, pour lancer sa propre musique, de lancer ce fichier musique, puis de lancer le son qui contient notre propre musique.
    Dans le script, il faut donc indiquer, au lieu de PlaySong(991274) :
    PlaySong(0)
    PlaySound("E_DeMusA")
    La première ligne lance la "musique" d'arrêt. La deuxième lance le fichier WAV contenant la musique du mod et qui doit se trouver pour cela dans le répertoire Override (ce qui obligera à modifier la procédure d'installation).

    Pour mettre en place la musique "vide", il suffit de créer un fichier MUS, appelons-le VIDE.MUS, contenant :
    Blank
    1
    A @TAG END
    Le contenu est important et ne doit pas être modifié. Le sous-répertoire "Blank" (première ligne) du répertoire music contient un fichier "BlankA.acm" (le "A" sur la troisième ligne) qui génère le son blanc. END indique que la musique s'arrête juste après.

    Pour modifier la ligne 0 du fichier SONGLIST.2DA, on remplacera le bloc
    // Création de dossier de la musique
    MKDIR ~music/E_DeMus~
    ADD_MUSIC ~E_DeMus~ ~Deecy/E_DeMus.mus~

    COMPILE ~Deecy/E_DeeSrc.baf~
    COPY ~override/E_DeeSrc.bcs~ ~Deecy/E_Deecy.bcs~

    COPY ~Deecy/E_Deecy.bcs~ ~override~
    REPLACE_TEXTUALLY 991274 ~%E_DeMus%~
    par celui-ci
    // Copie du fichier musique, supposons qu'il soit dans le répertoire Deecy
    COPY ~Deecy/VIDE.mus~ ~music~
    COPY_EXISTING ~songlist.2da~ ~override~
    SET_2DA_ENTRY 0 2 3 ~VIDE.MUS~

    // Ne pas oublier le script (désormais c'est plus simple puisqu'on n'a pas à patcher le numéro de musique)
    COMPILE ~Deecy/E_DeeSrc.baf~
    Remarque : dans d'autres circonstances, cette pratique consistant à écraser une ligne du fichier 2DA par la notre serait à proscrire. En effet, si un autre mod a modifié cette ligne pour son propre usage, nous risquons d'empêcher son fonctionnement. En pratique, si tous les mods de romance modifient cette même ligne pour ajouter leur fichier MUS basé sur le même contenu, peu importe le nom du fichier, la musique 0 provoquera un arrêt de la musique en cours et c'est bien l'effet souhaité.

    Pour finir, les fichiers d'installation et de désinstallation deviennent légèrement plus simples.
    Installation
    @echo off

    rem Affichage de "Install music"
    echo Install music

    rem Décodage du fichier musique de ogg->wav
    Deecy\oggdec -w override\E_DeMusA.wav Deecy\E_DeMusA.ogg

    rem Affichage de "Music intalled"
    echo Music intalled
    Désinstallation
    @echo off

    rem Afficher "Uninstall music"
    echo Uninstall music

    rem Suppression du fichier
    del override\E_DeMusA.wav

    rem Afficher "Music uninstalled"
    echo Music uninstalled
    Il n'y a plus besoin d'inclure le programme snd2acm dans le mod.

    Je précise que ces informations sont basées sur le tutorial cité et que je n'ai pas testé ce contenu via une installation. N'hésitez pas à me signaler les erreurs en cas de problème.

  5. #5
    Date d'inscription
    April 2003
    Localisation
    En migration
    Messages
    1 140

    Re : [TUTORIAL] Musique de romance

    Le composant pack du moddeur heureux de BG2FixPack installe une musique vide comme l'explique Isaya, donc pour les mods qui requièrent ce composant, il n'est pas vraiment utile de la réinstaller.
    Développeur du mod Akadis version disponible Beta 3.1b : envoyez moi un MPResponsable de la maintenance du mod Kim

Discussions similaires

  1. [TUTORIEL] Création d'Objets avec DLTCEP et Installation avec WeiDU
    Par Mathrim Cauthon dans le forum Tutoriels et Guides
    Réponses: 91
    Dernier message: 27/10/2014, 22h58
  2. [TUTORIEL] Créer un NPC rapidement
    Par xena dans le forum Guides, tutoriels
    Réponses: 36
    Dernier message: 24/03/2012, 21h53
  3. [BG1&2] Tutorial pour Near infinity
    Par cadaver dans le forum La Taverne d'Amkethran (Baldur's Gate 2)
    Réponses: 13
    Dernier message: 26/12/2010, 15h16
  4. Votre musique de romance préférée ?
    Par Filamp dans le forum Le Comptoir d'Amn
    Réponses: 39
    Dernier message: 09/11/2006, 18h08
  5. [TUTORIEL] Ecriture d'une Romance
    Par Mathrim Cauthon dans le forum Guides, tutoriels
    Réponses: 3
    Dernier message: 02/09/2004, 17h26

Les tags pour cette discussion

Règles de messages

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

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 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243