- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
[résolu]Modification de script - Pretitle
Jeu 19 Mar 2015 - 17:38
Coucou, j'ai testé le script de TonyRyu pour afficher des images avant l'écran titre. Il marche bien mais il y a une chose qui me chagrine.
Dans le script, on peut définir la musique qu'on veut pendant les images à l'écran. Dans la BDD, on peut définir la musique qu'on veut à l'écran titre. Dans le cas où ces deux musiques sont les mêmes, il y a un arrêt en fondu puis un redémmarage de cette musique lorsqu'on arrive à l'écran titre.
Serait-il possible de ne pas avoir de coupure ? Par exemple, dans RPG Maker de base, lorsqu'on fait commencer une musique avant un combat de boss, et que la BGM des combats est la même que celle-ci, il n'y a pas de coupure et c'est super. J'aimerais la même chose pour cela.
Le script en question est ci-dessous :
Dans le script, on peut définir la musique qu'on veut pendant les images à l'écran. Dans la BDD, on peut définir la musique qu'on veut à l'écran titre. Dans le cas où ces deux musiques sont les mêmes, il y a un arrêt en fondu puis un redémmarage de cette musique lorsqu'on arrive à l'écran titre.
Serait-il possible de ne pas avoir de coupure ? Par exemple, dans RPG Maker de base, lorsqu'on fait commencer une musique avant un combat de boss, et que la BGM des combats est la même que celle-ci, il n'y a pas de coupure et c'est super. J'aimerais la même chose pour cela.
Le script en question est ci-dessous :
- Code:
#==============================================================================
# ** Scene_PreTitle
#------------------------------------------------------------------------------
# Cette class a pour objectif d'afficher une suite d'images stockées dans le
# dossier \Graphics\Pictures, les noms des images doivent être placés dans le
# tableau PRETITLE_TAB_PICTURE, séparés par des ,
# PRETITLE_NB_FRAME définit le nombre de frame d'attente avant de passer à
# l'image suivante
# PRETITLE_FADE_SPEED définit la vitesse d'apparition et d'effacement
# PRETITLE_MUSIC définit le fichier de musique se trouvant dans le dossier
# \Audio\BGM
#
# Version Date Auteur Commentaire
# 1.00 25/10/2012 Tonyryu Création du script
# 1.01 28/10/2012 Tonyryu Ajout de la gestion d'un BGM
#
# Attention : Ce script est ma propriété en tant que création et il est donc
# soumis au droit de la propriété intellectuelle.
# En aucun cas, il ne doit être copié ou publié vers un autre forum sans en
# avoir reçu mon accord au préalable.
#
#==============================================================================
PRETITLE_TAB_PICTURE = ["TitreAzaruss"]
PRETITLE_NB_FRAME = 400
PRETITLE_FADE_SPEED = 4
PRETITLE_MUSIC = "Field1.ogg"
class Scene_PreTitle < Scene_Base
def initialize
@index_img = -1
@nb_frame = 0
@sens_fade = 0
end
#--------------------------------------------------------------------------
# * Démarrage de la scene
#--------------------------------------------------------------------------
def start
super
image_suivante
Audio.bgm_play("./Audio/BGM/" + PRETITLE_MUSIC) if PRETITLE_MUSIC != ""
end
#--------------------------------------------------------------------------
# * Fin de la scene
#--------------------------------------------------------------------------
def terminate
super
if @sprite_bkg
@sprite_bkg.bitmap.dispose if @sprite_bkg.bitmap
@sprite_bkg.dispose
end
end
#--------------------------------------------------------------------------
# * Mise à jour à chaque frame
#--------------------------------------------------------------------------
def update
super
if !@sprite_bkg
SceneManager.goto(Scene_Title)
fadeout_all
end
gerer_clavier
gerer_picture
end
#--------------------------------------------------------------------------
# * Image suivante
#--------------------------------------------------------------------------
def image_suivante
@index_img += 1
if @index_img < PRETITLE_TAB_PICTURE.size
@sens_fade = PRETITLE_FADE_SPEED
@sprite_bkg = Sprite.new if !@sprite_bkg
@sprite_bkg.bitmap.dispose if @sprite_bkg.bitmap
@sprite_bkg.bitmap = Cache.picture(PRETITLE_TAB_PICTURE[@index_img])
@sprite_bkg.opacity = 0
else
if @sprite_bkg
@sprite_bkg.bitmap.dispose
@sprite_bkg.dispose
@sprite_bkg = nil
end
end
end
#--------------------------------------------------------------------------
# * Gestion du clavier
#--------------------------------------------------------------------------
def gerer_clavier
@sens_fade = -PRETITLE_FADE_SPEED if Input.trigger?(:C)
end
#--------------------------------------------------------------------------
# * Gestion de l'image
#--------------------------------------------------------------------------
def gerer_picture
if @sprite_bkg
if @sens_fade != 0
if @sprite_bkg.opacity + @sens_fade > 255
@sprite_bkg.opacity = 255
elsif @sprite_bkg.opacity + @sens_fade < 0
@sprite_bkg.opacity = 0
else
@sprite_bkg.opacity += @sens_fade
end
if @sprite_bkg.opacity == 0 or @sprite_bkg.opacity == 255
@sens_fade = 0
@nb_frame = 0
if @sprite_bkg.opacity == 0
image_suivante
end
end
else
@nb_frame += 1
if @nb_frame == PRETITLE_NB_FRAME
@sens_fade = -PRETITLE_FADE_SPEED
end
end
end
end
end
#==============================================================================
# ** SceneManager
#------------------------------------------------------------------------------
# Modification du module SceneManager afin de démarer sur la Scene_PreTitle
#==============================================================================
module SceneManager
#--------------------------------------------------------------------------
# * Get First Scene Class
#--------------------------------------------------------------------------
def self.first_scene_class
$BTEST ? Scene_Battle : Scene_PreTitle
end
end
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]Modification de script - Pretitle
Jeu 19 Mar 2015 - 18:55
Peut-être juste en modifiant le
def play_title_music
$data_system.title_bgm.play
RPG::BGS.stop
RPG::ME.stop
end
dans la scene_Title
met un # devant $data_system.title_bgm.play
def play_title_music
$data_system.title_bgm.play
RPG::BGS.stop
RPG::ME.stop
end
dans la scene_Title
met un # devant $data_system.title_bgm.play
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: [résolu]Modification de script - Pretitle
Jeu 19 Mar 2015 - 20:07
J'ai essayé, ça ne marche pas. La musique se coupe et ne repart pas quand j'arrive à l'écran titre.
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]Modification de script - Pretitle
Jeu 19 Mar 2015 - 22:06
Ajoute ça dans le script scene_pretitle
def fadeout_all(time = 1000)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(time * Graphics.frame_rate / 1000)
RPG::BGS.stop
RPG::ME.stop
end
def fadeout_all(time = 1000)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(time * Graphics.frame_rate / 1000)
RPG::BGS.stop
RPG::ME.stop
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: [résolu]Modification de script - Pretitle
Jeu 19 Mar 2015 - 22:18
J'ai essayé, ça n'a pas marché. Ça coupe et redémarre.
Il y a un endroit précis où le placer dans scene_pretitle ?
Il y a un endroit précis où le placer dans scene_pretitle ?
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]Modification de script - Pretitle
Jeu 19 Mar 2015 - 22:40
il faut aussi le mettre dans le scene_title je pense
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: [résolu]Modification de script - Pretitle
Jeu 19 Mar 2015 - 23:07
Nom d'un pétard, après quelques manipulations hasardeuses, ça marche. Mais par précaution, dis-moi si je n'ai pas fais de bêtises.
Comme tu me l'as dit, dans Scene_Pretitle et dans Scene_Title, j'ai mis tes lignes :
def fadeout_all(time = 1000)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(time * Graphics.frame_rate / 1000)
RPG::BGS.stop
RPG::ME.stop
end
Comme ça ne marchait pas, dans Scene_Title, j'ai passé en commentaires les lignes suivantes :
#def play_title_music
# $data_system.title_bgm.play
# RPG::BGS.stop
# RPG::ME.stop
#end
Après ça, j'ai eu un plantage à cause de la ligne 18 du Scene_Title :
play_title_music
Du coup, j'ai passé en commentaires cette ligne et ça marche.
Si tu me dis que c'est bon, est-ce qu'il y a possibilité que tu m'écrives quelque chose à ajouter à part pour faire la même chose que ça ? Je n'aime pas écrire dans les scripts de base, il paraît qu'il ne faut pas le faire d'ailleurs.
Comme tu me l'as dit, dans Scene_Pretitle et dans Scene_Title, j'ai mis tes lignes :
def fadeout_all(time = 1000)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(time * Graphics.frame_rate / 1000)
RPG::BGS.stop
RPG::ME.stop
end
Comme ça ne marchait pas, dans Scene_Title, j'ai passé en commentaires les lignes suivantes :
#def play_title_music
# $data_system.title_bgm.play
# RPG::BGS.stop
# RPG::ME.stop
#end
Après ça, j'ai eu un plantage à cause de la ligne 18 du Scene_Title :
play_title_music
Du coup, j'ai passé en commentaires cette ligne et ça marche.
Si tu me dis que c'est bon, est-ce qu'il y a possibilité que tu m'écrives quelque chose à ajouter à part pour faire la même chose que ça ? Je n'aime pas écrire dans les scripts de base, il paraît qu'il ne faut pas le faire d'ailleurs.
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]Modification de script - Pretitle
Ven 20 Mar 2015 - 13:21
Yep tient le global :
- Code:
#==============================================================================
# ** Scene_PreTitle
#------------------------------------------------------------------------------
# Cette class a pour objectif d'afficher une suite d'images stockées dans le
# dossier \Graphics\Pictures, les noms des images doivent être placés dans le
# tableau PRETITLE_TAB_PICTURE, séparés par des ,
# PRETITLE_NB_FRAME définit le nombre de frame d'attente avant de passer à
# l'image suivante
# PRETITLE_FADE_SPEED définit la vitesse d'apparition et d'effacement
# PRETITLE_MUSIC définit le fichier de musique se trouvant dans le dossier
# \Audio\BGM
#
# Version Date Auteur Commentaire
# 1.00 25/10/2012 Tonyryu Création du script
# 1.01 28/10/2012 Tonyryu Ajout de la gestion d'un BGM
#
# Attention : Ce script est ma propriété en tant que création et il est donc
# soumis au droit de la propriété intellectuelle.
# En aucun cas, il ne doit être copié ou publié vers un autre forum sans en
# avoir reçu mon accord au préalable.
#
#==============================================================================
PRETITLE_TAB_PICTURE = ["BattleStart"]
PRETITLE_NB_FRAME = 400
PRETITLE_FADE_SPEED = 4
PRETITLE_MUSIC = "Field1.ogg"
class Scene_PreTitle < Scene_Base
def initialize
@index_img = -1
@nb_frame = 0
@sens_fade = 0
end
#--------------------------------------------------------------------------
# * Démarrage de la scene
#--------------------------------------------------------------------------
def start
super
image_suivante
Audio.bgm_play("./Audio/BGM/" + PRETITLE_MUSIC) if PRETITLE_MUSIC != ""
end
#--------------------------------------------------------------------------
# * Fin de la scene
#--------------------------------------------------------------------------
def terminate
super
if @sprite_bkg
@sprite_bkg.bitmap.dispose if @sprite_bkg.bitmap
@sprite_bkg.dispose
end
end
#--------------------------------------------------------------------------
# * Mise à jour à chaque frame
#--------------------------------------------------------------------------
def update
super
if !@sprite_bkg
SceneManager.goto(Scene_Title)
fadeout_all
end
gerer_clavier
gerer_picture
end
#--------------------------------------------------------------------------
# * Image suivante
#--------------------------------------------------------------------------
def image_suivante
@index_img += 1
if @index_img < PRETITLE_TAB_PICTURE.size
@sens_fade = PRETITLE_FADE_SPEED
@sprite_bkg = Sprite.new if !@sprite_bkg
@sprite_bkg.bitmap.dispose if @sprite_bkg.bitmap
@sprite_bkg.bitmap = Cache.picture(PRETITLE_TAB_PICTURE[@index_img])
@sprite_bkg.opacity = 0
else
if @sprite_bkg
@sprite_bkg.bitmap.dispose
@sprite_bkg.dispose
@sprite_bkg = nil
end
end
end
#--------------------------------------------------------------------------
# * Gestion du clavier
#--------------------------------------------------------------------------
def gerer_clavier
@sens_fade = -PRETITLE_FADE_SPEED if Input.trigger?(:C)
end
#--------------------------------------------------------------------------
# * Gestion de l'image
#--------------------------------------------------------------------------
def gerer_picture
if @sprite_bkg
if @sens_fade != 0
if @sprite_bkg.opacity + @sens_fade > 255
@sprite_bkg.opacity = 255
elsif @sprite_bkg.opacity + @sens_fade < 0
@sprite_bkg.opacity = 0
else
@sprite_bkg.opacity += @sens_fade
end
if @sprite_bkg.opacity == 0 or @sprite_bkg.opacity == 255
@sens_fade = 0
@nb_frame = 0
if @sprite_bkg.opacity == 0
image_suivante
end
end
else
@nb_frame += 1
if @nb_frame == PRETITLE_NB_FRAME
@sens_fade = -PRETITLE_FADE_SPEED
end
end
end
end
def fadeout_all(time = 1000)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(time * Graphics.frame_rate / 1000)
RPG::BGS.stop
RPG::ME.stop
end
end
class Scene_Title < Scene_Base
def fadeout_all(time = 1000)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(time * Graphics.frame_rate / 1000)
RPG::BGS.stop
RPG::ME.stop
end
def play_title_music
RPG::BGS.stop
RPG::ME.stop
end
end
#==============================================================================
# ** SceneManager
#------------------------------------------------------------------------------
# Modification du module SceneManager afin de démarer sur la Scene_PreTitle
#==============================================================================
module SceneManager
#--------------------------------------------------------------------------
# * Get First Scene Class
#--------------------------------------------------------------------------
def self.first_scene_class
$BTEST ? Scene_Battle : Scene_PreTitle
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: [résolu]Modification de script - Pretitle
Ven 20 Mar 2015 - 17:07
Testé, ça marche super bien.
Merci pour ton aide.
Merci pour ton aide.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|