=begin 全体アニメ統一スクリプトver. 1.00 by bant スキルの効果が敵全体または味方全体で、アニメの位置が画面の場合、 通常ではアニメが標的分表示され、処理が重くなってしまいます。 このスクリプトを導入すればアニメが一つしか表示されないので 処理が軽くなり、複雑な全体アニメも多少は軽くなります。 ただし、標的が単体の場合や、アニメの位置が画面でない場合は効果はありません。 ・導入する位置 エイリアスを行っているのでできるだけ下。 ただし、RPG::Spriteのupdate_animationメソッドを再定義しているので、 もしこのメソッドにエイリアスを行っているスクリプトがあればその上。 =end #=begin #============================================================================== # ■ Game_Battler (分割定義 1) #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :all_anime # 全体アニメ二体目以降フラグ end #============================================================================== # ■ Scene_Battle (分割定義 4) #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle alias all_anime_update_phase4_step4 update_phase4_step4 def update_phase4_step4 # 元の処理を実行 all_anime_update_phase4_step4 for target in @target_battlers # ターゲットの二体目以降でアニメの位置が全体ならフラグをONにする if @animation2_id != 0 if target != @target_battlers[0] && $data_animations[@animation2_id].position == 3 target.all_anime = true end end end end alias all_anime_update_phase4_step5 update_phase4_step5 def update_phase4_step5 # ターゲットのフラグを全てオフにする for target in @target_battlers target.all_anime = false end # 元の処理を実行 all_anime_update_phase4_step5 end end #------------------------------------------------------------------------------ # ■ module RPG #------------------------------------------------------------------------------ module RPG class Sprite < ::Sprite def update_animation if @_animation_duration > 0 frame_index = @_animation.frame_max - @_animation_duration cell_data = @_animation.frames[frame_index].cell_data position = @_animation.position if self.is_a?(Sprite_Character) or (self.battler != nil and !self.battler.all_anime) animation_set_sprites(@_animation_sprites, cell_data, position) end for timing in @_animation.timings if timing.frame == frame_index animation_process_timing(timing, @_animation_hit) end end else dispose_animation end end end end #=end