Vorwort
Ich habe dieses Script aus der KGC Script Libary. Da ich per Suchfunktion keinen Einzelpost des Scriptes gefunden habe, poste ich ihn hier.
Was macht das Script?
Das Script lässt ein Logo wie bei EA erscheinen, erst dann kommt man zum Titelbildschirm.
Wie benutze ich es?
Einfach im Scripteditor als neuen Script einfügen. Dann noch eine Grafik in den Ordner SYSTEM
machen. Diese Grafik muss Logo heißen und ist dementsprechend das, was später angezeigt wird. Natürlich kann die Grafik auch anders heißen, dann muss der Name im Script (Zeile 36) aber auch umgeändert werden. Den Sound, der beim Anzeigen erklingt, kann man auch im Script (Zeile 47) umändern.
Änderungen kann man auch noch hier vornehmen:
Zeile 25 Wann soll die Titelmusik starten? 0=Vor Logo 1=Nach Logo
Zeile 29 Soll das Logo erscheinen? true= es erscheint false= es erscheint nicht
Zeile 53 Logoeffekt (steht im Script)
Script
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ? Splash Logo - KGC_TitleDirection ? VX ?
#_/ ? Last Update: 2008/09/06
#_/ ? Written by TOMY
#_/ ? Translation by Mr. Anonymous
#_/ ? KGC Site:
#_/ ? http://ytomy.sakura.ne.jp/
#_/ ? 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 = "Logo"
# ? 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("Flash3", 80, 150)
# ? 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 = 0
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
load_database
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
Credits gehen an KGC!!!
23.12.2010: Kleinen Bug bei Title_music behoben
ja, hi...
ich habe mir das KGC_TitleDirection (link im spoiler) skript geholt!
http://www.rpgvx.net/index.php?topic=4351.0
habe jetzt aber dazu eine frage...
ist es möglich, die zeit, wie lange das logo angezeigt wird, zu verändern?
das geht nämlich leider schon total schnell weg und für meine idee, welche ich auch schon zur hälfte umgesetzt habe... :cool:
muss ich es irgendwie hinbekommen, das das logo etwas länger als nur 2 sekunden angezeigt wird...
hoffe auf baldige rückmeldungen
danke schonmal im vorraus...