Oniromancie: Tutoriels - [Scripting] Faire des boucles à l'interieur d'une musique


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (34 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

83 connectés actuellement

9179164 visiteurs
depuis l'ouverture

242 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

RPG Sunrise

Final RPG

Forum RMXP

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





[Scripting] Faire des boucles à l'interieur d'une 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é <IMG SRC="




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 <IMG SRC="



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 <IMG SRC="



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 <IMG SRC="
SuperGregMaker =D
:ange



(J'autorise le Staff a eventuellement modifier ce tutorial, en m'avertissant bien sur <IMG SRC=")


tampaxor - posté le 14/10/2010 à 17:41:55. (10268 messages postés) - bocauxharam

Hum, cela ne sert que pour une seule musique ou j'ai mal compris ? Quel est l'intérêt dans ce cas ?

Chaîne Youtube | Twitter | Facebook | Blog | Fruity Loops, nouvelles bases | Fruity Loops, les VST | SoC | Flickr


Zeus81 - posté le 14/10/2010 à 19:31:49. (11072 messages postés) - bocauxharam

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.


SuperGregMaker - posté le 15/10/2010 à 12:08:28. (111 messages postés)

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. (11072 messages postés) - bocauxharam

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


SuperGregMaker - posté le 16/10/2010 à 11:13:53. (111 messages postés)

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 :D

Que Dieu vous garde, j'ai plus de place chez moi ...


Zeus81 - posté le 16/10/2010 à 19:29:49. (11072 messages postés) - bocauxharam

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 :

Portion de code : Tout sélectionner

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


SuperGregMaker - posté le 18/10/2010 à 01:24:51. (111 messages postés)

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

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis