Ergebnis 1 bis 10 von 10

Thema: [XP]Animationsgeschwindigkeit verlangsamen

  1. #1

    [XP]Animationsgeschwindigkeit verlangsamen

    Hi

    Ich wollte mal fragen, ob man beim XP, die Geschwindigkeit bei dem die Frames abgespielt werden während einer Animation, verändert werden kann, sprich in meinem Fall, verlangsamt.

    Mir geht es etwas zu schnell bei gewissen Animationen.

    Geht das?

  2. #2
    Öhm klar, bearbeite einfach die animationen. o.o

  3. #3
    O_O

    Ja wie jetzt? Ich kann die Geschwindigkeit bei dem die Frames abgespielt werden einstellen????

  4. #4
    Verlangsamen ist doch gar kein Problem. Einfach jeden Frame doppelt anzeigen.

  5. #5
    Hab ich mal auprobiert.
    Geht zwar, jedoch sieht die Animation leicht "stockend" aus. Also nicht wirklich eine optimale Lösung.

  6. #6
    Zitat Zitat von The_Burrito Beitrag anzeigen
    Verlangsamen ist doch gar kein Problem. Einfach jeden Frame doppelt anzeigen.
    Das meinte ich, allerdings hast du dann folgendes Problem:
    Zitat Zitat von salamimild Beitrag anzeigen
    Hab ich mal auprobiert.
    Geht zwar, jedoch sieht die Animation leicht "stockend" aus. Also nicht wirklich eine optimale Lösung.
    Anstatt nur zu verdoppeln musst du jeden zweiten frame dem nächsten etwas annähern.
    Bah, wie erklärt man das nun unmissverständlich...

    Also angenommen du hast ein Animationsset von 10 Frames.
    Verdopplung = 20 Frames.
    das heißt statt Frame 1, 2, 3, 4 etc hast du jetzt Frame 1a, 1b, 2a, 2b, 3a etc....
    Nun musst du halt die ganzen "b"-Animationen so verschieben bzw verändern, dass sie einen weiteren zwischenschritt von der vorherigen zur nachofgenden a-Animation darstellen.

    Angenommen Frame 1 ist auf position 0, frame 2 auf position 10, frame 3 auf position 20.
    bei einer verdopplung wären frame 1a/1b auf 0, 2a/2b auf 10, 3a/3b auf 20...
    Für einen flüssigen Ablauf must du nun 1b ca auf position 5 schieben, 2b auf 15, 3b auf 25....(es sei denn 3 ist schon das ende der animation, dann kannste 3b auch einfach löschen...bzw der letzte animationsschritt muss gar nicht erst nicht verdoppelt werden) und so weiter.

  7. #7
    Ok, das mit der Bewegung ist soweit schon klar.
    Aber: Bei einigen Animationen besteht die Bewegung in den einzelnen Bildern.
    Zum Beispiel ein Wirbel. Ein ganz simple animation von einem Wirbel ist, wenn man die einzelnen Bilder nacheinander am gleichen Ort einfügt. (vielleicht ca. 10 Frames) So entsteht eine Rotierung, welche aber vom Bild, resp. den Bildern selber entsteht, welche nacheinander angezeigt werden.
    Deshalb meine Frage, ob man die Geschwindigkeit von den einzelnen Frames beeinflussen kann.
    Der XP lässt sie nämlich schneller als der VX durchrattern, was teilweise ziemlich hektisch aussieht.

  8. #8
    oi,

    du willst also die Framerate/Sekunde verringern?

    Ich glaube nicht, dass das irgendwo einstellbar ist, habe sowas in der Art zumindest noch nie bemerkt, einstellen zu können und ich kenne den XP ziemlich gut. Hmm, wenn, dann wird dir warscheinlich auch kein Script helfen können, vielleicht gibt es eine Möglichkeit in die Systemeinstellungen vom Maker zu kommen, aber das müsste sich dann jeder genau so einstellen, sonst ist es bei uns wieder schnell.

    Naja, aber hat der VX wirklich eine höhere Framerate? Also mehr als die in etwa 20 Frames/Sekunde vom XP? Kann ich mir nicht vostellen...

    Ansonsten wie schon erwähnt wurde, mach 2 Frames pro Animationsbild.

    Was du noch machen könntest, (was mit ein wenig Arbeit verbunden ist), die Animationen so zu bearbeiten, dass sie mehr Bilder haben, z.B. druch übereinanderlegen der 1. und 2. Animation mit ein wenig Verschommenheit so als Fade effekt, also aus 2 mache 3.

    Naja, vielleicht hilfts.

    mfg
    Fox

  9. #9
    Zitat Zitat von FoxClaw Beitrag anzeigen
    oi,

    du willst also die Framerate/Sekunde verringern?

    Ich glaube nicht, dass das irgendwo einstellbar ist
    Doch...und deswegen:
    Zitat Zitat von FoxClaw Beitrag anzeigen
    dann wird dir warscheinlich auch kein Script helfen können
    Doch
    Zitat Zitat von FoxClaw Beitrag anzeigen
    Also mehr als die in etwa 20 Frames/Sekunde vom XP? Kann ich mir nicht vostellen...
    Irgendwo in der RGSS des XP ist so weit ich weiß in einer Konstante die 40 als standardmäßige fps festgelegt, ich bin allerdings nur zufällig mal drüber gestolpert und weiß deshalb gerade nicht WO genau das ist.
    Insofern wäre es sicher möglich das ganze per Scripting zu manipulieren, das würde dann allerdings für die Gesamtheit der Performance gelten und nicht nur für die Animationen.
    imho....bin da ja nun auch nicht so extrem bewandert.

  10. #10
    Der Maker hat eine Framerate von 40 FPS. Im Maker wird aber oft mit Doppelframes gearbeitet (weiß der Teufel warum die einen so verwirren wollen). So auch bei den Animationen: Jeder Animationsframe wird jeden zweiten Frame gewechselt. Eine Animation dauert also 2 Frames pro Animationsframe. Die Framerate zu ändern ist keine Lösung, weil sich das global auswirken würde. Du kannst aber natürlich die Framerate der Animation abändern. Einfach unteres Script einfügen und an den Namen deiner Animation ein [3] dranhängen - dann braucht die Animation 3 Frames statt 2 Frames pro Animationsframe. Also beispielsweise: Feuerball[3].

    Code:
    class RPG::Animation
    
      def time_per_frame
        if animation_name =~ /\[(\d+)\]/ then
          Integer($1)
        else
          2
        end
      end
    
    end
    
    class RPG::Sprite
      def update
        super
        if @_whiten_duration > 0
          @_whiten_duration -= 1
          self.color.alpha = 128 - (16 - @_whiten_duration) * 10
        end
        if @_appear_duration > 0
          @_appear_duration -= 1
          self.opacity = (16 - @_appear_duration) * 16
        end
        if @_escape_duration > 0
          @_escape_duration -= 1
          self.opacity = 256 - (32 - @_escape_duration) * 10
        end
        if @_collapse_duration > 0
          @_collapse_duration -= 1
          self.opacity = 256 - (48 - @_collapse_duration) * 6
        end
        if @_damage_duration > 0
          @_damage_duration -= 1
          case @_damage_duration
          when 38..39
            @_damage_sprite.y -= 4
          when 36..37
            @_damage_sprite.y -= 2
          when 34..35
            @_damage_sprite.y += 2
          when 28..33
            @_damage_sprite.y += 4
          end
          @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
          if @_damage_duration == 0
            dispose_damage
          end
        end
        if @_animation != nil and (Graphics.frame_count % @_animation.time_per_frame == 0)
          @_animation_duration -= 1
          update_animation
        end
        if @_loop_animation != nil and (Graphics.frame_count % @_loop_animation.time_per_frame == 0)
          update_loop_animation
          @_loop_animation_index += 1
          @_loop_animation_index %= @_loop_animation.frame_max
        end
        if @_blink
          @_blink_count = (@_blink_count + 1) % 32
          if @_blink_count < 16
            alpha = (16 - @_blink_count) * 6
          else
            alpha = (@_blink_count - 16) * 6
          end
          self.color.set(255, 255, 255, alpha)
        end
        @@_animations.clear
      end
    end

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •