#============================================================================== # ○RGSS2・RGSS3 キャラクターフェードVer1.00 #作成者:riru/ガラス細工の夢幻 #http://garasuzaikunomugen.web.fc2.com/index.html #キャラクターをコマンド一つでフェードインしたりフェードアウトしたりするスクリプトです。 #<使い方> #ルート移動のスクリプトで #フェードインならfadein(フェード時間) #フェードアウトならfadeout(フェード時間)と記入してください #ただこちらはフェード開始時の不透明度が自動的に0と255になるので特定の不透明度から始める場合は #フェードインならfadein2(フェード時間,開始時の不透明度) #フェードアウトならfadeout2(フェード時間,開始時の不透明度)と記入してください #また、特定の不透明度から特定の不透明度にしたい場合は #fade(フェード時間,開始時の不透明度,最終的な不透明度)と記入してください # #*更新履歴* #2019/4/18 Ver1.00公開 #============================================================================== #============================================================================== # ■ Game_Character #------------------------------------------------------------------------------ #  キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event # クラスのスーパークラスとして使用されます。 #============================================================================== class Game_Character #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias riru_chafade_initialize initialize def initialize riru_chafade_initialize @fade_opacity = 0 @fadein_flug = false @fadeout_flug = false @fade_flug = false @fade_lastopacity = 255 end #-------------------------------------------------------------------------- # ● フェードイン #-------------------------------------------------------------------------- def fadein(time) @wait_count = time @fade_opacity = 255.0/time @fadein_flug = true @opacity = 0 @fade_lastopacity = 255 end #-------------------------------------------------------------------------- # ● フェードアウト #-------------------------------------------------------------------------- def fadeout(time) @wait_count = time @fade_opacity = 255.0/time @fadeout_flug = true @opacity = 255 @fade_lastopacity = 0 end #-------------------------------------------------------------------------- # ● フェードイン(特定の不透明度から) #-------------------------------------------------------------------------- def fadein2(time,opa) @wait_count = time @fade_opacity = (255.0-opa)/time @fadein_flug = true @opacity = opa @fade_lastopacity = 255 end #-------------------------------------------------------------------------- # ● フェードアウト(特定の不透明度から) #-------------------------------------------------------------------------- def fadeout2(time,opa) @wait_count = time @fade_opacity = (255.0-opa)/time @fadeout_flug = true @opacity = opa @fade_lastopacity = 0 end #-------------------------------------------------------------------------- # ● フェード(特定の不透明度から特定の不透明度まで) #-------------------------------------------------------------------------- def fade(time,opa,opa2) @wait_count = time @fade_opacity = (255.0-(opa-opa2).abs)/time @fade_flug = true if opa-opa2 > 0 #フェードアウト @fadeout_flug = true else @fadein_flug = true end @opacity = opa @fade_lastopacity = opa2 end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias riru_chafade_update update def update if @fade_flug if @fadeout_flug @opacity -= @fade_opacity if @opacity <= @fade_lastopacity @fadeout_flug = false @fade_flug = false @opacity = @fade_lastopacity end else @opacity += @fade_opacity if @opacity >= @fade_lastopacity @fadein_flug = false @fade_flug = false @opacity = @fade_lastopacity end end elsif @fadein_flug @opacity += @fade_opacity @fadein_flug = false if @opacity >= 255 elsif @fadeout_flug @opacity -= @fade_opacity @fadeout_flug = false if @opacity <= 0 end riru_chafade_update end end