#◆◇◆◇◆ 戦闘背景暗転スクリプトVX ver 1.00 ◇◆◇◆◇ # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin ■ 更新履歴 ○ ver 1.00(2009/05/03) 公開 ■ 説明 アニメーションの名前に 暗転 の文字が含まれている場合、 戦闘背景を暗転させます。 戦闘背景の色調のみが変更されるので、 画面の色調や、バトラー、アニメには何の影響も与えません。 アニメーションが解放されると、自動的に色調の変更も解除されます。 =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # 戦闘背景暗転スクリプトを有効化 ( true で有効 / false で無効 ) RGSS["戦闘背景暗転"] = true end # 戦闘背景暗転スクリプトが有効な場合に以降の処理を実行する if MINTO::RGSS["戦闘背景暗転"] == true then #============================================================================== # ☆ MINTO_Fone_Change #------------------------------------------------------------------------------ # 戦闘背景の色調変更を管理するシステムモジュールです。 #============================================================================== module MINTO_Fone_Change #-------------------------------------------------------------------------- # ● アニメーションの開始 # animation : アニメーション(RPG::Animation) # mirror : アニメ反転フラグ #-------------------------------------------------------------------------- def start_animation(animation, mirror = false) # 戦闘画面でない場合 if $scene.is_a?(Scene_Battle) == false then # スーパークラスの処理へ移行 super(animation, mirror) # メソッドを返す return end # スーパークラスの処理へ移行 super(animation, mirror) # アニメーション名に 暗転 の文字が含まれている場合 if animation.name.include?("暗転") # 背景を暗転 $scene.spriteset.tone_change(Color.new(48, 48, 48), 8) end end #-------------------------------------------------------------------------- # ● アニメーションの解放 #-------------------------------------------------------------------------- def dispose_animation # 戦闘画面でない場合 if $scene.is_a?(Scene_Battle) == false then # スーパークラスを実行 (継承先の処理に移行する) super # メソッドを返す return end # 戦闘背景の色調を戻す $scene.spriteset.tone_change(Color.new(128, 128, 128), 16) # スーパークラスを実行 (継承先の処理に移行する) super end end #============================================================================== # ■ Spriteset_Battle #------------------------------------------------------------------------------ #  バトル画面のスプライトをまとめたクラスです。このクラスは Scene_Battle クラ # スの内部で使用されます。 #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ● 戦闘背景の色調変更処理 # color : 変更する色調 # duration : 変更に掛ける時間 #-------------------------------------------------------------------------- def tone_change(color, duration) # 各種データを保存 @tone_color = color @change_rate = duration * 4 @duration_frame = duration * 4 # 各色調データを実際のものに変換 @red = @battleback_sprite.tone.red - (((128 - color.red) * 2) * -1) @green = @battleback_sprite.tone.green - (((128 - color.green) * 2) * -1) @blue = @battleback_sprite.tone.blue - (((128 - color.blue) * 2) * -1) end #-------------------------------------------------------------------------- # ● フレーム更新 (色調変更) #-------------------------------------------------------------------------- def update_tone_change # 色調の変更が必要ない場合 if @duration_frame.to_i == 0 then # メソッドを返す return end # 残り時間を減らす @duration_frame -= 1 # 赤色の変更が必要な場合 if @red != 0 then # 赤色を変更 @battleback_sprite.tone.red -= @red / @change_rate.to_f end # 緑色の変更が必要な場合 if @green != 0 then # 緑色を変更 @battleback_sprite.tone.green -= @green / @change_rate.to_f end # 青色の変更が必要な場合 if @blue != 0 then # 青色を変更 @battleback_sprite.tone.blue -= @blue / @change_rate.to_f end end #-------------------------------------------------------------------------- # ● フレーム更新 # 使用エイリアス : black_out_update #-------------------------------------------------------------------------- alias :black_out_update :update def update # 元の処理を実行 black_out_update # 戦闘背景色調変更スクリプトが無効な場合 unless MINTO::RGSS["戦闘背景色調変更"] then # 色調変更の更新 update_tone_change end end end #============================================================================== # ■ Sprite_Battler #------------------------------------------------------------------------------ #  バトラー表示用のスプライトです。Game_Battler クラスのインスタンスを監視し、 # スプライトの状態を自動的に変化させます。 #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● システムインクルード #-------------------------------------------------------------------------- include(MINTO_Fone_Change) # 色調変更モジュール end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :spriteset # スプライトセット end end