Ergebnis 1 bis 19 von 19

Thema: Attacker / Target Animation gleichzeitig anzeigen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Warum nicht bei der "Attacker-Animation" den Battler lossprinten lassen und halt die ganze Laufzeit der Attacker- und Targetanimation den Befehl "Hide Target" bei einer Battle Animation nutzen? Kannst du da, wo du festlegen kannst, bei welchem Frame welche SE's starten, das Ziel aufblinkt etc., als Befehl für Frame 1 der Attacker-Animation bestimmen. Wenn der Battler halt nicht lossprintet, reicht der Befehl auch am Ende der Battle Animation (da musst du dann aber die Frameanzahl der Attacker-Animation wieder abziehen).
    Da braucht man also kein extra Script dafür...

    MfG Sorata

  2. #2
    Zitat Zitat von sorata08 Beitrag anzeigen
    Warum nicht bei der "Attacker-Animation" den Battler lossprinten lassen und halt die ganze Laufzeit der Attacker- und Targetanimation den Befehl "Hide Target" bei einer Battle Animation nutzen? Kannst du da, wo du festlegen kannst, bei welchem Frame welche SE's starten, das Ziel aufblinkt etc., als Befehl für Frame 1 der Attacker-Animation bestimmen. Wenn der Battler halt nicht lossprintet, reicht der Befehl auch am Ende der Battle Animation (da musst du dann aber die Frameanzahl der Attacker-Animation wieder abziehen).
    Da braucht man also kein extra Script dafür...

    MfG Sorata
    Also, indem ich unter der "Attacker Animation" meiner Waffe eine BA einstelle, die dazu führt, dass
    der Battler z.B. 26 Frames lang versteckt ist, und derweil in der BA der "Target Animation" zu sehen
    ist, in etwa so:





    Meintest du das so ?

    Falls ja:

    Wie oben beschrieben führt der Maker die "Attacker Animation" scheinbar (zumindest bei mir) KOMPLETT aus, bevor die "Target Animation" überhaupt begonnen wird.
    D.H. in beschriebenen Fall würde der Battler dank der Attacker BA erst für 26 Frames verschwinden, dann wieder auftauchen (bevor de Target BA beginnt) und erst nachdem
    er wieder als Battler erschien, in der Target BA zu sehen sein, sodass er nun "zwei mal" da ist.

  3. #3
    Hngaaa, guten morgen, ich werd mir das gleich mal ansehn. Aber evtl hab ich einen entscheidenden Fehler gemacht: Welchen Maker nutzt du eigentlich?

  4. #4
    XP
    (Auch wenn es nun nicht funktioniert übrigens vielen Dank für den Aufwand den du dir machst ^^)

    EDIT: Für den Fall, dass es auch daran liegen könnte hier das Sideview Skript, welches ich direkt über Main nutze:
    Code:
    #==============================================================================
    #++?????????(?????????)ver. 1.14++
    #Script by ???
    #http://rpg.para.s3p.net/
    #------------------------------------------------------------------------------
    # ????????????????????????
    #==============================================================================
    
    module SDVA
    
    X_LINE = 500 # ????????????
    Y_LINE = 200 # ????????????
    X_SPACE = 15 # ?????????????
    Y_SPACE = 40 # ?????????????
    X_POSITION = 25 # ??[????????]????
    Y_POSITION = 0 # ??[????????]????
    
    ATTACK_MOVE = true # ???????????( true / false )
    SKILL_MOVE = true # ??????????????( true / false )
    ITEM_MOVE = false # ???????????????( true / false )
    MOVE_STEP = 1 # ????
    MOVE_PIXEL = 10 # ???????????
    
    PARTY_POS = 1 # ?????????( 0:? / 1:? / 2:? / 3:? )
    
    WINDOWPOS_CHANGE = true # ??????????????????????( true / false )
    
    end
    
    #==============================================================================
    # ? Game_Actor
    #==============================================================================
    
    class Game_Actor < Game_Battler
    #--------------------------------------------------------------------------
    # ? ????? X ?????
    #--------------------------------------------------------------------------
    def screen_x
    if self.index != nil
    # ?????
    pos = $data_classes[self.class_id].position
    x_pos = pos * SDVA::X_POSITION
    scr_x = self.index * SDVA::X_SPACE + SDVA::X_LINE + x_pos
    # ??????????
    if self.current_action.move_action == true
    # ????
    scr_x += @shift_x
    end
    return scr_x
    else
    return 0
    end
    end
    #--------------------------------------------------------------------------
    # ? ????? Y ?????
    #--------------------------------------------------------------------------
    def screen_y
    if self.index != nil
    # ?????
    pos = $data_classes[self.class_id].position
    y_pos = pos * SDVA::Y_POSITION
    scr_y = self.index * SDVA::Y_SPACE + SDVA::Y_LINE + y_pos
    # ??????????
    if self.current_action.move_action == true
    # ????
    scr_y += @shift_y
    end
    return scr_y
    else
    return 0
    end
    end
    #--------------------------------------------------------------------------
    # ? ????? Z ?????
    #--------------------------------------------------------------------------
    def screen_z
    if self.index != nil
    return self.index
    else
    return 0
    end
    end
    end
    
    #==============================================================================
    # ? Game_Battler (???? 1)
    #==============================================================================
    
    class Game_Battler
    #--------------------------------------------------------------------------
    # ? ??????????
    #--------------------------------------------------------------------------
    attr_reader :pattern # ??????
    attr_reader :trans_x # X???????
    attr_reader :moving # ??????
    #--------------------------------------------------------------------------
    # ? ?????????
    #--------------------------------------------------------------------------
    alias initialize_sdva initialize
    def initialize
    initialize_sdva
    move_reset
    end
    #--------------------------------------------------------------------------
    # ? ??????
    #--------------------------------------------------------------------------
    def move
    @moving = 1
    if @step < SDVA::MOVE_STEP
    # ??????????
    @pattern = (@pattern + 1) % 4
    @step += 1
    move_step
    else
    # ????
    @pattern = 1
    @moving = 2
    end
    end
    #--------------------------------------------------------------------------
    # ? ????
    #--------------------------------------------------------------------------
    def move_step
    # ???????????????????
    case SDVA::PARTY_POS
    when 0
    @shift_y = @step * SDVA::MOVE_PIXEL
    when 1
    @shift_x = -(@step * SDVA::MOVE_PIXEL)
    when 2
    @shift_x = @step * SDVA::MOVE_PIXEL
    when 3
    @shift_y = -(@step * SDVA::MOVE_PIXEL)
    end
    end
    #--------------------------------------------------------------------------
    # ? ???????
    #--------------------------------------------------------------------------
    def move_reset
    @moving = 0
    @pattern = 0
    @step = 0
    @shift_x = 0
    @shift_y = 0
    end
    end
    
    #==============================================================================
    # ? Game_BattleAction
    #==============================================================================
    
    class Game_BattleAction
    #--------------------------------------------------------------------------
    # ? ??????????
    #--------------------------------------------------------------------------
    attr_accessor :move_action # ??????????
    #--------------------------------------------------------------------------
    # ? ???
    #--------------------------------------------------------------------------
    alias clear_sdva clear
    def clear
    clear_sdva
    @move_action = false
    end
    end
    
    #==============================================================================
    # ? Sprite_Battler
    #==============================================================================
    
    class Sprite_Battler < RPG::Sprite
    #--------------------------------------------------------------------------
    # ? ??????
    #--------------------------------------------------------------------------
    alias update_sdva update
    def update
    # ????????????????
    if @battler.is_a?(Game_Actor)
    # ????????????????????
    # ??????
    if @battler.battler_name != @battler_name or
    @battler.battler_hue != @battler_hue or
    @battler.current_action.basic == 0 or
    @battler.current_action.kind != 3
    # ????????????
    @character_name = @battler.character_name
    @character_hue = @battler.character_hue
    # ???????????
    self.bitmap = RPG::Cache.character(@character_name, @character_hue)
    cw = self.bitmap.width / 4
    ch = self.bitmap.height / 4
    @width = cw
    @height = ch
    if @battler.current_action.move_action == true
    # ????
    @battler.move
    else
    @battler.move_reset
    end
    # ?????????
    sx = @battler.pattern * cw
    sy = SDVA::PARTY_POS * ch
    self.src_rect.set(sx, sy, cw, ch)
    self.ox = @width / 2
    self.oy = @height
    # ??????????? 0 ???
    if @battler.hidden
    self.opacity = 0
    end
    end
    end
    update_sdva
    end
    end
    
    #==============================================================================
    # ? Scene_Battle
    #==============================================================================
    
    class Scene_Battle
    #--------------------------------------------------------------------------
    # ? ????????????????????
    #--------------------------------------------------------------------------
    alias phase3_setup_command_window_sdva phase3_setup_command_window
    def phase3_setup_command_window
    phase3_setup_command_window_sdva
    if SDVA::WINDOWPOS_CHANGE
    # ???????????????????
    case SDVA::PARTY_POS
    when 0
    x_pos = @active_battler.screen_x - (@actor_command_window.width/2)
    y_pos = @active_battler.screen_y
    when 1
    x_pos = @active_battler.screen_x - @actor_command_window.width - 16
    y_pos = @active_battler.screen_y - @actor_command_window.height
    when 2
    x_pos = @active_battler.screen_x + 16
    y_pos = @active_battler.screen_y - @actor_command_window.height
    when 3
    x_pos = @active_battler.screen_x - (@actor_command_window.width/2)
    y_pos = @active_battler.screen_y - @actor_command_window.height - 48
    end
    @actor_command_window.x = x_pos >= 0 ? x_pos : 0
    @actor_command_window.x = x_pos+@actor_command_window.width <= 640 ? x_pos : 640-@actor_command_window.width
    @actor_command_window.y = y_pos >= 0 ? y_pos : 0
    @actor_command_window.y = y_pos+@actor_command_window.height <= 480 ? y_pos : 480-@actor_command_window.height
    # ??????????????????
    @actor_command_window.z = 9999
    end
    end
    #--------------------------------------------------------------------------
    # ? ?????? (??????? ???? 3 : ??????????)
    #--------------------------------------------------------------------------
    alias update_phase4_step3_sdva update_phase4_step3
    def update_phase4_step3
    if SDVA::ATTACK_MOVE
    if @active_battler.current_action.basic == 0
    @active_battler.current_action.move_action = true
    end
    end
    if SDVA::SKILL_MOVE
    if @active_battler.current_action.kind == 1
    @active_battler.current_action.move_action = true
    end
    end
    if SDVA::ITEM_MOVE
    if @active_battler.current_action.kind == 2
    @active_battler.current_action.move_action = true
    end
    end
    # ??????????????????????
    if @active_battler.is_a?(Game_Actor) and
    @active_battler.current_action.move_action
    # ?????
    if @active_battler.moving == 2
    update_phase4_step3_sdva
    end
    elsif @active_battler.moving == 0
    update_phase4_step3_sdva
    end
    end
    #--------------------------------------------------------------------------
    # ? ?????? (??????? ???? 6 : ??????)
    #--------------------------------------------------------------------------
    alias update_phase4_step6_sdva update_phase4_step6
    def update_phase4_step6
    @active_battler.current_action.move_action = false
    @active_battler.move_reset
    update_phase4_step6_sdva
    end
    end
    
    #==============================================================================
    # ? Spriteset_Battle
    #==============================================================================
    
    class Spriteset_Battle
    #--------------------------------------------------------------------------
    # ? ?????????
    #--------------------------------------------------------------------------
    alias initialize_sdva initialize
    def initialize
    initialize_sdva
    @viewport2.z = 1
    end
    end
    
    #==============================================================================
    # ? Arrow_Actor
    #==============================================================================
    
    class Arrow_Actor < Arrow_Base
    #--------------------------------------------------------------------------
    # ? ??????
    #--------------------------------------------------------------------------
    alias update_sdva update
    def update
    update_sdva
    # ?????
    if Input.repeat?(Input::DOWN)
    $game_system.se_play($data_system.cursor_se)
    @index += 1
    @index %= $game_party.actors.size
    end
    # ?????
    if Input.repeat?(Input::UP)
    $game_system.se_play($data_system.cursor_se)
    @index += $game_party.actors.size - 1
    @index %= $game_party.actors.size
    end
    end
    end
    
    #==============================================================================
    # ? Arrow_Enemy
    #==============================================================================
    
    class Arrow_Enemy < Arrow_Base
    #--------------------------------------------------------------------------
    # ? ??????
    #--------------------------------------------------------------------------
    alias update_sdva update
    def update
    update_sdva
    # ?????
    if Input.repeat?(Input::DOWN)
    $game_system.se_play($data_system.cursor_se)
    $game_troop.enemies.size.times do
    @index += 1
    @index %= $game_troop.enemies.size
    break if self.enemy.exist?
    end
    end
    # ?????
    if Input.repeat?(Input::UP)
    $game_system.se_play($data_system.cursor_se)
    $game_troop.enemies.size.times do
    @index += $game_troop.enemies.size - 1
    @index %= $game_troop.enemies.size
    break if self.enemy.exist?
    end
    end
    end
    end
    @sorata08: Zur genaueren Darstellung des Problemes wie oben beschrieben findest du hier ein Video,
    in welchem ich die oben ge-posteten Konfigurationen mit 200 Frames durchlaufen lasse.
    Ich denke da wird das Problem schnell klar.

    Geändert von Jerome Denis Andre (16.11.2011 um 12:37 Uhr)

  5. #5
    Okay, was nutzt du noch für Scripte oder hast du am Standard-Scriptsatz verändert? Ich sehe nicht wirklich Probleme mit dem Sideview Script im Script selbst - ebenso wenig, wenn ich das einfach über Main einfüge wie es bei dir ist und laufen lasse - läuft alles wunderbar. Also kollidiert das Sideview Script nicht mit meinem. Btw, denk dran, nichts UNTER der Main einzufügen. Die Main ist immer die unterste.

    Okay Okay, ich sehe grad, hide target in der Animation tuts jetzt nicht mehr, aber das fix ich schon noch O.o
    Edit: Nvm, das liegt an keinem der Scripte, das sieht bei mit immer so aus, selbst wenn ich alle Scripte rausnehme^^.

    Geändert von Todu (16.11.2011 um 13:36 Uhr)

  6. #6
    Zitat Zitat von Jerome Denis Andre Beitrag anzeigen
    Meintest du das so ?
    Fast. Du musst den Helden natürlich auch noch solange verstecken, wie die Target-Animation dauert.
    In deinem Fall ist die ja 10 Frames lang, also musst du den Helden nicht 26, sondern 36 Frames verstecken.

    MfG Sorata

  7. #7
    @Sorata08: Nein, dann funktioniert es immer noch nicht, denn wie ich bereits sagt, scheint der Maker die Target Ani
    erst dann anzufangen, wenn die Attacker Ani ABGESCHLOSSEN ist. Siehe auch das Video, wo ich die Attacker Ani
    auf 200 frames hochstellte, was nur bewirkte, dass der Held zwar 200 frames lang weg war, aber erst als er dann nach
    200 Frames wieder da war, die Target Ani eingeleitet wurde.

  8. #8
    Dann ist dein Kampfsystem in der Hinsicht doof gestaltet.
    Bei mir hat es stets funktioniert. oÔ
    Du könntest aber noch die Variante probieren, den Befehl erst beim letzten Frame aufzurufen und dann halt die Länge für die Target Animation anzugeben.
    Also "Frame 26: Hide Target @10"

    MfG Sorata

  9. #9
    *poke* JDA!
    Antworte noch auf mir

Berechtigungen

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