come ne avevamo già parlato negli aiuti veloci ho deciso di aprire questo post non solo per me ma anche per chi interessava un bel video sull intro.. allora.. ricapitolando tutto.. avevamo trovato un script che aggiunge il video ma il video non si stoppava quindi se io mettevo 1 minuto di video.. ahimé.. i player dovevano aspettare 1 minuto ogni tal volta per vedere quel video.. quindi.. cerchiamo una soluzione migliore...
Nel mio già famoso script ho visto ke nel logo iniziale basta cliccare qualsiasi tasto della tastiera e si toglie automaticamente! adesso vorrei sapere se fosse possibile mettere invece dell immagine jpg o png che sia un bel video!
Questo qui è il mio Script:
#============================================================================== # +++ MOG - Animated Title A (v2.3) +++ #============================================================================== # By Moghunter # http://www.atelier-rgss.com/ #============================================================================== # Tela de titulo animado, com logo, imagens aleatórias e outros efeitos visuais. #==============================================================================
#============================================================================== # IMAGENS NECESSÁRIAS #============================================================================== # Serão necessários as seguintes imagens na pasta Graphics/Titles2/ # # Cursor.png # Commmand_Name.png (image filename = name of command) # Particle.png (Opcional) # Logo.jpg (Opcional) # Animated.png (Opcional) #==============================================================================
#============================================================================== # NOTA 1 - Para definir a imagem de texto basta selecionar no banco de dados # a imagem do titulo numero 2 (Segunda camada) #==============================================================================
#============================================================================== # NOTA 2 - O nome da imagem de comando é iguál ao nome do comando definido # no banco de dados do Rpg Maker. #==============================================================================
#============================================================================== # ● Histórico (Version History) #============================================================================== # v 2.3 - O nome do comando não é mais baseado no database. #==============================================================================
module MOG_SCENE_TITLE_A
#-------------------------------------------------------------------------- # ▼ LOGO ▼ #-------------------------------------------------------------------------- # Apresenta um Logo ao começar a tela de titulo. # Será necessário ter a imagem LOGO.jpg (png) na pasta Graphics/Title2 #-------------------------------------------------------------------------- # Ativar Logo LOGO = true # Duração do logo. LOGO_DURATION = 2 #(Sec)
#-------------------------------------------------------------------------- # ▼ RANDOM BACKGROUND ▼ #-------------------------------------------------------------------------- #Definição das pictures. #-------------------------------------------------------------------------- RANDOM_PICTURES = [ "Title0", "Title1", "Title2", "Title3" #"Title4","Title5","Title6","Title7" ] #Tempo de duração para ativar a troca de imagens. RANDOM_PICTURES_DURATION = 10#(sec) #Seleção aleatória. RAMDOM_SELECTION = true #Velocidade de Scrolling. (Speed X , Speed Y) RANDOM_PICTURES_SCROLL_SPEED = [0,0]
#-------------------------------------------------------------------------- # ▼ MULTIPLE LAYERS ▼ #-------------------------------------------------------------------------- # Definição de multiplas camadas. * (não há limíte na quantidade de camadas # usadas) #-------------------------------------------------------------------------- # MULTIPLE_LAYERS = [ ["A",B,C,D], ["A",B,C,D], ["A",B,C D], ["A",B,C,D ], ....] # # A - Nome da imagem. # B - Velocidade de scroll na horizontal. # C - Velocidade de scroll na vertical. # D - Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract) # MULTIPLE_LAYERS = [ ["Layer1",1,0,1], ["Layer2",3,0,1], ["Layer3",0,0,0] # ["Layer4",0,0,0], # ["Layer5",0,0,0], # ["Layer6",0,0,0] ]
#-------------------------------------------------------------------------- # ▼ PARTICLES ▼ #-------------------------------------------------------------------------- # Adiciona partículas animadas na tela do titulo. # Será necessário ter a imagem PARTICLE.png na pasta Graphics/Title2 #-------------------------------------------------------------------------- # Ativar Partículas. PARTICLE = true # Ativar Cores Aleatórias. PARTICLE_RANDOM_COLOR = true # Definição do tipo de blend. (0,1,2) PARTICLE_BLEND_TYPE = 1 #Definição do limite de velocidade das partículas. PARTICLE_MOVEMENT_RANGE_X = 3 PARTICLE_MOVEMENT_RANGE_Y = 3 PARTICLE_ANGLE_RANGE = 3
#-------------------------------------------------------------------------- # ▼ WAVE TITLE ▼ #-------------------------------------------------------------------------- # Ativa o efeito WAVE no texto do titulo, o Texto do titulo é definido # na camada do titulo 2, que pode ser definido através do banco de dados #-------------------------------------------------------------------------- #Ativar o efeito do titulo com efeito WAVE. TITLE_WAVE = true #Configuração do efeito WAVE # # TITLE_WAVE_CONFIG = [ AMP, LENGTH , SPEED] # TITLE_WAVE_CONFIG = [6 , 232 , 360]
#-------------------------------------------------------------------------- # ▼ ANIMATED_SPRITE ▼ (Opcional) #-------------------------------------------------------------------------- # Adiciona um sprite animado no titulo. # A quantidade de frames é proporcional a largura dividido pela altura # da imagem, ou seja, não há limite de quantidade de frames e nem de # tamanho da imagem. # Será necessário ter a imagem ANIMATED.png (Jpg) na pasta Graphics/Title2 #-------------------------------------------------------------------------- # Ativar Sprite animado. ANIMATED_SPRITE = true # Posição do Sprite animado. ANIMATED_SPRITE_POSITION = [130,150] # Velocidade da animação ANIMATED_SPRITE_SPEED = 10 # Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract) ANIMATED_SPRITE_BLEND_TYPE = 1 # Definição do zoom, ANIMATED_SPRITE_ZOOM = 1.5
#-------------------------------------------------------------------------- # ▼ COMMANDS / SELECTION ▼ #-------------------------------------------------------------------------- # Configuração extras da tela de titulo. #-------------------------------------------------------------------------- # Posição do comando. COMMANDS_POS = [220 , 280] # Ativar o efeito de tremor ao selecionar o comando. COMMAND_SHAKE = true # Definição da posição do cursor.(Para ajustes) CURSOR_POS = [-42,-7] # Ativar flash ao mover o comando. CURSOR_FLASH_SELECTION = true # Definição da posição do flash. CURSOR_FLASH_SLECTION_POS = [-180,0] # Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract) CURSOR_FLASH_SLECTION_BLEND_TYPE = 1
end
#============================================================================== # ■ Window TitleCommand #============================================================================== class Window_TitleCommand < Window_Command attr_reader :list end
#============================================================================== # ■ Particle Title #============================================================================== class Particle_Title < Sprite
#-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose super self.bitmap.dispose end
#-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super self.x += @speed_x self.y -= @speed_y self.angle += @speed_a self.opacity += 5 reset_setting if can_reset_setting? end
#-------------------------------------------------------------------------- # ● Can Reset Setting #-------------------------------------------------------------------------- def can_reset_setting? return true if (self.x < -48 or self.x > 592) return true if (self.y < -48 or self.y > 464) return false end end
#============================================================================== # ■ Multiple Layers Title #============================================================================== class Multiple_Layers_Title
#============================================================================== # ■ Scene Title #============================================================================== class Scene_Title < Scene_Base include MOG_SCENE_TITLE_A
#-------------------------------------------------------------------------- # ● Start #-------------------------------------------------------------------------- def start super RPG::BGM.fade(2000) @logo_active = LOGO SceneManager.clear @phase = 1 @phase_time = -1 dispose_title_sprites create_logo if @logo_active create_command_window create_commands create_background create_light create_cursor create_animated_object create_flash_select create_multiple_layers play_title_music unless @logo_active end
#-------------------------------------------------------------------------- # ● Create Multiple Layers #-------------------------------------------------------------------------- def create_multiple_layers @m_layers = [] index = 0 for i in MULTIPLE_LAYERS @m_layers.push(Multiple_Layers_Title.new(i[0],i[1],i[2],i[3],index)) index += 1 end end
#-------------------------------------------------------------------------- # ● Dispose Background2 #-------------------------------------------------------------------------- def dispose_background2 if @sprite2.bitmap != nil @sprite2.bitmap.dispose @sprite2.bitmap = nil @sprite2.dispose @sprite2 = nil end end
#-------------------------------------------------------------------------- # ● Dispose Light #-------------------------------------------------------------------------- def dispose_light return unless PARTICLE if @light_bitmap != nil for i in @light_bitmap i.dispose end @light_bitmap = nil end @viewport_light.dispose end
#-------------------------------------------------------------------------- # ● Dispose Logo #-------------------------------------------------------------------------- def dispose_logo return unless @logo_active @logo.bitmap.dispose @logo.dispose end
#-------------------------------------------------------------------------- # ● Dispose Multiple Layers #-------------------------------------------------------------------------- def dispose_multiple_layers return if @m_layers == nil @m_layers.each {|layer| layer.dispose } end
#-------------------------------------------------------------------------- # ● Terminate #-------------------------------------------------------------------------- def terminate super dispose_title_sprites end
#-------------------------------------------------------------------------- # ● Dispose Title Sprites #-------------------------------------------------------------------------- def dispose_title_sprites return if @cursor == nil dispose_background1 dispose_background2 dispose_light dispose_logo dispose_multiple_layers @cursor.bitmap.dispose @cursor.dispose @cursor = nil if @flash_select != nil @flash_select.bitmap.dispose @flash_select.dispose end for com in @commands com.bitmap.dispose com.dispose end if ANIMATED_SPRITE @object.bitmap.dispose @object.dispose @object_image.dispose end end
#-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super update_logo update_initial_animation update_command update_background update_light update_object_animation update_multiple_layers end
#-------------------------------------------------------------------------- # ● Update Multiple Layers #-------------------------------------------------------------------------- def update_multiple_layers return if @m_layers == nil @m_layers.each {|layer| layer.update } end
#-------------------------------------------------------------------------- # ● Make Object bitmap #-------------------------------------------------------------------------- def make_object_bitmap @object.bitmap.clear src_rect_back = Rect.new(@object_width * @object_index, 0,@object_width,@object_image.height) @object.bitmap.blt(0,0, @object_image, src_rect_back) end
#-------------------------------------------------------------------------- # ● Update Object Animation #-------------------------------------------------------------------------- def update_object_animation return if !ANIMATED_SPRITE @object.opacity += 2 @object_animation_speed += 1 if @object_animation_speed > ANIMATED_SPRITE_SPEED @object_animation_speed = 0 @object_index += 1 @object_index = 0 if @object_index >= @object_frame_max make_object_bitmap end end
#-------------------------------------------------------------------------- # ● Update Cursor Position #-------------------------------------------------------------------------- def update_cursor_position @cursor.opacity += 5 execute_animation_s execute_cursor_move(0,@cursor.x,@cursor_position[0] + @mx[1]) execute_cursor_move(1,@cursor.y,@cursor_position[1]) end
#-------------------------------------------------------------------------- # ● Execute Animation S #-------------------------------------------------------------------------- def execute_animation_s @mx[2] += 1 return if @mx[2] < 4 @mx[2] = 0 @mx[0] += 1 case @mx[0] when 1..7; @mx[1] += 1 when 8..14; @mx[1] -= 1 else @mx[0] = 0 @mx[1] = 0 end end
#-------------------------------------------------------------------------- # ● Execute Cursor Move #-------------------------------------------------------------------------- def execute_cursor_move(type,cp,np) sp = 5 + ((cp - np).abs / 5) if cp > np cp -= sp cp = np if cp < np elsif cp < np cp += sp cp = np if cp > np end @cursor.x = cp if type == 0 @cursor.y = cp if type == 1 end
#-------------------------------------------------------------------------- # ● Update Logo #-------------------------------------------------------------------------- def update_logo return if @phase != 0 loop do break if @logo_duration == 0 execute_logo Graphics.update Input.update end play_title_music end
#-------------------------------------------------------------------------- # ● Execute Logo #-------------------------------------------------------------------------- def execute_logo if @logo_duration > 120 and (Input.trigger?(:C) or Input.trigger?(:B)) @logo_duration = 120 end @logo_duration -= 1 if @logo_duration > 120 @logo.opacity += 5 else @logo.opacity -= 5 end if @logo.opacity <= 0 @logo_duration = 0 @phase = 1 end end
#-------------------------------------------------------------------------- # ● Update Background #-------------------------------------------------------------------------- def update_background @sprite1.ox += RANDOM_PICTURES_SCROLL_SPEED[0] @sprite1.oy += RANDOM_PICTURES_SCROLL_SPEED[1] @sprite2.opacity += 2 @sprite2.update return if RANDOM_PICTURES.size < 1 @rand_title_duration -= 1 if @rand_title_duration <= 0 @sprite1.opacity -= 5 unless RANDOM_PICTURES.size < 2 else @sprite1.opacity += 5 end return if @sprite1.opacity != 0 execute_random_picture end
#-------------------------------------------------------------------------- # ● Execute Random Picture #-------------------------------------------------------------------------- def execute_random_picture(initial = false) @rand_title_duration = [[60 * RANDOM_PICTURES_DURATION, 9999].min, 60].max if @sprite1.bitmap != nil @sprite1.bitmap.dispose @sprite1.bitmap = nil end if RAMDOM_SELECTION rand_pic = rand(RANDOM_PICTURES.size) if rand_pic == @old_back_index rand_pic += 1 rand_pic = 0 if rand_pic >= RANDOM_PICTURES.size end @old_back_index = rand_pic else @old_back_index += 1 unless initial @old_back_index = 0 if @old_back_index >= RANDOM_PICTURES.size end pic = RANDOM_PICTURES[@old_back_index] @sprite1.bitmap = Cache.title1(pic) rescue nil @sprite1.bitmap = Cache.title1("") if @sprite1.bitmap == nil end
#-------------------------------------------------------------------------- # ● Update Light #-------------------------------------------------------------------------- def update_light return unless PARTICLE if @light_bitmap != nil for i in @light_bitmap i.update end end end
#-------------------------------------------------------------------------- # ● Update Initial Animation #-------------------------------------------------------------------------- def update_initial_animation return if @phase != 1 @phase_time -= 1 if @phase_time > 0 if @phase_time == 0 @phase = 2 @phase_time = 30 end for i in @commands index = 0 if i.x < COMMANDS_POS[0] i.x += 5 + (2 * index) i.opacity += 10 if i.x >= COMMANDS_POS[0] i.x = COMMANDS_POS[0] i.opacity = 255 if @phase_time < 15 / 2 @phase_time = 15 end end end index += 1 end end
#-------------------------------------------------------------------------- # ● Update Command #-------------------------------------------------------------------------- def update_command return if @phase != 2 update_command_slide update_cursor_position update_flash_select end
#-------------------------------------------------------------------------- # ● Update Command Slide #-------------------------------------------------------------------------- def update_command_slide if @commands_index_old != @command_window.index @commands_index_old = @command_window.index @commands_shake_duration = 30 if @flash_select != nil @flash_select.opacity = 255 end end return if @commands_shake_duration == 0 @commands_shake_duration -= 1 if @commands_shake_duration > 0 @commands_shake_duration = 0 if !COMMAND_SHAKE for i in @commands if (i.z - 100) == @command_window.index i.opacity += 10 @cursor_position = [COMMANDS_POS[0] + CURSOR_POS[0],i.y + CURSOR_POS[1]] i.x = COMMANDS_POS[0] + rand(@commands_shake_duration) else i.opacity -= 7 if i.opacity > 100 i.x = COMMANDS_POS[0] end end end
se modificassimo lo script oppure aggiungiamo un nuovo script modificato che permette di mettere il video ma mettiamo un codice che permette di stoppare o togliere e andare avanti sarebbe figo..
vi allego anche un ulteriore script dove permette di mettere l'intro video:
#=============================================================================== # Scene Intro 1.0 - 06/04/2012 #------------------------------------------------------------------------------- # First of all, as anybody can see this script is heavily based on moghunter # Animated Title Screen. #------------------------------------------------------------------------------- # This scripts allows to add a slideshow or a movie as intro before the title # screen is shown. #------------------------------------------------------------------------------- # INSTRUCTIONS # # LOGO # Toggles Logo screen ON/OFF (true = on) # # LOGOTIME # Represents Logo duration in seconds. # # MODE # Sets 1 for slideshow, 2 for video (ogg/theora movie) # # PICTURES # Array of pictures showed in the slideshow. (put in Graphics/Intro/ folder) # # PICTIME # Each picture display duration. # # VIDEO # Video's filename. (put in Graphics/Intro/ folder) # # INTROMUSIC (played only in Slideshow Mode!) # Intro music filename (put in Graphics/Intro/ folder) #===============================================================================
def self.intro(filename) load_bitmap("Graphics/Intro/", filename) end
end #module Cache
#------------------------------------------------------------------------------- # SCENE INTRO #------------------------------------------------------------------------------- class Scene_Intro < Scene_Base include INTRO
def start super SceneManager.clear @phase = 1 @phase_time = -1 if LOGO create_logo else start_intro end #play_intro_music unless LOGO end
def start_intro if MODE == 1 #Play Slideshow create_sshow play_intro_music else #Play Movie Graphics.play_movie('Graphics/Intro/Intro.ogg') SceneManager.goto(Scene_Title) end
def dispose_sshow @sprite.dispose @sprite = nil end
def dispose_logo return unless LOGO @logo.bitmap.dispose @logo.dispose end
def update super update_logo update_initial_animation update_sshow if MODE == 1 end
def update_logo return if @phase != 0 loop do break if @logo_duration == 0 execute_logo Graphics.update end start_intro end
def update_initial_animation return if @phase != 1 @phase_time -= 1 if @phase_time > 0 if @phase_time == 0 @phase = 2 @phase_time = 30 end end
def update_sshow return if PICTURES.size == 1 @slide_duration -= 1 if @slide_duration <= 0 @sprite.opacity -= 5 else @sprite.opacity += 5 end return if @sprite.opacity != 0 change_picture end
def execute_logo @logo_duration -= 1 if @logo_duration > 120 @logo.opacity += 5 else @logo.opacity -= 5 end if @logo.opacity <= 0 @logo_duration = 0 @phase = 1 end end
def change_picture(initial = false) @slide_duration = [[60 * PICTIME, 9999].min, 60].max if @sprite.bitmap != nil @sprite.bitmap.dispose @sprite.bitmap = nil end @old_pic_index += 1 unless initial if @old_pic_index >= PICTURES.size SceneManager.goto(Scene_Title) else pic = PICTURES[@old_pic_index] @sprite.bitmap = Cache.intro(pic) end end
def play_intro_music Audio.bgm_play('Audio/BGM/' + INTROMUSIC) RPG::BGS.stop RPG::ME.stop end
def terminate super SceneManager.snapshot_for_background dispose_sshow if MODE == 1 dispose_logo if LOGO end
end #class Scene_Intro < Scene_Base
quindi la domanda che vi porgo è.. si potrebbe aggiungere uno script o modificare il medesimo script in modo che permetta di avviare il video iniziale ma che permetta anche di saltarlo con qualsiasi tasto? (o al max il tasto start) aspetto vostre risposte :)
Question
Goplaygo
come ne avevamo già parlato negli aiuti veloci ho deciso di aprire questo post non solo per me ma anche per chi interessava un bel video sull intro.. allora.. ricapitolando tutto.. avevamo trovato un script che aggiunge il video ma il video non si stoppava quindi se io mettevo 1 minuto di video.. ahimé.. i player dovevano aspettare 1 minuto ogni tal volta per vedere quel video.. quindi.. cerchiamo una soluzione migliore...
Nel mio già famoso script ho visto ke nel logo iniziale basta cliccare qualsiasi tasto della tastiera e si toglie automaticamente! adesso vorrei sapere se fosse possibile mettere invece dell immagine jpg o png che sia un bel video!
Questo qui è il mio Script:
#==============================================================================
# +++ MOG - Animated Title A (v2.3) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Tela de titulo animado, com logo, imagens aleatórias e outros efeitos visuais.
#==============================================================================
#==============================================================================
# IMAGENS NECESSÁRIAS
#==============================================================================
# Serão necessários as seguintes imagens na pasta Graphics/Titles2/
#
# Cursor.png
# Commmand_Name.png (image filename = name of command)
# Particle.png (Opcional)
# Logo.jpg (Opcional)
# Animated.png (Opcional)
#==============================================================================
#==============================================================================
# NOTA 1 - Para definir a imagem de texto basta selecionar no banco de dados
# a imagem do titulo numero 2 (Segunda camada)
#==============================================================================
#==============================================================================
# NOTA 2 - O nome da imagem de comando é iguál ao nome do comando definido
# no banco de dados do Rpg Maker.
#==============================================================================
#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 2.3 - O nome do comando não é mais baseado no database.
#==============================================================================
module MOG_SCENE_TITLE_A
#--------------------------------------------------------------------------
# ▼ LOGO ▼
#--------------------------------------------------------------------------
# Apresenta um Logo ao começar a tela de titulo.
# Será necessário ter a imagem LOGO.jpg (png) na pasta Graphics/Title2
#--------------------------------------------------------------------------
# Ativar Logo
LOGO = true
# Duração do logo.
LOGO_DURATION = 2 #(Sec)
#--------------------------------------------------------------------------
# ▼ RANDOM BACKGROUND ▼
#--------------------------------------------------------------------------
#Definição das pictures.
#--------------------------------------------------------------------------
RANDOM_PICTURES = [
"Title0", "Title1", "Title2", "Title3"
#"Title4","Title5","Title6","Title7"
]
#Tempo de duração para ativar a troca de imagens.
RANDOM_PICTURES_DURATION = 10#(sec)
#Seleção aleatória.
RAMDOM_SELECTION = true
#Velocidade de Scrolling. (Speed X , Speed Y)
RANDOM_PICTURES_SCROLL_SPEED = [0,0]
#--------------------------------------------------------------------------
# ▼ MULTIPLE LAYERS ▼
#--------------------------------------------------------------------------
# Definição de multiplas camadas. * (não há limíte na quantidade de camadas
# usadas)
#--------------------------------------------------------------------------
# MULTIPLE_LAYERS = [ ["A",B,C,D], ["A",B,C,D], ["A",B,C D], ["A",B,C,D ], ....]
#
# A - Nome da imagem.
# B - Velocidade de scroll na horizontal.
# C - Velocidade de scroll na vertical.
# D - Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
#
MULTIPLE_LAYERS = [
["Layer1",1,0,1],
["Layer2",3,0,1],
["Layer3",0,0,0]
# ["Layer4",0,0,0],
# ["Layer5",0,0,0],
# ["Layer6",0,0,0]
]
#--------------------------------------------------------------------------
# ▼ PARTICLES ▼
#--------------------------------------------------------------------------
# Adiciona partículas animadas na tela do titulo.
# Será necessário ter a imagem PARTICLE.png na pasta Graphics/Title2
#--------------------------------------------------------------------------
# Ativar Partículas.
PARTICLE = true
# Ativar Cores Aleatórias.
PARTICLE_RANDOM_COLOR = true
# Definição do tipo de blend. (0,1,2)
PARTICLE_BLEND_TYPE = 1
#Definição do limite de velocidade das partículas.
PARTICLE_MOVEMENT_RANGE_X = 3
PARTICLE_MOVEMENT_RANGE_Y = 3
PARTICLE_ANGLE_RANGE = 3
#--------------------------------------------------------------------------
# ▼ WAVE TITLE ▼
#--------------------------------------------------------------------------
# Ativa o efeito WAVE no texto do titulo, o Texto do titulo é definido
# na camada do titulo 2, que pode ser definido através do banco de dados
#--------------------------------------------------------------------------
#Ativar o efeito do titulo com efeito WAVE.
TITLE_WAVE = true
#Configuração do efeito WAVE
#
# TITLE_WAVE_CONFIG = [ AMP, LENGTH , SPEED]
#
TITLE_WAVE_CONFIG = [6 , 232 , 360]
#--------------------------------------------------------------------------
# ▼ ANIMATED_SPRITE ▼ (Opcional)
#--------------------------------------------------------------------------
# Adiciona um sprite animado no titulo.
# A quantidade de frames é proporcional a largura dividido pela altura
# da imagem, ou seja, não há limite de quantidade de frames e nem de
# tamanho da imagem.
# Será necessário ter a imagem ANIMATED.png (Jpg) na pasta Graphics/Title2
#--------------------------------------------------------------------------
# Ativar Sprite animado.
ANIMATED_SPRITE = true
# Posição do Sprite animado.
ANIMATED_SPRITE_POSITION = [130,150]
# Velocidade da animação
ANIMATED_SPRITE_SPEED = 10
# Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
ANIMATED_SPRITE_BLEND_TYPE = 1
# Definição do zoom,
ANIMATED_SPRITE_ZOOM = 1.5
#--------------------------------------------------------------------------
# ▼ COMMANDS / SELECTION ▼
#--------------------------------------------------------------------------
# Configuração extras da tela de titulo.
#--------------------------------------------------------------------------
# Posição do comando.
COMMANDS_POS = [220 , 280]
# Ativar o efeito de tremor ao selecionar o comando.
COMMAND_SHAKE = true
# Definição da posição do cursor.(Para ajustes)
CURSOR_POS = [-42,-7]
# Ativar flash ao mover o comando.
CURSOR_FLASH_SELECTION = true
# Definição da posição do flash.
CURSOR_FLASH_SLECTION_POS = [-180,0]
# Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
CURSOR_FLASH_SLECTION_BLEND_TYPE = 1
end
#==============================================================================
# ■ Window TitleCommand
#==============================================================================
class Window_TitleCommand < Window_Command
attr_reader :list
end
#==============================================================================
# ■ Particle Title
#==============================================================================
class Particle_Title < Sprite
include MOG_SCENE_TITLE_A
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize(viewport = nil)
super(viewport)
self.bitmap = Cache.title2("Particle")
self.tone.set(rand(255),rand(255), rand(255), 255) if PARTICLE_RANDOM_COLOR
self.blend_type = PARTICLE_BLEND_TYPE
@cw = self.bitmap.width
@ch = self.bitmap.height
@nx = PARTICLE_MOVEMENT_RANGE_X
@ny = PARTICLE_MOVEMENT_RANGE_Y
reset_setting
end
#--------------------------------------------------------------------------
# ● Reset Setting
#--------------------------------------------------------------------------
def reset_setting
zoom = (50 + rand(100)) / 100.1
self.zoom_x = zoom
self.zoom_y = zoom
self.x = (rand(576) -32)
self.y = rand(448 + @ch)
self.opacity = 0
self.angle = rand(360)
nx2 = rand(@nx).abs
nx2 = 1 if (@nx != 0 and nx2 < 1)
@speed_x = @nx > 0 ? nx2 : @nx < 0 ? -nx2 : 0
ny2 = rand(@ny).abs
ny2 = 1 if (@ny != 0 and ny2 < 1)
@speed_y = @ny > 0 ? ny2 : @ny < 0 ? -ny2 : 0
@speed_a = [[rand(PARTICLE_ANGLE_RANGE), PARTICLE_ANGLE_RANGE].min, 0].max
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
super
self.bitmap.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
self.x += @speed_x
self.y -= @speed_y
self.angle += @speed_a
self.opacity += 5
reset_setting if can_reset_setting?
end
#--------------------------------------------------------------------------
# ● Can Reset Setting
#--------------------------------------------------------------------------
def can_reset_setting?
return true if (self.x < -48 or self.x > 592)
return true if (self.y < -48 or self.y > 464)
return false
end
end
#==============================================================================
# ■ Multiple Layers Title
#==============================================================================
class Multiple_Layers_Title
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize(name = "", scroll_x = 0, scroll_y = 0, blend = 0, index = 0)
@layer = Plane.new
@layer.bitmap = Cache.title1(name.to_s) rescue nil
@layer.bitmap = Bitmap.new(32,32) if @layer.bitmap == nil
@layer.z = 10 + index
@layer.opacity = 0
@layer.blend_type = blend
@scroll_speed = [scroll_x, scroll_y]
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
@layer.bitmap.dispose
@layer.bitmap = nil
@layer.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
@layer.opacity += 2
@layer.ox += @scroll_speed[0]
@layer.oy += @scroll_speed[1]
end
end
#==============================================================================
# ■ Scene Title
#==============================================================================
class Scene_Title < Scene_Base
include MOG_SCENE_TITLE_A
#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
def start
super
RPG::BGM.fade(2000)
@logo_active = LOGO
SceneManager.clear
@phase = 1
@phase_time = -1
dispose_title_sprites
create_logo if @logo_active
create_command_window
create_commands
create_background
create_light
create_cursor
create_animated_object
create_flash_select
create_multiple_layers
play_title_music unless @logo_active
end
#--------------------------------------------------------------------------
# ● Create Multiple Layers
#--------------------------------------------------------------------------
def create_flash_select
return if !CURSOR_FLASH_SELECTION
@flash_select = Sprite.new
@flash_select.bitmap = Cache.title2("Cursor2")
@flash_select.z = 99
@flash_select.opacity = 0
@flash_select.blend_type = CURSOR_FLASH_SLECTION_BLEND_TYPE
end
#--------------------------------------------------------------------------
# ● Create Multiple Layers
#--------------------------------------------------------------------------
def create_multiple_layers
@m_layers = []
index = 0
for i in MULTIPLE_LAYERS
@m_layers.push(Multiple_Layers_Title.new(i[0],i[1],i[2],i[3],index))
index += 1
end
end
#--------------------------------------------------------------------------
# ● Create_Logo
#--------------------------------------------------------------------------
def create_animated_object
return if !ANIMATED_SPRITE
@object_index = 0
@object_animation_speed = 0
@object = Sprite.new
@object.z = 98
@object.opacity = 0
@object.blend_type = ANIMATED_SPRITE_BLEND_TYPE
@object.zoom_x = ANIMATED_SPRITE_ZOOM
@object.zoom_y = ANIMATED_SPRITE_ZOOM
@object_image = Cache.title2("Animated")
@object_frame_max = @object_image.width / @object_image.height
@object_width = @object_image.width / @object_frame_max
@object.bitmap = Bitmap.new(@object_width,@object_image.height)
@object.x = ANIMATED_SPRITE_POSITION[0]
@object.y = ANIMATED_SPRITE_POSITION[1]
make_object_bitmap
end
#--------------------------------------------------------------------------
# ● Create_Logo
#--------------------------------------------------------------------------
def create_cursor
@cursor = Sprite.new
@cursor.bitmap = Cache.title2("Cursor")
@cursor.opacity = 0
@cursor.z = 130
@cursor_position = [0,0]
@mx = [0,0,0]
end
#--------------------------------------------------------------------------
# ● Create_Logo
#--------------------------------------------------------------------------
def create_logo
@phase = 0
@logo = Sprite.new
@logo.bitmap = Cache.title2("Logo")
@logo.opacity = 0
@logo_duration = 180 + (LOGO_DURATION * 60)
@logo.z = 200
end
#--------------------------------------------------------------------------
# ● Create Commands
#--------------------------------------------------------------------------
def create_commands
@command_window.visible = false
@commands_index_old = -1
@commands = []
@commands_shake_duration = 0
index = 0
for com in 0...3
sprite = Sprite.new
case index
when 0; com_name = "New_Game"
when 1; com_name = "Continue"
when 2; com_name = "Shutdown"
end
sprite.bitmap = Cache.title2(com_name.to_s) rescue nil
if sprite.bitmap == nil
sprite.bitmap = Bitmap.new(200,32)
sprite.bitmap.font.size = 24
sprite.bitmap.font.bold = true
sprite.bitmap.font.italic = true
sprite.bitmap.draw_text(0, 0, 200, 32, com_name.to_s,1)
end
sprite.x = COMMANDS_POS[0] - 100 - (index * 20)
sprite.y = index * sprite.bitmap.height + COMMANDS_POS[1]
sprite.z = 100 + index
sprite.opacity = 0
index += 1
@commands.push(sprite)
end
@command_max = index
end
#--------------------------------------------------------------------------
# ● create_background
#--------------------------------------------------------------------------
def create_background
@rand_title_duration = 120
@old_back_index = 0
@sprite1 = Plane.new
@sprite1.opacity = 0
@sprite1.z = 1
if RAMDOM_SELECTION
execute_random_picture(false)
else
execute_random_picture(true)
end
@sprite2 = Sprite.new
@sprite2.bitmap = Cache.title2($data_system.title2_name)
@sprite2.z = 140
@sprite2.opacity = 0
if TITLE_WAVE
@sprite2.wave_amp = TITLE_WAVE_CONFIG[0]
@sprite2.wave_length = TITLE_WAVE_CONFIG[1]
@sprite2.wave_speed = TITLE_WAVE_CONFIG[2]
end
end
#--------------------------------------------------------------------------
# ● Create Light
#--------------------------------------------------------------------------
def create_light
return unless PARTICLE
@viewport_light = Viewport.new(-32, -32, 600, 480)
@viewport_light.z = 50
@light_bitmap =[]
for i in 0...20
@light_bitmap.push(Particle_Title.new(@viewport_light))
end
end
#--------------------------------------------------------------------------
# ● dispose Background1
#--------------------------------------------------------------------------
def dispose_background1
@sprite1.bitmap.dispose
@sprite1.bitmap = nil
@sprite1.dispose
@sprite1 = nil
end
#--------------------------------------------------------------------------
# ● Dispose Background2
#--------------------------------------------------------------------------
def dispose_background2
if @sprite2.bitmap != nil
@sprite2.bitmap.dispose
@sprite2.bitmap = nil
@sprite2.dispose
@sprite2 = nil
end
end
#--------------------------------------------------------------------------
# ● Dispose Light
#--------------------------------------------------------------------------
def dispose_light
return unless PARTICLE
if @light_bitmap != nil
for i in @light_bitmap
i.dispose
end
@light_bitmap = nil
end
@viewport_light.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Logo
#--------------------------------------------------------------------------
def dispose_logo
return unless @logo_active
@logo.bitmap.dispose
@logo.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Multiple Layers
#--------------------------------------------------------------------------
def dispose_multiple_layers
return if @m_layers == nil
@m_layers.each {|layer| layer.dispose }
end
#--------------------------------------------------------------------------
# ● Terminate
#--------------------------------------------------------------------------
def terminate
super
dispose_title_sprites
end
#--------------------------------------------------------------------------
# ● Dispose Title Sprites
#--------------------------------------------------------------------------
def dispose_title_sprites
return if @cursor == nil
dispose_background1
dispose_background2
dispose_light
dispose_logo
dispose_multiple_layers
@cursor.bitmap.dispose
@cursor.dispose
@cursor = nil
if @flash_select != nil
@flash_select.bitmap.dispose
@flash_select.dispose
end
for com in @commands
com.bitmap.dispose
com.dispose
end
if ANIMATED_SPRITE
@object.bitmap.dispose
@object.dispose
@object_image.dispose
end
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
update_logo
update_initial_animation
update_command
update_background
update_light
update_object_animation
update_multiple_layers
end
#--------------------------------------------------------------------------
# ● Update Multiple Layers
#--------------------------------------------------------------------------
def update_multiple_layers
return if @m_layers == nil
@m_layers.each {|layer| layer.update }
end
#--------------------------------------------------------------------------
# ● Make Object bitmap
#--------------------------------------------------------------------------
def make_object_bitmap
@object.bitmap.clear
src_rect_back = Rect.new(@object_width * @object_index, 0,@object_width,@object_image.height)
@object.bitmap.blt(0,0, @object_image, src_rect_back)
end
#--------------------------------------------------------------------------
# ● Update Object Animation
#--------------------------------------------------------------------------
def update_object_animation
return if !ANIMATED_SPRITE
@object.opacity += 2
@object_animation_speed += 1
if @object_animation_speed > ANIMATED_SPRITE_SPEED
@object_animation_speed = 0
@object_index += 1
@object_index = 0 if @object_index >= @object_frame_max
make_object_bitmap
end
end
#--------------------------------------------------------------------------
# ● Update Cursor Position
#--------------------------------------------------------------------------
def update_cursor_position
@cursor.opacity += 5
execute_animation_s
execute_cursor_move(0,@cursor.x,@cursor_position[0] + @mx[1])
execute_cursor_move(1,@cursor.y,@cursor_position[1])
end
#--------------------------------------------------------------------------
# ● Execute Animation S
#--------------------------------------------------------------------------
def execute_animation_s
@mx[2] += 1
return if @mx[2] < 4
@mx[2] = 0
@mx[0] += 1
case @mx[0]
when 1..7; @mx[1] += 1
when 8..14; @mx[1] -= 1
else
@mx[0] = 0
@mx[1] = 0
end
end
#--------------------------------------------------------------------------
# ● Execute Cursor Move
#--------------------------------------------------------------------------
def execute_cursor_move(type,cp,np)
sp = 5 + ((cp - np).abs / 5)
if cp > np
cp -= sp
cp = np if cp < np
elsif cp < np
cp += sp
cp = np if cp > np
end
@cursor.x = cp if type == 0
@cursor.y = cp if type == 1
end
#--------------------------------------------------------------------------
# ● Update Logo
#--------------------------------------------------------------------------
def update_logo
return if @phase != 0
loop do
break if @logo_duration == 0
execute_logo
Graphics.update
Input.update
end
play_title_music
end
#--------------------------------------------------------------------------
# ● Execute Logo
#--------------------------------------------------------------------------
def execute_logo
if @logo_duration > 120 and (Input.trigger?(:C) or Input.trigger?(:B))
@logo_duration = 120
end
@logo_duration -= 1
if @logo_duration > 120
@logo.opacity += 5
else
@logo.opacity -= 5
end
if @logo.opacity <= 0
@logo_duration = 0
@phase = 1
end
end
#--------------------------------------------------------------------------
# ● Update Background
#--------------------------------------------------------------------------
def update_background
@sprite1.ox += RANDOM_PICTURES_SCROLL_SPEED[0]
@sprite1.oy += RANDOM_PICTURES_SCROLL_SPEED[1]
@sprite2.opacity += 2
@sprite2.update
return if RANDOM_PICTURES.size < 1
@rand_title_duration -= 1
if @rand_title_duration <= 0
@sprite1.opacity -= 5 unless RANDOM_PICTURES.size < 2
else
@sprite1.opacity += 5
end
return if @sprite1.opacity != 0
execute_random_picture
end
#--------------------------------------------------------------------------
# ● Execute Random Picture
#--------------------------------------------------------------------------
def execute_random_picture(initial = false)
@rand_title_duration = [[60 * RANDOM_PICTURES_DURATION, 9999].min, 60].max
if @sprite1.bitmap != nil
@sprite1.bitmap.dispose
@sprite1.bitmap = nil
end
if RAMDOM_SELECTION
rand_pic = rand(RANDOM_PICTURES.size)
if rand_pic == @old_back_index
rand_pic += 1
rand_pic = 0 if rand_pic >= RANDOM_PICTURES.size
end
@old_back_index = rand_pic
else
@old_back_index += 1 unless initial
@old_back_index = 0 if @old_back_index >= RANDOM_PICTURES.size
end
pic = RANDOM_PICTURES[@old_back_index]
@sprite1.bitmap = Cache.title1(pic) rescue nil
@sprite1.bitmap = Cache.title1("") if @sprite1.bitmap == nil
end
#--------------------------------------------------------------------------
# ● Update Light
#--------------------------------------------------------------------------
def update_light
return unless PARTICLE
if @light_bitmap != nil
for i in @light_bitmap
i.update
end
end
end
#--------------------------------------------------------------------------
# ● Update Initial Animation
#--------------------------------------------------------------------------
def update_initial_animation
return if @phase != 1
@phase_time -= 1 if @phase_time > 0
if @phase_time == 0
@phase = 2
@phase_time = 30
end
for i in @commands
index = 0
if i.x < COMMANDS_POS[0]
i.x += 5 + (2 * index)
i.opacity += 10
if i.x >= COMMANDS_POS[0]
i.x = COMMANDS_POS[0]
i.opacity = 255
if @phase_time < 15 / 2
@phase_time = 15
end
end
end
index += 1
end
end
#--------------------------------------------------------------------------
# ● Update Command
#--------------------------------------------------------------------------
def update_command
return if @phase != 2
update_command_slide
update_cursor_position
update_flash_select
end
#--------------------------------------------------------------------------
# ● Update Command Slide
#--------------------------------------------------------------------------
def update_command_slide
if @commands_index_old != @command_window.index
@commands_index_old = @command_window.index
@commands_shake_duration = 30
if @flash_select != nil
@flash_select.opacity = 255
end
end
return if @commands_shake_duration == 0
@commands_shake_duration -= 1 if @commands_shake_duration > 0
@commands_shake_duration = 0 if !COMMAND_SHAKE
for i in @commands
if (i.z - 100) == @command_window.index
i.opacity += 10
@cursor_position = [COMMANDS_POS[0] + CURSOR_POS[0],i.y + CURSOR_POS[1]]
i.x = COMMANDS_POS[0] + rand(@commands_shake_duration)
else
i.opacity -= 7 if i.opacity > 100
i.x = COMMANDS_POS[0]
end
end
end
#--------------------------------------------------------------------------
# ● Update Flash Select
#--------------------------------------------------------------------------
def update_flash_select
return if !CURSOR_FLASH_SELECTION
@flash_select.opacity -= 8
@flash_select.x = @cursor_position[0] + CURSOR_FLASH_SLECTION_POS[0]
@flash_select.y = @cursor_position[1] + CURSOR_FLASH_SLECTION_POS[1]
end
end
$mog_rgss3_animated_title_a = true
se modificassimo lo script oppure aggiungiamo un nuovo script modificato che permette di mettere il video ma mettiamo un codice che permette di stoppare o togliere e andare avanti sarebbe figo..
vi allego anche un ulteriore script dove permette di mettere l'intro video:
#===============================================================================
# Scene Intro 1.0 - 06/04/2012
#-------------------------------------------------------------------------------
# First of all, as anybody can see this script is heavily based on moghunter
# Animated Title Screen.
#-------------------------------------------------------------------------------
# This scripts allows to add a slideshow or a movie as intro before the title
# screen is shown.
#-------------------------------------------------------------------------------
# INSTRUCTIONS
#
# LOGO
# Toggles Logo screen ON/OFF (true = on)
#
# LOGOTIME
# Represents Logo duration in seconds.
#
# MODE
# Sets 1 for slideshow, 2 for video (ogg/theora movie)
#
# PICTURES
# Array of pictures showed in the slideshow. (put in Graphics/Intro/ folder)
#
# PICTIME
# Each picture display duration.
#
# VIDEO
# Video's filename. (put in Graphics/Intro/ folder)
#
# INTROMUSIC (played only in Slideshow Mode!)
# Intro music filename (put in Graphics/Intro/ folder)
#===============================================================================
#-------------------------------------------------------------------------------
# CONFIGURE
#-------------------------------------------------------------------------------
module INTRO
LOGO = false
LOGOTIME = 2 #seconds
MODE = 2 #1=slideshow 2=video
PICTURES = ["Intro0","Intro1","Intro2","Intro3"] #Graphics/Intro
PICTIME = 3 #seconds
VIDEO = "video" #Graphics/Intro
INTROMUSIC = "Intro" #Audio/BGM/Intro
end #module INTRO
#-------------------------------------------------------------------------------
# SCENE MANAGER
#-------------------------------------------------------------------------------
module SceneManager
def self.first_scene_class
$BTEST ? Scene_Battle : Scene_Intro
end
end #module SceneManager
#-------------------------------------------------------------------------------
# CACHE
#-------------------------------------------------------------------------------
module Cache
def self.intro(filename)
load_bitmap("Graphics/Intro/", filename)
end
end #module Cache
#-------------------------------------------------------------------------------
# SCENE INTRO
#-------------------------------------------------------------------------------
class Scene_Intro < Scene_Base
include INTRO
def start
super
SceneManager.clear
@phase = 1
@phase_time = -1
if LOGO
create_logo
else
start_intro
end
#play_intro_music unless LOGO
end
def start_intro
if MODE == 1 #Play Slideshow
create_sshow
play_intro_music
else #Play Movie
Graphics.play_movie('Graphics/Intro/Intro.ogg')
SceneManager.goto(Scene_Title)
end
end
def create_logo
@phase = 0
@logo = Sprite.new
@logo.bitmap = Cache.intro("Logo")
@logo.opacity = 0
@logo_duration = 180 + (LOGOTIME * 60)
end
def create_sshow
@slide_duration = 120
@old_pic_index = 0
@sprite = Plane.new
@sprite.opacity = 0
change_picture(true)
end
def dispose_sshow
@sprite.dispose
@sprite = nil
end
def dispose_logo
return unless LOGO
@logo.bitmap.dispose
@logo.dispose
end
def update
super
update_logo
update_initial_animation
update_sshow if MODE == 1
end
def update_logo
return if @phase != 0
loop do
break if @logo_duration == 0
execute_logo
Graphics.update
end
start_intro
end
def update_initial_animation
return if @phase != 1
@phase_time -= 1 if @phase_time > 0
if @phase_time == 0
@phase = 2
@phase_time = 30
end
end
def update_sshow
return if PICTURES.size == 1
@slide_duration -= 1
if @slide_duration <= 0
@sprite.opacity -= 5
else
@sprite.opacity += 5
end
return if @sprite.opacity != 0
change_picture
end
def execute_logo
@logo_duration -= 1
if @logo_duration > 120
@logo.opacity += 5
else
@logo.opacity -= 5
end
if @logo.opacity <= 0
@logo_duration = 0
@phase = 1
end
end
def change_picture(initial = false)
@slide_duration = [[60 * PICTIME, 9999].min, 60].max
if @sprite.bitmap != nil
@sprite.bitmap.dispose
@sprite.bitmap = nil
end
@old_pic_index += 1 unless initial
if @old_pic_index >= PICTURES.size
SceneManager.goto(Scene_Title)
else
pic = PICTURES[@old_pic_index]
@sprite.bitmap = Cache.intro(pic)
end
end
def play_intro_music
Audio.bgm_play('Audio/BGM/' + INTROMUSIC)
RPG::BGS.stop
RPG::ME.stop
end
def terminate
super
SceneManager.snapshot_for_background
dispose_sshow if MODE == 1
dispose_logo if LOGO
end
end #class Scene_Intro < Scene_Base
quindi la domanda che vi porgo è.. si potrebbe aggiungere uno script o modificare il medesimo script in modo che permetta di avviare il video iniziale ma che permetta anche di saltarlo con qualsiasi tasto? (o al max il tasto start) aspetto vostre risposte :)
Edited by GoplaygoLink to comment
Share on other sites
17 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now