질문과 답변

Extra Form

절대 '애니메이션 표시 종료까지 대기' 에 체크하지 않았습니다...


애니메이션 표시를 하게 될 경우 이벤트 명령 '대기'를 사용한 것과 같은 현상이 짧게 발생합니다.


VX ACE 에서 기본적으로 애니메이션 표시시 딜레이가 발생하도록 만들어놓은 것 같은데요


스크립트 에디터를 뒤적거려보니 sprite_base 에서 62~64번째 줄


  def set_animation_rate

    @ani_rate = 4     # 기본적으로 고정 값

  end


이부분 때문인것 같습니다.


저 4 수치를 낮게/높게 설정하면 대기 현상의 시간도 줄어들거나/늘어납니다.


대기 현상을 완전히 없애버리기 위해 수치를 0으로 만들면 당연히 에러 발생합니다...


스크립트 실력이 허접이라 여기서 막히네요  어떻게 해야 할까요 ㅠㅠㅠ

Comment '3'
  • ?
    winspec 2012.11.18 17:35
    저도 초보라 자세히 모르지만 sprite_base를 살펴보니
    def update_animation
    return unless animation?
    @ani_duration -= 1
    if @ani_duration % @ani_rate == 0
    if @ani_duration > 0
    frame_index = @animation.frame_max
    frame_index -= (@ani_duration + @ani_rate - 1) / @ani_rate
    animation_set_sprites(@animation.frames[frame_index])
    @animation.timings.each do |timing|
    animation_process_timing(timing) if timing.frame == frame_index
    end
    else
    end_animation
    end
    end
    end
    이런 부분이 있네요 위에 공식을 자세히보시면
    frame_index -= (@ani_duration + @ani_rate - 1) / @ani_rate
    이런부분이 있습니다 쉽게말하자면
    @ani_rate = 1로 설정했을때 최고속도인것 같네요
    어디에 쓰실건진 모르지만 기본설정은 되도록안건드리는편이 ㅎㅎ;
    아니면 다른 고수분게...
  • ?
    winspec 2012.11.18 17:44

    def start_animation(animation, mirror = false)
    dispose_animation
    @animation = animation
    if @animation
    @ani_mirror = mirror
    set_animation_rate
    @ani_duration = @animation.frame_max * @ani_rate +1
    load_animation_bitmap
    make_animation_sprites
    set_animation_origin
    end
    end
    추가로 찾은부분인데요 공식에서 +1부분을 지워주시면 

    결과적으로 ani_rate가 0 이되고 ani_duration만 남기때문에  최고속도라고 할수있겟네요

  • ?
    펭블♡ 2013.02.21 19:07
    저도 그거때매 고민햇는데 이거쓰시면됩니다.
    안티 애니메이션 랙 스크립트입니다.

    #===============================================================================
    # ■ Game_Temp
    #===============================================================================
    class Game_Temp
    attr_accessor :animation_garbage

    #--------------------------------------------------------------------------
    # ● Initialize
    #--------------------------------------------------------------------------
    alias mog_anti_lag_animation_initialize initialize
    def initialize
    @animation_garbage = []
    mog_anti_lag_animation_initialize
    end

    end

    #===============================================================================
    # ■ Game System
    #===============================================================================
    class Game_System

    attr_accessor :anti_lag_animation

    #--------------------------------------------------------------------------
    # ● Initialize
    #--------------------------------------------------------------------------
    alias mog_antilag_animation_initialize initialize
    def initialize
    @anti_lag_animation = true
    mog_antilag_animation_initialize
    end

    end

    #===============================================================================
    # ■ SceneManager
    #===============================================================================
    class << SceneManager

    #--------------------------------------------------------------------------
    # ● Call
    #--------------------------------------------------------------------------
    alias mog_anti_lag_animation_call call
    def call(scene_class)
    mog_anti_lag_animation_call(scene_class)
    dispose_animation_garbage
    end

    #--------------------------------------------------------------------------
    # ● Goto
    #--------------------------------------------------------------------------
    alias mog_anti_lag_animation_goto goto
    def goto(scene_class)
    mog_anti_lag_animation_goto(scene_class)
    dispose_animation_garbage
    end

    #--------------------------------------------------------------------------
    # ● Dispose Animation Garbage
    #--------------------------------------------------------------------------
    def dispose_animation_garbage
    return if $game_temp.animation_garbage == nil
    for animation in $game_temp.animation_garbage
    animation.dispose
    end
    $game_temp.animation_garbage = nil
    end

    end

    #==============================================================================
    # ■ Game Map
    #==============================================================================
    class Game_Map

    #--------------------------------------------------------------------------
    # ● Setup
    #--------------------------------------------------------------------------
    alias mog_anti_lag_animation_setup setup
    def setup(map_id)
    SceneManager.dispose_animation_garbage
    mog_anti_lag_animation_setup(map_id)
    end

    end

    #==============================================================================
    # ■ Scene Base
    #==============================================================================
    class Scene_Base

    #--------------------------------------------------------------------------
    # ● Terminate
    #--------------------------------------------------------------------------
    alias mog_anti_lag_animation_terminate terminate
    def terminate
    mog_anti_lag_animation_terminate
    SceneManager.dispose_animation_garbage
    end

    end

    #==============================================================================
    # ■ Sprite Base
    #==============================================================================
    class Sprite_Base < Sprite

    #--------------------------------------------------------------------------
    # ● Dispose Animation
    #--------------------------------------------------------------------------
    alias mog_anti_lag_animation_dispose_animation dispose_animation
    def dispose_animation
    if $game_system.anti_lag_animation
    execute_animation_garbage
    return
    end
    mog_anti_lag_animation_dispose_animation
    end

    #--------------------------------------------------------------------------
    # ● Execute Animation Garbage
    #--------------------------------------------------------------------------
    def execute_animation_garbage
    $game_temp.animation_garbage = [] if $game_temp.animation_garbage == nil
    if @ani_bitmap1
    @@_reference_count[@ani_bitmap1] -= 1
    if @@_reference_count[@ani_bitmap1] == 0
    $game_temp.animation_garbage.push(@ani_bitmap1)
    end
    end
    if @ani_bitmap2
    @@_reference_count[@ani_bitmap2] -= 1
    if @@_reference_count[@ani_bitmap2] == 0
    $game_temp.animation_garbage.push(@ani_bitmap2)
    end
    end
    if @ani_sprites
    @ani_sprites.each {|sprite| sprite.dispose }
    @ani_sprites = nil
    @animation = nil
    end
    @ani_bitmap1 = nil
    @ani_bitmap2 = nil
    end

    end

    $rgss3_mog_anti_lag_animation = true

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12448
스크립트 추천 RMVXA 미니게임을 하는동안 위에 점수판을 띄워주고싶은데 방법이 없을까요? 홍홍이1 2024.02.07 15
이벤트 작성 RMVXA 스위치가 꺼질 경우 이미지를 끄게 하고 싶습니다. 1 Payroy 2024.01.05 16
에러 해결 RMVXA rgss301파일이 복사 붙여넣기가 안됩니다 다크크리에이터 2023.11.16 18
퀘스트 작성 RMVXA 연타 이벤트가 안 작동되어요... 1 file tokki 2023.12.24 18
기본툴 사용법 RMVXA 특정 맵에서 플레이어가 움직이지 않습니다. 유_ 2023.12.25 19
기타 RMVXA 대사 글꼴 바꾸는법좀 알려주세요 ㅠ 극세사이불 2024.02.26 20
스크립트 사용 RMVXA 전투 개시시 상태 부여 스크립트 질문 AAAA. 2023.11.14 21
이벤트 작성 RMVXA 대화 중 이벤트 멈춤 해결 방안 질문 1 이름뭐하지 2024.05.19 22
이벤트 작성 RMVXA 난수 여러개를 한번에 받을때 중간값만 제외하는법 1 file 유리컵 2023.09.21 26
이벤트 작성 RMVXA 플레이어 x,y 좌표 기억법? 2 유리컵 2023.10.07 26
스크립트 사용 RMVXA SAS IV HUD의 내용을 메뉴가 열려있는 동안 숨길 수 있게 하는 방법은 없을까요? file 아무개 2023.05.22 26
기본툴 사용법 RMVXA 메뉴 커스텀과 서브메뉴 커스텀 관련 질문 오구잡채 2024.06.11 26
맵배치 RMVXA 패럴렉스 맵핑 스크립트? VXA 질문입니다! rsy1189a 2024.03.20 27
스크립트 사용 RMVXA 전투중 적이 누구를 노리는지 미리 알수 있는 스크립트가 있을까요 겜만들고싶다앙 2021.04.10 27
스크립트 추천 RMVXA 변수를 화면에 띄우고 싶습니다. 1 홍홍이1 2024.02.09 29
이벤트 작성 RMVXA 이벤트 내용 일괄 선택은 불가능한가요? 2 file zx히어로zx 2022.10.30 31
이벤트 작성 RMVXA 이벤트 1 에이에스디에프 2021.08.11 31
기본툴 사용법 RMVXA 계산식 질문 2 겜만들고싶다앙 2023.08.07 31
이벤트 작성 RMVXA 추격자가 플레이어에게 닿아도 게임오버가 안됍니다. 1 다크크리에이터 2023.11.20 32
이벤트 작성 RMVXA 특정 아이템을 일정량 소지해야 사용할 수 있는 스킬을 구현하고 싶습니다. 2 AAAA. 2023.10.07 34
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 149 Next
/ 149