Ergebnis 1 bis 10 von 10

Thema: [XP]Animationsgeschwindigkeit verlangsamen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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

  2. #2
    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.

  3. #3
    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
  •