
[SGM] Comment faire une boucle de musique ! Ecrit par SuperGregMaker
Salut les Oniromanciens ! Je reposte mon tutorial suite a un refus de l'équipe, en raison de quelques défauts. Le voici corrigé "
I - Une boucle de musique ?!
Hé oui. Une boucle de musique, comme son nom l'indique, c'est une lecture d'une certaine introduction, puis la musique du "milieu" du son en boucle. Voici comment procéder avec quelques lignes de RGSS I (donc seulement compatible avec RMXP !!)
II - De quoi ai-je besoin ?
Tout d'abord, vous aurez besoin d'un logiciel pour fractionner la musique en 3 :
- L'introduction
- La partie centrale qui tournera en boucle
- Et la fin qu'on supprimera.
Il s'agit bien evidemment d'Audacity, un logiciel très sympa qui permet de faire plusieurs choses basiques avec un morceau de musique.
(On s'en servira comme convertisseur par la suite).
Lien : Audacity
Ensuite, un convertisseur nous sera necessaire (pour les problèmes de format mp3, ogg vorbis ...)
Vous pourrez utiliser Audacity en entrant un MP3 et en le sauvegardant en tant qu'OGG Vorbis (pas le contraire car Audacity n'accepte pas les OGG Vorbis pour les éditer)
Mais sinon je vous conseille Free MP3 WMA Converter qui est un convertisseur très complet, gratuit et qui en plus vous servira dans la vie de tous les jours !
Lien : Free MP3 WMA Converter
Sans oublier votre tête et RPG Maker XP "
III - Comment utiliser Audacity & FMWC ?
Pour Audacity :
Ouvrez Audacity.exe
Faites un cliquer-glisser du fichier mp3 de votre morceau
Selectionnez l'intro, et faites "Fichier > Exporter la sélection en MP3" (ou OGG Vorbis).
Puis sélectionnez la partie centrale (sans la fin du morceau), et même manip'.
Enregistrez l'intro dans Audio/ME/ et la boucle dans Audio/BGM/ !
Pour Free Mp3 Wma Converter
Ouvrez Free Mp3 Wma Converter.exe
Cliquez sur le petit "+" vert en haut a droite de la fenêtre la plus haute
Naviguez jusqu'à ce que vous trouviez votre morceau
Choisissez le chemin d'accès dans lequel la conversion du morceau ira
Choisissez aussi le type de fichier (mp3 ou ogg)
Lancez la converstion !
Et c'est tout "
IV - J'ai tous les fichiers musicaux. Mais creer la boucle ?
On va donc ouvrir l'éditeur de scripts (F11) pour celà. RDV dans le script Game_Temp, ligne 43, vous avez :
Portion de code:
1
2
3
4
5
6
7
8
9
| def bgm_play(bgm)
@playing_bgm = bgm
if bgm != nil and bgm.name != ""
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)
else
Audio.bgm_stop
end
Graphics.frame_reset
end |
Remplacez ça par :
Portion de code:
1
2
3
4
5
6
7
8
9
10
11
12
| def bgm_play(bgm)
@playing_bgm = bgm
if FileTest.exist?("Audio/ME/Debut " + bgm.name)
Audio.me_play("Audio/ME/Debut " + bgm.name)
end
if bgm != nil and bgm.name != ""
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)
else
Audio.bgm_stop
end
Graphics.frame_reset
end |
En fait, on ajoute 3 lignes de codes pour tester la présence du ME qui s'appelle "Debut " + le nom de la musique a jouer, si il existe on le joue, puis le end de la fin de condition.
Vous l'avez compris, si votre BGM (milieu de BGM) se nomme Lost, le ME correspondant sera "Debut Lost".
/!\\ ATTENTION ! Si la BGM est un fichier OGG, et que le ME est un MP3, la condition FileTest.exist? renverra false, donc faites attention avec Audacity & FMWC !
Bon making les amis "
SuperGregMaker =D
(J'autorise le Staff a eventuellement modifier ce tutorial, en m'avertissant bien sur ")
|
|
tampaxor - posté le 14/10/2010 à 17:41:55. (7676 messages postés)
|

Fan 2 le magazine | Hum, cela ne sert que pour une seule musique ou j'ai mal compris ? Quel est l'intérêt dans ce cas ? |
Twitter BloGecko ! Suivez moi ! | Page facebook de mon blog | Du nouveau sur le blog ! | Lire avant tout nouveau projet | Travelers Of Time | Fruity Loops, de nouvelles bases | Fruity Loops et les VST |
|
Zeus81 - posté le 14/10/2010 à 19:31:49. (8687 messages postés)
|

Ero-Maker | Ah ouais, c'est marrant comme technique.
Mais j'imagine que si on a la même musique sur plusieurs map ça va nous rejouer l'introduction à chaque fois qu'on change de map, non ?
Sinon sur VX y'a moyen de faire ça directement avec un ogg. |
The Ark of Gladoria - Mes scripts et autres - Oniro Paradise - Gemini - Fan de Némausus & Ddken |
|
|

Petit clin d'oeil à VX | Ben pour répondre a vos questions :
Tampaxor :
En fait, on joue une musique en boucle sans a chaque fois avoir la fin puis le début qui s'enchaine.
(Exemple : une musique de Super Mario Bros 2 :
L'intro se joue : (Tidi - Tidi - Tidi - Tidi - Tididibam - Bim) ;
Puis la musique (Dou dou dou di dou dou dou dou dou dou di dou dou dou dou di dou doudou doudidoubam boum) se joue en boucle sans repasser par l'intro !)
Zeus81 :
Désolé ça fait un bout de temps que je n'utilise plus VX :
Et pis nan, parce que quand tu as une musique et que tu changes de map av la même musique, elle ne repart pas. Je n'ai presque rien changé dans le Game_Temp, donc normalement ça devrait lire comme une BGM classique, ça ne fait que lire une intro quand la BGM change, ce qui n'est donc pas le cas  |
Que Dieu vous garde, j'ai plus de place chez moi ... | Green Day forever ! Awesome as F**k ! 22/03 ! | WWE&TNA ♥ |
|
Zeus81 - posté le 15/10/2010 à 21:26:52. (8687 messages postés)
|

Ero-Maker | Bah si justement, les musiques sont rejouée à chaque map, de toute façon t'as qu'à tester tu verras.
C'est le module Audio qui gère que ça ne redémarre pas une musique qui est déjà en train d'être jouée.
Faudrait modifier le script comme ça :
J'ai aussi rajouté une vérification que t'avais oublié, si le bgm était égal à nil ça aurait planté.
Et puis faut aussi préciser qu'il ne faut pas mettre de caractères accentués dans les noms de fichiers (le FileTest ne les détecte pas). |
The Ark of Gladoria - Mes scripts et autres - Oniro Paradise - Gemini - Fan de Némausus & Ddken |
|
|

Petit clin d'oeil à VX | Merci & bien joué, je n'y avais pas pensé :P
En fait il suffisait de rajouter dans la condition que si la BGM est différente, on joue le ME. Mais il risque d'y avoir des problèmes, style la BGM joue, mais ça ne revient pas a la boucle, enfin bref, essaie de tester & tiens moi au courant  |
Que Dieu vous garde, j'ai plus de place chez moi ... | Green Day forever ! Awesome as F**k ! 22/03 ! | WWE&TNA ♥ |
|
Zeus81 - posté le 16/10/2010 à 19:29:49. (8687 messages postés)
|

Ero-Maker | Les BGM se jouent toujours en boucle après c'est à toi de bien séparer l'intro de la boucle.
Je viens de me rendre compte que y'avait pas non plus la gestion du volume (quand on joue la musique qui est en train d'être jouée en changeant juste le volume ça ne redémarre pas).
Tiens comme ça c'est parfait :
1
2
3
4
5
6
7
8
| class Game_System
alias old_bgm_play bgm_play
def bgm_play(bgm)
me_play(bgm) if (!@playing_bgm or @playing_bgm.name != bgm.name or
@playing_bgm.pitch != bgm.pitch) and !Dir["Audio/ME/#{bgm.name}.*"].empty?
old_bgm_play(bgm)
end
end |
|
The Ark of Gladoria - Mes scripts et autres - Oniro Paradise - Gemini - Fan de Némausus & Ddken |
|
|

Petit clin d'oeil à VX | >> Pour le staff : je viens de me rendre compte que ce tuto a été placé dans RM toutes versions, heureusement que j'ai précisé qu'il utilisait le RGSS 1 uniquement, je demande donc un déplacement dans la section RM [s]XP[/s]. Merci !
>> Zeus81 : Je ne vois pas pk tu mets en condition le changement du colume et/ou du tempo, mais si tu dis que c'est parfait comme ça ... xD
Je vais updater mon tuto, merci pour tout !
(En effet j'avais oublié d'arrêter le ME quand on arrête la BGM ^^) |
Que Dieu vous garde, j'ai plus de place chez moi ... | Green Day forever ! Awesome as F**k ! 22/03 ! | WWE&TNA ♥ | 
|