#◆◇◆◇◆ 戦闘背景色調変更スクリプトVX ver 1.01 ◇◆◇◆◇ # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin ■ 更新履歴 ○ ver 1.01(2009/02/14) 全滅でエラー落ちするミスを修正 ○ ver 1.00(2009/02/14) 公開 ■ 説明 アニメ中に任意のタイミングで 戦闘背景の色調が変更できるようになります。 戦闘背景の色調のみが変更されるので、 画面の色調や、バトラー、アニメには何の影響も与えません。 変更には任意のフレームに、 背景色変更 という名前のSEを実行してください。 そのタイミングで戦闘背景の色調が変更されます。 色調は各色 128 を基本とし、 129以上で加算、127以下で減算となります。 RGB3色255なら真っ白、0なら真っ黒になります。 全て128にすれば本来の色になります。 変更に掛ける時間はフラッシュの時間を使用します。 フラッシュの強さは使いません。 アニメが解放されると、自動的に色調の変更も解除されます。 =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # 戦闘背景色調変更スクリプトを有効化 ( true で有効 / false で無効 ) RGSS["戦闘背景色調変更"] = true end # 戦闘背景色調変更スクリプトが有効な場合に以降の処理を実行する if MINTO::RGSS["戦闘背景色調変更"] == true then #============================================================================== # ☆ MINTO_Fone_Change #------------------------------------------------------------------------------ # 戦闘背景の色調変更を管理するシステムモジュールです。 #============================================================================== module MINTO_Fone_Change #-------------------------------------------------------------------------- # ● SEとフラッシュのタイミング処理 # timing : タイミングデータ (RPG::Animation::Timing) #-------------------------------------------------------------------------- def animation_process_timing(timing) # マップ画面の場合 if $scene.is_a?(Scene_Map) == true then # メソッドを返す return end # SE名が カットイン実行 の場合 if timing.se.name == "背景色変更" then # 戦闘背景の色調を変更 $scene.spriteset.tone_change(timing.flash_color, timing.flash_duration) # それ以外のSE名の場合 else # スーパークラスを実行 (継承先の処理に移行する) super(timing) end end #-------------------------------------------------------------------------- # ● アニメーションの解放 #-------------------------------------------------------------------------- def dispose_animation # 戦闘画面でない場合 if $scene.is_a?(Scene_Battle) == false then # メソッドを返す 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 #-------------------------------------------------------------------------- # ● フレーム更新 # 使用エイリアス : tone_change_update #-------------------------------------------------------------------------- alias :tone_change_update :update def update # 元の処理を実行 tone_change_update # 色調変更の更新 update_tone_change 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