Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
191 connectés actuellement
30836010 visiteurs depuis l'ouverture
3277 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
◂
| Faire des boucles à l'intérieur d'une musique
Une méthode pour faire boucler une musique, en éditant le fichier audio pour avoir l'introduction à ne jouer qu'une fois et la partie centrale qui sera répétée, tant que le morceau ne change pas. | Ecrit par SuperGregMaker le 14/10/2010 |
▸
|
❤ 0 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 évidemment 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
Sans oublier votre tête et RPG Maker XP
III - Comment utiliser Audacity
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/ !
Et c'est tout
IV - J'ai tous les fichiers musicaux. Mais créer la boucle ?
On va donc ouvrir l'éditeur de scripts (F11) pour celà. RDV dans le script Game_Temp, ligne 43, vous avez :
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 :
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 !
Bon making les amis
SuperGregMaker =D
(J'autorise le Staff à eventuellement modifier ce tutorial, en m'avertissant bien sûr )
Mis à jour le 3 juin 2021.
Suppression d'un logiciel secondaire inutile.
|
tampaxor -
posté le 14/10/2010 à 17:41:55 (10274 messages postés)
| | Hum, cela ne sert que pour une seule musique ou j'ai mal compris ? Quel est l'intérêt dans ce cas ?
|
Zeus81 -
posté le 14/10/2010 à 19:31:49 (11071 messages postés)
| | 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.
|
| J'aime les trains. | 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 ... |
Zeus81 -
posté le 15/10/2010 à 21:26:52 (11071 messages postés)
| | 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).
|
| J'aime les trains. | 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 ... |
Zeus81 -
posté le 16/10/2010 à 19:29:49 (11071 messages postés)
| | 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 |
|
| J'aime les trains. | >> 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 ... |
|
|
|