Wydaje mi się, że najlepiej by było nie używać polecenia picture w zdarzeniach walki, tylko skonfigurować animację poszczególnych przeciwników bezpośrednio w skryptach. Dzięki czemu nie występuje problem z tzw. "viewportem" i jego współrzędną z.
Może poniższe rozwiązanie Ci się przyda. Poszczególne animacje muszą być nazwane jak battler i dodane kolejno cyferki, np. battler nazywa się Slime, więc jego kolejne klatki będą Slime1, Slime2, Slime3, itd.
Następnie w konfiguracji na górze skryptu trzeba by było podać, że przeciwnik o id 1 (czyli slime), będzie miał np. 6 klatek animacji.
Nie wiem, czy korzystasz ze skryptu na sideview battle, jeśli tak to skrypt trzeba będzie przerobić, aby odnosił się do klasy Game_Enemy.
class Sprite_Battler < Sprite_Base
ENEMY_FRAMES = { #id przeciwnika => liczba klatek animacji
1 => 6,
}
SZYBKOŚĆ_ANIMACJI = 32
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
@effect_type = nil
@effect_duration = 0
self.bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue) if @battler
@duration = 0
@frame = 0
end
#--------------------------------------------------------------------------
def update_bitmap
@duration += 1
if @duration > SZYBKOŚĆ_ANIMACJI
@duration = 0
@frame = 1 if @frame >= ENEMY_FRAMES[@battler.enemy_id]
@frame += 1
new_bitmap = Cache.battler(@battler.battler_name + @frame.to_s, @battler.battler_hue)
if bitmap != new_bitmap
self.bitmap = new_bitmap
init_visibility
end
end
end
end