I'm trying to find out how to add an image before the title screen, like those commercial games... They add an image of their game and it fades away and to the title screen it goes. I really want to know how to do this.
If you still do not understand, do you know Amaranthia (http://www.amaranthia.com/)? Well, if you see their games, you will see that before the title screen shows, they put an 'Amaranth' image before the title screen shows up. Anyone know how to do this on RPG Maker VX?
Thanks for helping! :D
I don't know if this could be made by events alone, but this script by Vlue L. Maynara works just fine.
[spoiler]#--------- Pretitle script ------------------------------------------#
# - A script to display up to three images before the title menu #
# - Configurable! Woot! #
# ###Read this before using### #
# - Pictures to be displayed must be placed in the \Graphics\System #
# folder #
# - Audio files to be played must be placed in the \Audio\BGM folder #
# - Must change "$scene = Scene_Title.new" under Main to #
# "$scene = Scene_Pretitle.new" #
# - To call script (why? o.0) use "$scene = Scene_Pretitle.new" #
# #
# Disclaimer? Give credit where credit is due #
#-------------------------Script written by: Vlue L. Maynara---------#
class Scene_Pretitle < Scene_Base
###Config###
###Failure to comply with rules will result in script failure###
#Skip pretitles?
PRETITLE_SKIP = false
#Fadein (frames)
PRETITLE_TRANSITION = 20
#How long to display (frames)
PRETITLE_WAIT = 40
#Fadeout (frames)
PRETITLE_FADEOUT = 60
#Music to be played, nil in none (Filename must be in quotes, ex. "Scene1")
PRETITLE_MUSIC = "Scene1"
#Volume of Music (%)
PRETITLE_VOLUME = 100
#Pitch of Music (50-150)
PRETITLE_PITCH = 100
#First file to load, nil if none (Filename must be in quotes, ex. "Gameover")
PRETITLE_FILE = "Gameover"
#Second file to load, nil if none (Filename must be in quotes, ex. "Balloon")
PRETITLE_FILE2 = nil
#Third file to load, nil if none (Filename must be in quotes, ex. "Title")
PRETITLE_FILE3 = nil
###End Config###
#Script start#
def main
if $BTEST # If battle test
$scene = Scene_Title.new # Start battle test
else # If normal play
super # Usual main processing
end
end
def start
if PRETITLE_SKIP
$scene = Scene_Title.new
elsif
create_pretitle_1
end
end
def create_pretitle_1
if PRETITLE_FILE != nil
if PRETITLE_MUSIC != nil
Audio.bgm_play("Audio/BGM/" + PRETITLE_MUSIC, PRETITLE_VOLUME, PRETITLE_PITCH)
end
@sprite1 = Sprite.new
@sprite1.bitmap = Cache.system(PRETITLE_FILE)
Graphics.transition(PRETITLE_TRANSITION)
Graphics.wait(PRETITLE_WAIT)
Graphics.fadeout(PRETITLE_FADEOUT)
@sprite1.bitmap.dispose
@sprite1.dispose
create_pretitle_2
elsif
create_pretitle_2
end
end
def create_pretitle_2
if PRETITLE_FILE2 != nil
@sprite1 = Sprite.new
@sprite1.bitmap = Cache.system(PRETITLE_FILE2)
Graphics.fadein(PRETITLE_TRANSITION)
Graphics.wait(PRETITLE_WAIT)
Graphics.fadeout(PRETITLE_FADEOUT)
@sprite1.bitmap.dispose
@sprite1.dispose
create_pretitle_3
elsif
create_pretitle_3
end
end
def create_pretitle_3
if PRETITLE_FILE3 != nil
@sprite1 = Sprite.new
@sprite1.bitmap = Cache.system(PRETITLE_FILE3)
Graphics.fadein(PRETITLE_TRANSITION)
Graphics.wait(PRETITLE_WAIT)
Graphics.fadeout(PRETITLE_FADEOUT)
@sprite1.bitmap.dispose
@sprite1.dispose
$scene = Scene_Title.new
elsif
$scene = Scene_Title.new
end
end
end
#End Script#[/spoiler]
KGC has a similar script. Just replace your graphic name where it says Mais Coq.
[spoiler]#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ? Splash Logo - KGC_TitleDirection ? VX ?
#_/ ? Last Update: 2008/09/06 ?
#_/ ? Translation by Mr. Anonymous ?
#_/ ? KGC Site: ?
#_/ ? http://f44.aaa.livedoor.jp/~ytomy/ ?
#_/ ? Translator's Blog: ?
#_/ ? http://mraprojects.wordpress.com ?
#_/----------------------------------------------------------------------------
#_/ This script adds a function to display a splash logo before the title
#_/ screen is displayed. A sample of this effect is provided with the demo
#_/ this script came packaged in.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ? Customization ?
#==============================================================================
module KGC
module TitleDirection
# ? Start Title BGM Timing ?
# This allows you to adjust when the title screen BGM is played.
# 0..Before Logo 1..After Logo
BGM_TIMING = 1
# ? Show Logo During Testplay (DEBUGGING) ?
# This toggle allows you to bypass the logo display when debugging.
TESTPLAY_SHOW = true
# ? Splash Logo Image ?
# Here, you may specify the image file you'd like to use as a logo.
# The image must be in the "Graphics/System" folder.
# Setting this to nil will display nothing. If set to nil, the Splash Logo
# Sound Effect defined below is also assumed to be nil.
SPLASH_LOGO_FILE = "MaisCoq"
# ? Splash Logo Sound Effect ?
# Here, you may specify a sound effect to play while the splash logo displays.
# This can be written two ways. First, you can simply define a filename and
# the script automatically assumes to look in the SE folder and assign
# default values for volume and pitch, as such:
# SPLASH_LOGO_SE = "start_logo"
# Or class notation, allowing for additional customization, as such:
# SPLASH_LOGO_SE = RPG::SE.new("start_logo", 80, 100)
# Format: ("SoundName", Volume, Pitch)
SPLASH_LOGO_SE = RPG::SE.new("sb_duck", 80, 100)
# ? Logo Splash Style ?
# Here, you may specify an effect for your logo. It's best just to try out
# each option and see what works for you.
# 0..Fade 1..Crossing 2..Zoom 3..Splash
SPLASH_LOGO_TYPE = 2
end
end
#=============================================================================#
# ? End Customization ? #
#=============================================================================#
#=================================================#
# IMPORT #
#=================================================#
$imported = {} if $imported == nil
$imported["TitleDirection"] = true
#=================================================#
#==============================================================================
# ? Sprite_TitleLogo
#------------------------------------------------------------------------------
# ??????????????????
#==============================================================================
class Sprite_TitleLogo < Sprite
attr_accessor :effect_no_out # ?????????
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def initialize
super
@effect_type = 0
@effect_duration = 0
@effect_sprites = []
@effect_no_out = false
end
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
def dispose
super
dispose_effect_sprites
end
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
def dispose_effect_sprites
@effect_sprites.each { |s| s.dispose }
@effect_sprites = []
end
#--------------------------------------------------------------------------
# ? Z ????
#--------------------------------------------------------------------------
def z=(value)
super(value)
@effect_sprites.each { |s| s.z = value }
end
#--------------------------------------------------------------------------
# ? ??????
# dx : X ??
# dy : Y ??
# bitmap : ????
#--------------------------------------------------------------------------
def effect_fade(dx, dy, bitmap)
dispose_effect_sprites
@effect_type = 0
@effect_duration = 150
# ???????
sprite = Sprite.new
sprite.bitmap = bitmap
# ???????
sprite.x = dx
sprite.y = dy
sprite.ox = bitmap.width / 2
sprite.oy = bitmap.height / 2
sprite.opacity = 0
@effect_sprites << sprite
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def effect_cross(dx, dy, bitmap)
dispose_effect_sprites
@effect_type = 1
@effect_duration = 150
# ???????
sprites = [Sprite.new, Sprite.new]
sprites[0].bitmap = bitmap
sprites[1].bitmap = bitmap
# ???????
sprites[0].x = dx - 240
sprites[1].x = dx + 240
sprites[0].y = dy
sprites[1].y = dy
sprites[0].ox = sprites[1].ox = bitmap.width / 2
sprites[0].oy = sprites[1].oy = bitmap.height / 2
sprites[0].opacity = 0
sprites[1].opacity = 0
@effect_sprites += sprites
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def effect_zoom(dx, dy, bitmap)
dispose_effect_sprites
@effect_type = 2
@effect_duration = 150
# ???????
sprites = [Sprite.new, Sprite.new]
sprites[0].bitmap = bitmap
sprites[1].bitmap = bitmap
# ????
sprites[0].x = sprites[1].x = dx
sprites[0].y = sprites[1].y = dy
sprites[0].ox = sprites[1].ox = bitmap.width / 2
sprites[0].oy = sprites[1].oy = bitmap.height / 2
sprites[0].zoom_x = sprites[0].zoom_y = 0.0
sprites[1].zoom_x = sprites[1].zoom_y = 6.0
sprites[0].opacity = sprites[1].opacity = 0
@effect_sprites += sprites
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def effect_splash(dx, dy, bitmap)
dispose_effect_sprites
@effect_type = 3
@effect_duration = 150
# ???????
sprites = [Sprite.new]
sprites[0].bitmap = bitmap
# ????
sprites[0].ox = bitmap.width >> 1
sprites[0].oy = bitmap.height >> 1
sprites[0].x = dx
sprites[0].y = dy
sprites[0].opacity = 0
(1..3).each { |i|
sprites[i] = Sprite.new
sprites[i].bitmap = bitmap
sprites[i].ox = sprites[0].ox
sprites[i].oy = sprites[0].oy
sprites[i].x = dx
sprites[i].y = dy
sprites[i].opacity = 255
sprites[i].visible = false
}
@effect_sprites += sprites
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def effect_splash_in(dx, dy, bitmap)
dispose_effect_sprites
@effect_type = 4
@effect_duration = 41
# ???????
sprites = [Sprite.new]
sprites[0].bitmap = bitmap
# ????
sprites[0].ox = bitmap.width >> 1
sprites[0].oy = bitmap.height >> 1
sprites[0].x = dx - 160
sprites[0].y = dy - 160
sprites[0].opacity = 0
(1..3).each { |i|
sprites[i] = Sprite.new
sprites[i].bitmap = bitmap
sprites[i].ox = sprites[0].ox
sprites[i].oy = sprites[0].oy
sprites[i].x = dx
sprites[i].y = dy
sprites[i].opacity = 0
}
sprites[1].x += 160
sprites[1].y -= 160
sprites[2].x += 160
sprites[2].y += 160
sprites[3].x -= 160
sprites[3].y += 160
@effect_sprites += sprites
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def stop_effect
dispose_effect_sprites
@effect_duration = 0
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def effect?
return @effect_duration > 0
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
super
if @effect_duration > 0
update_effect
end
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def update_effect
@effect_duration -= 1
case @effect_type
when 0
update_effect_fade
when 1
update_effect_cross
when 2
update_effect_zoom
when 3
update_effect_splash
when 4
update_effect_splash_in
end
end
#--------------------------------------------------------------------------
# ? ??????? : ????
#--------------------------------------------------------------------------
def update_effect_fade
case @effect_duration
when 100...150
@effect_sprites[0].opacity += 6
when 30...100
# ?????
when 0...30
unless @effect_no_out
@effect_sprites[0].opacity -= 10
end
end
end
#--------------------------------------------------------------------------
# ? ??????? : ???
#--------------------------------------------------------------------------
def update_effect_cross
case @effect_duration
when 110...150
@effect_sprites[0].x += 6
@effect_sprites[1].x -= 6
@effect_sprites[0].opacity += 4
@effect_sprites[1].opacity += 4
when 30...110
@effect_sprites[0].opacity = 255
@effect_sprites[1].visible = false
when 0...30
unless @effect_no_out
@effect_sprites[0].opacity -= 13
end
end
end
#--------------------------------------------------------------------------
# ? ??????? : ???
#--------------------------------------------------------------------------
def update_effect_zoom
case @effect_duration
when 100...150
@effect_sprites[0].zoom_x = (@effect_sprites[0].zoom_y += 0.02)
@effect_sprites[1].zoom_x = (@effect_sprites[1].zoom_y -= 0.1)
@effect_sprites[0].opacity += 3
@effect_sprites[1].opacity += 3
when 30...100
@effect_sprites[0].opacity = 255
@effect_sprites[1].visible = false
when 0...30
unless @effect_no_out
@effect_sprites[0].opacity -= 13
end
end
end
#--------------------------------------------------------------------------
# ? ??????? : ??????
#--------------------------------------------------------------------------
def update_effect_splash
case @effect_duration
when 90...150
@effect_sprites[0].opacity += 5
when 0...60
@effect_sprites[0].x -= 2
@effect_sprites[0].y -= 2
@effect_sprites[1].x += 2
@effect_sprites[1].y -= 2
@effect_sprites[2].x += 2
@effect_sprites[2].y += 2
@effect_sprites[3].x -= 2
@effect_sprites[3].y += 2
4.times { |j|
@effect_sprites[j].visible = true
@effect_sprites[j].opacity -= 5
}
end
end
#--------------------------------------------------------------------------
# ? ??????? : ????????
#--------------------------------------------------------------------------
def update_effect_splash_in
case @effect_duration
when 1...41
@effect_sprites[0].x += 2
@effect_sprites[0].y += 2
@effect_sprites[1].x -= 2
@effect_sprites[1].y += 2
@effect_sprites[2].x -= 2
@effect_sprites[2].y -= 2
@effect_sprites[3].x += 2
@effect_sprites[3].y -= 2
4.times { |j|
@effect_sprites[j].opacity += 3
}
when 0
@effect_sprites[0].opacity = 255
(1..3).each { |i|
@effect_sprites[i].visible = false
}
end
end
end
#???????????????????????????????????????
#==============================================================================
# ? Scene_Title
#==============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ? ????
#--------------------------------------------------------------------------
alias start_KGC_TitleDirection start
def start
show_splash_logo
start_KGC_TitleDirection
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def show_splash_logo
return if $__splash_logo_shown
return if $TEST && !KGC::TitleDirection::TESTPLAY_SHOW
return if KGC::TitleDirection::SPLASH_LOGO_FILE == nil
play_title_music if KGC::TitleDirection::BGM_TIMING == 0
# ???? SE ??
if KGC::TitleDirection::SPLASH_LOGO_SE != nil
if KGC::TitleDirection::SPLASH_LOGO_SE.is_a?(RPG::SE)
KGC::TitleDirection::SPLASH_LOGO_SE.play
elsif KGC::TitleDirection::SPLASH_LOGO_SE.is_a?(String)
se = RPG::SE.new(KGC::TitleDirection::SPLASH_LOGO_SE)
se.play
end
end
# ?????????????
sprite = Sprite_TitleLogo.new
bitmap = Cache.system(KGC::TitleDirection::SPLASH_LOGO_FILE)
dx = Graphics.width / 2
dy = Graphics.height / 2
# ???????
case KGC::TitleDirection::SPLASH_LOGO_TYPE
when 0
sprite.effect_fade(dx, dy, bitmap)
when 1
sprite.effect_cross(dx, dy, bitmap)
when 2
sprite.effect_zoom(dx, dy, bitmap)
when 3
sprite.effect_splash(dx, dy, bitmap)
end
# ???????
Graphics.transition(0)
while sprite.effect?
Graphics.update
Input.update
sprite.update
# C ??????
if Input.trigger?(Input::C)
sprite.stop_effect
end
end
# ???
sprite.dispose
bitmap.dispose
# ?????????
Graphics.freeze
$__splash_logo_shown = true
end
end
[/spoiler]