#============================================================================== # ■ VXAce-RGSS3-17 タイトルカスタマイズ [Logo] by Claimh #------------------------------------------------------------------------------ # タイトル表示前にロゴ画面を表示します。 #------------------------------------------------------------------------------ # ●セクション # タイトルカスタマイズより下に配置して下さい。 #------------------------------------------------------------------------------ # ●動作について # ロゴ表示中Title.skip_trigger?内のボタンが押された場合はスキップします # ただし、動画再生の場合はスキップできません。 #============================================================================== module Title::LOGO # ME LOGO_ME = RPG::ME.new("Item") # トランジション(nil:画像なし) LOGO_TRN = nil #"Graphics/System/cc_transition2" # ロゴタイプ # 0..画像 # 1..テキスト # 2..ogv動画 LOGO_TYPE = 0 # ロゴ名(画像ファイル or テキスト or 動画ファイル) # 画像ファイル : Graphics/System/ # 動画ファイル : Movies/ LOGO = "logo" # ロゴ表示位置(Rect#width,heightは未参照) # Rect#x : -1を指定すると中央 # Rect#y : -1を指定すると中央 # (注)動画再生は常に中央表示になります L_RECT = Rect.new(-1, -1, 0, 0) # フォント設定 def self.logo_font(bitmap) bitmap.font.size = 48 bitmap end # ロゴ表示時間(フレーム数) # (注)動画再生では無効(動画終端まで再生されます) L_TIME = 90 # タイムアウト発生時にもロゴ表示する L_TOUT = false end #============================================================================== # ■ Title::Scene #============================================================================== module Title::Scene #-------------------------------------------------------------------------- # ● ロゴシーンの有無 #-------------------------------------------------------------------------- def self.enable_logo(timeout=false) timeout ? Title::LOGO::L_TOUT : true end end class Scene_Logo < Scene_Base include Title::LOGO #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super prepare end #-------------------------------------------------------------------------- # ● 準備 #-------------------------------------------------------------------------- def prepare(timeout=false) @timeout = timeout end #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- def start super LOGO_ME.play unless LOGO_ME.nil? @time = 0 @sprite = Sprite.new @sprite.bitmap = Title::LOGO.logo_font(Bitmap.new(Graphics.width, Graphics.height)) draw_logo if LOGO_TYPE < 2 end #-------------------------------------------------------------------------- # ● トランジション実行 #-------------------------------------------------------------------------- def perform_transition LOGO_TRN.nil? ? super : Graphics.transition(transition_speed, LOGO_TRN) end #-------------------------------------------------------------------------- # ● トランジション速度の取得 #-------------------------------------------------------------------------- def transition_speed return 20 end #-------------------------------------------------------------------------- # ● ロゴ描画 #-------------------------------------------------------------------------- def draw_logo logo = Title::TitleName.new(LOGO_TYPE==1) logo.src_rect(LOGO, LOGO, @sprite.bitmap) logo.calc_rect(L_RECT, false) logo.draw_tile(@sprite.bitmap) end #-------------------------------------------------------------------------- # ● 開始後処理 #-------------------------------------------------------------------------- def post_start super play_movie if LOGO_TYPE == 2 end #-------------------------------------------------------------------------- # ● 動画再生 #-------------------------------------------------------------------------- def play_movie Graphics.play_movie('Movies/' + LOGO) return_scene end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- def terminate super @sprite.bitmap.dispose @sprite.dispose end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super @time += 1 return return_scene if @time > L_TIME return return_scene if Title.skip_trigger? end #-------------------------------------------------------------------------- # ● 呼び出し元のシーンへ戻る #-------------------------------------------------------------------------- def return_scene super fadeout_all SceneManager.scene.prepare(Title::Scene::S_LOGO, @timeout) end end