- ArxMembre
- Nombre de messages : 217
Age : 25
Localisation : Isère
Distinction : aucune
Date d'inscription : 19/01/2012
MOG Scene Credits
Mer 25 Juin 2014 - 15:14
Bonjour !
Je vais partager aujourd'hui un super script de Moghunter qui je pense va servir à plus d'un.
Il permet d'ajouter un système de crédit animé.
Nom du Script : Scene Credits
Auteur : Moghunter
Version du script : 1.1
Comment s'en servir?
-Toutes les images utilisées doivent être placées dans le dossier /GRAPHICS/CREDITS
-Les images de type texte doivent posséder un nom de la forme C0.png , C1.png, C2.png...
-Et pour les images de fond, mettez en autant que les images de type texte. Nommez les P0.png, P1.png, P2.png
-Pour appeler le script utilisez l'appel SceneManager.call(Scene_Credits)
Ce que l'on peut modifier dans le script.
-Le nom de la musique de fond (ligne 43 du script)
-La musique de l'image de fin (ligne 46 du script)
-Activer/Désactiver les particules (ligne 40 du script)
-Le nombre de frames que dure chaque image texte (ligne 38 du script)
-Pouvoir passer ou non les crédits (ligne 48 du script)
Screens :
Script:
Lien de la Demo: http://www.atelier-rgss.com/RGSS/Demos/Monogatari.zip
(Il y a peut être d'autres scripts sur la demo mais le script qui nous intéresse se nomme "MOG_Scene_Ending" et les ressources sont les musiques "Ending" et "Ending_2" du dossier BGM et le dossier Credits présent dans Graphics)
+2 points de participation
Je vais partager aujourd'hui un super script de Moghunter qui je pense va servir à plus d'un.
Il permet d'ajouter un système de crédit animé.
Nom du Script : Scene Credits
Auteur : Moghunter
Version du script : 1.1
Comment s'en servir?
-Toutes les images utilisées doivent être placées dans le dossier /GRAPHICS/CREDITS
-Les images de type texte doivent posséder un nom de la forme C0.png , C1.png, C2.png...
-Et pour les images de fond, mettez en autant que les images de type texte. Nommez les P0.png, P1.png, P2.png
-Pour appeler le script utilisez l'appel SceneManager.call(Scene_Credits)
Ce que l'on peut modifier dans le script.
-Le nom de la musique de fond (ligne 43 du script)
-La musique de l'image de fin (ligne 46 du script)
-Activer/Désactiver les particules (ligne 40 du script)
-Le nombre de frames que dure chaque image texte (ligne 38 du script)
-Pouvoir passer ou non les crédits (ligne 48 du script)
Screens :
- Spoiler:
Script:
- Code:
#==============================================================================
# +++ MOG - Scene Credits (v1.1) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com
#==============================================================================
# Cena de créditos ou tela final com efeitos animados.
#==============================================================================
#==============================================================================
# UTILIZAÇÃO
#==============================================================================
# As imagens devem esta na pasta
#
# /GRAPHICS/CREDITS
#
# Para definir a quantidade de imagens do texto de créditos basta nomear
# os arquivos da seguinte forma.
#
# C0.png
# C1.png
# C2.png
# ...
#
# Para definir a quantidade de imagens do texto de créditos basta nomear
# os arquivos da seguinte forma.
#
# P0.png
# P1.png
# P2.png
# ...
#
# (*Não é necessário definir o número de imagens pelo script.)
#
#==============================================================================
module MOG_SCENE_CREDITS
# Definição do tempo de apresentação do texto de créditos.
TEXT_DURATION = 180
# Ativar partículas
PARTICLES = true
# Definição do nome da música da cena de créditos.
# Para desativar está função basta não colocar o arquivo de música na pasta.
MUSIC_NAME = "Ending"
# Definição do nome da música da imagem final.
# Para desativar está função basta não colocar o arquivo de música na pasta.
END_MUSIC_NAME = "Ending_2"
# Ativar a função pular a cena ao apertar o botão.
DISABLE_SKIP_BUTTON = false
# Definição das imagens que terão o efeito deslize.
SLIDE_EFFECT_FRAME_ID = [0,3,9,12,17]
# Definição da prioridade das imagens.
BACKGROUND_Z = 0
PICTURES_Z = 1
PARTICLES_Z = 2
CREDITS_TEXT_Z = 4
LAYOUT_Z = 3
end
$imported = {} if $imported.nil?
$imported[:mog_scene_credits] = true
#==============================================================================
# ■ Scene Cache
#==============================================================================
module Cache
#--------------------------------------------------------------------------
# ● Credits
#--------------------------------------------------------------------------
def self.credits(filename)
load_bitmap("Graphics/Credits/", filename)
end
end
#==============================================================================
# ■ Game Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● Credits
#--------------------------------------------------------------------------
def credits
SceneManager.call(Scene_Credits)
end
end
#==============================================================================
# ■ Scene_Credits
#==============================================================================
class Scene_Credits
include MOG_SCENE_CREDITS
#--------------------------------------------------------------------------
# ● Main
#--------------------------------------------------------------------------
def main
setup
create_sprites
execute_loop
dispose_sprites
end
#--------------------------------------------------------------------------
# ● Setup
#--------------------------------------------------------------------------
def setup
@effect_type = 0
@phase = 0
@music = false
@text_duration = TEXT_DURATION
@text_duration = 1 if @text_duration < 1
$credits = true
if MUSIC_NAME != nil
BattleManager.save_bgm_and_bgs
RPG::BGM.fade(2000)
RPG::BGS.fade(2000)
end
end
#--------------------------------------------------------------------------
# ● Execute Loop
#--------------------------------------------------------------------------
def execute_loop
Graphics.transition(60)
loop do
update
Input.update
Graphics.update
break if SceneManager.scene != self
end
end
#--------------------------------------------------------------------------
# ● Play Music
#--------------------------------------------------------------------------
def play_music
return if @music_start != nil
@music_start = true
file = "Audio/BGM/" + MUSIC_NAME.to_s rescue nil
if file != nil
@music = true
Audio.bgm_play(file,100,100)
end
end
#--------------------------------------------------------------------------
# ● Create Sprites
#--------------------------------------------------------------------------
def create_sprites
create_background
create_particles
create_layout
create_credits
create_pictures
end
#--------------------------------------------------------------------------
# ● Create Particles
#--------------------------------------------------------------------------
def create_particles
return if !PARTICLES
@particles_bitmap =[]
for i in 0...10
@particles_bitmap.push(Particles_Credits.new(nil))
end
end
#--------------------------------------------------------------------------
# ● Create Pictures
#--------------------------------------------------------------------------
def create_pictures
@p_index = 0
@p_duration = [0,(179 + @text_duration) * @credits.size]
@pictures = []
for i in 0...999
@pictures.push(Cache.credits("P" + i.to_s)) rescue nil
break if @pictures[i] == nil
end
if @pictures.size > 0
@real_time = ((179 + @text_duration) * @credits.size)
@real_time2 = (@real_time / @pictures.size)
@real_time3 = @real_time - @real_time2
@p_duration[1] = @real_time2 - 90
end
@end_picture = Cache.credits("End_Picture") rescue nil
@p_sprite = Sprite.new
@p_sprite.bitmap = Bitmap.new(Graphics.width,Graphics.height)
@p_sprite.opacity = 0
@p_sprite.z = PICTURES_Z
@p_org = [0,0]
refresh_pictures
end
#--------------------------------------------------------------------------
# ● Update P Sprites
#--------------------------------------------------------------------------
def update_p_sprites
@p_duration[0] += 1 unless @phase == 3 and @p_duration[0] > 90
if @p_duration[0].between?(0,90)
@p_sprite.opacity += 1
elsif @p_duration[0].between?(91,@p_duration[1])
@p_sprite.opacity += 1
elsif @p_duration[0].between?(@p_duration[1],@p_duration[1] + 90)
@p_sprite.opacity -= 3 unless @phase == 3
else
refresh_pictures unless @phase == 3
end
end
#--------------------------------------------------------------------------
# ● Refresh Pictures
#--------------------------------------------------------------------------
def refresh_pictures
return if @phase == 3
@p_duration[0] = 0
@p_sprite.ox = 0
@p_sprite.oy = 0
@p_sprite.bitmap.clear
b_rect = Rect.new(0,0,Graphics.width,Graphics.height)
if @pictures[@p_index] != nil
@p_sprite.bitmap.blt(0,0,@pictures[@p_index],b_rect)
else
@p_sprite.bitmap.blt(0,0,@end_picture,b_rect) unless @end_picture == nil
@particles_bitmap.each {|sprite| sprite.refresh_bitmap } unless @particles_bitmap == nil
@phase = 3 unless @end_picture == nil or @pictures.size == 0
file = "Audio/BGM/" + END_MUSIC_NAME.to_s rescue nil
if file != nil
Audio.bgm_play(file,100,100)
@music = true
end
end
@p_sprite.opacity = 0
@p_index += 1
end
#--------------------------------------------------------------------------
# ● Create Background
#--------------------------------------------------------------------------
def create_background
@background = Sprite.new
@background.bitmap = Cache.credits("Background")
@background.z = BACKGROUND_Z
@background.opacity = 0
end
#--------------------------------------------------------------------------
# ● Create Layout
#--------------------------------------------------------------------------
def create_layout
@layout = Sprite.new
@layout.bitmap = Cache.credits("Layout")
@layout.z = LAYOUT_Z
@layout.opacity = 0
end
#--------------------------------------------------------------------------
# ● Create creadits
#--------------------------------------------------------------------------
def create_credits
@c_index = 0
@c_duration = [0,91 + @text_duration]
@credits = []
for i in 0...999
@credits.push(Cache.credits("C" + i.to_s)) rescue nil
break if @credits[i] == nil
end
@c_sprite = Sprite.new
@c_sprite.bitmap = Bitmap.new(Graphics.width,Graphics.height)
@c_sprite.z = CREDITS_TEXT_Z
@c_org = [0,0]
refresh_credits
end
#--------------------------------------------------------------------------
# ● Refresh creadits
#--------------------------------------------------------------------------
def refresh_credits
@effect_type = 0
if @music and @c_index == (@credits.size - 1)
fade_time = 2000 + 25 * @text_duration
RPG::BGM.fade(fade_time)
unless @phase == 3
@particles_bitmap.each {|sprite| sprite.force_fade } unless @particles_bitmap == nil
end
end
if @credits[@c_index] == nil and @phase == 0
SceneManager.return if @end_picture == nil
@phase = 1
return
end
@c_duration[0] = 0
@c_sprite.bitmap.clear unless @c_sprite.bitmap == nil
return if @credits[@c_index] == nil
cw = @credits[@c_index].width
ch = @credits[@c_index].height
@c_org = [0,0]
@c_sprite.x = @c_org[0]
@c_sprite.y = @c_org[1]
b_rect = Rect.new(0,0,cw,ch)
@c_sprite.bitmap.blt(0,0,@credits[@c_index],b_rect)
@c_sprite.opacity = 0
if SLIDE_EFFECT_FRAME_ID.include?(@c_index)
@effect_type = 1
@c_sprite.x -= 100
end
@c_sprite.zoom_y = @c_sprite.zoom_x
@c_index += 1
end
#--------------------------------------------------------------------------
# ● Update C Sprites
#--------------------------------------------------------------------------
def update_c_sprites
@c_duration[0] += 1
if @c_duration[0].between?(0,90)
@c_sprite.opacity += 3
@c_sprite.x += 1 if @c_sprite.x < 0
@c_sprite.x = 0 if @c_sprite.x > 0
elsif @c_duration[0].between?(91,@c_duration[1])
@c_sprite.x += 1 if @c_sprite.x < 0
@c_sprite.x = 0 if @c_sprite.x > 0
elsif @c_duration[0].between?(@c_duration[1],@c_duration[1] + 90)
@c_sprite.opacity -= 3
@c_sprite.x += 1 if @effect_type == 1
else
refresh_credits
end
end
#--------------------------------------------------------------------------
# ● Dispose Sprites
#--------------------------------------------------------------------------
def dispose_sprites
Graphics.fadeout(120)
Graphics.freeze
@c_sprite.bitmap.dispose
@c_sprite.dispose
@p_sprite.bitmap.dispose
@p_sprite.dispose
@background.bitmap.dispose
@background.dispose
@layout.bitmap.dispose
@layout.dispose
dispose_particles
@credits.each {|sprite| sprite.dispose}
@pictures.each {|sprite| sprite.dispose}
@end_picture.dispose if @end_picture != nil
if @music
RPG::BGM.stop
BattleManager.replay_bgm_and_bgs
end
end
#--------------------------------------------------------------------------
# ● Dispose Particles
#--------------------------------------------------------------------------
def dispose_particles
return if @particles_bitmap == nil
@particles_bitmap.each {|sprite| sprite.dispose_sprites }
@particles_bitmap.each {|sprite| sprite.dispose }
@particles_bitmap = nil
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
if @phase == 0
@background.opacity += 3
@layout.opacity += 3
else
@background.opacity -= 3
@layout.opacity -= 3
end
update_command if @background.opacity > 60 or @phase > 0
update_c_sprites if @background.opacity > 200 or @phase > 0
update_p_sprites if @background.opacity > 200 or @phase > 0
update_particles
play_music if MUSIC_NAME != nil
end
#--------------------------------------------------------------------------
# ● Update Particles
#--------------------------------------------------------------------------
def update_particles
return if @particles_bitmap == nil
@particles_bitmap.each {|sprite| sprite.update }
end
#--------------------------------------------------------------------------
# ● Update Command
#--------------------------------------------------------------------------
def update_command
return if @phase == 0 and DISABLE_SKIP_BUTTON
if Input.trigger?(:B) or Input.trigger?(:C)
@phase = 3
RPG::BGM.fade(2000) if @music
SceneManager.return
end
end
end
#==============================================================================
# ■ Particles_
#==============================================================================
class Particles_Credits < Sprite
include MOG_SCENE_CREDITS
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize(viewport = nil)
super(viewport)
@speed_x = 0
@speed_y = 0
@speed_a = 0
@fade = false
self.bitmap = Cache.credits("Particles")
self.blend_type = 1
self.z = PARTICLES_Z
@width_range = Graphics.width + self.bitmap.width
@height_range = Graphics.height + self.bitmap.height
reset_setting(true)
end
#--------------------------------------------------------------------------
# ● Refresh Bitmap
#--------------------------------------------------------------------------
def refresh_bitmap
if self.bitmap != nil
self.bitmap.dispose rescue nil
end
self.bitmap = Cache.credits("Particles_2") rescue nil
if self.bitmap != nil
@fade = false
@width_range = Graphics.width + self.bitmap.width
@height_range = Graphics.height + self.bitmap.height
reset_setting(true)
end
end
#--------------------------------------------------------------------------
# ● Reset Setting
#--------------------------------------------------------------------------
def reset_setting(initial = false)
zoom = (50 + rand(100)) / 100.1
self.zoom_x = zoom
self.zoom_y = zoom
self.x = rand(@width_range) - 160
self.y = initial == true ? rand(@height_range) : @height_range
self.opacity = 0
self.angle = rand(360)
@speed_y = -(1 + rand(3))
@speed_x = (1 + rand(2))
@speed_a = (1 + rand(2))
end
#--------------------------------------------------------------------------
# ● Force Fade
#--------------------------------------------------------------------------
def force_fade
@fade = true
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose_sprites
if self.bitmap != nil
self.bitmap.dispose rescue nil
end
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
self.x += @speed_x
self.y += @speed_y
self.angle += @speed_a
self.opacity += @fade ? -2 : 2
reset_setting if can_reset_setting?
end
#--------------------------------------------------------------------------
# ● Can Reset Setting
#--------------------------------------------------------------------------
def can_reset_setting?
return true if self.y < -50
return true if self.x > @width_range
return false
end
end
Lien de la Demo: http://www.atelier-rgss.com/RGSS/Demos/Monogatari.zip
(Il y a peut être d'autres scripts sur la demo mais le script qui nous intéresse se nomme "MOG_Scene_Ending" et les ressources sont les musiques "Ending" et "Ending_2" du dossier BGM et le dossier Credits présent dans Graphics)
+2 points de participation
- XandiarMembre
- Nombre de messages : 497
Age : 29
Localisation : Suisse
Distinction : aucune
Date d'inscription : 12/10/2013
Re: MOG Scene Credits
Mer 25 Juin 2014 - 15:41
Yeha merci, c'est vraiment cool =D !!
- HeavenStaffeux retraité
- Nombre de messages : 2441
Age : 23
Localisation : Alpes-Maritimes VIRILITÉ OLALA
Distinction : Aucune
Date d'inscription : 18/10/2012
Re: MOG Scene Credits
Mer 25 Juin 2014 - 15:42
Très sympa en effet, merci du partage^^
Heav'n
Heav'n
- ZangtherMembre
- Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013
Re: MOG Scene Credits
Mer 25 Juin 2014 - 16:18
Ca serait bien d'avoir le script direct.
Pas envie de me taper le download d'une démo pour avoir juste un script et deux images dans un projet :/
Pas envie de me taper le download d'une démo pour avoir juste un script et deux images dans un projet :/
- ArxMembre
- Nombre de messages : 217
Age : 25
Localisation : Isère
Distinction : aucune
Date d'inscription : 19/01/2012
Re: MOG Scene Credits
Mer 25 Juin 2014 - 16:59
Script rajouté sur le premier post pour ceux qui préfèrent l'avoir sans Demo.
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: MOG Scene Credits
Mer 25 Juin 2014 - 17:01
Merci du partage Arx.
_________________
Re: MOG Scene Credits
Mer 25 Juin 2014 - 21:21
Waw parfait , mais pour ceux qui on vraiment beaucoup de crédit vive Photoshop ! x)
Merci.
Merci.
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: MOG Scene Credits
Jeu 26 Juin 2014 - 12:53
je vais surement l'utiliser merci du partage
- DakusyMembre
- Nombre de messages : 10
Age : 28
Distinction : aucune
Date d'inscription : 12/09/2014
Re: MOG Scene Credits
Mar 16 Sep 2014 - 22:31
Merci, je t'aime :o
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum