질문과 답변

Extra Form

스크립트.txt 사용하는 툴은 VX ACE 입니다.

이 스크립트는 실시간으로 변수창을 띄워주는 스크립트 입니다.

원본 스크립트 파일은 압축하여 업로드 해두었습니다.

텍스트 파일은 업로드가 불가능하더라고요...

 

 

 

질문내용.

 

이 스크립트를 필요에 따라 수정을 했는데,

이 과정에서 엄청난 렉을 유발하여 이를 해결할 방법이 없을까 여쭤봅니다...

 

스크립트의 일부를 보면 이런 부분이 있는데, 실시간의 화면상에 출력해주는 부분인 것 같습니다.

그리고 빨간 글자는 제가 추가한 부분입니다. 실시간으로 출력해야할 것이 늘어나 추가했습니다...

 

def update
    # // Method to update the variable hud if a value has been changed.
    super
    for i in XAIL::VAR_HUD::VAR_LIST
      refresh if($game_variables[i[0]] != @vars[i[0]])

      refresh if($game_variables[i[4]] != @vars[i[0]])
    end
end

 

테스트 해본결과 스크립트 스위치를 작동시키기 전까지는 아무런 문제가 발생하지 않습니다만,

스위치를 작동시키면, 엄청난 렉을 발생시키더라고요...

그래서 저 빨간 부분을 넣지 않으면 실시간으로 처리가 되지 않아 게임하는데 문제가 있고,

반대로 넣으면 엄청난 렉을 발생시킵니다...

 

저부분을 어떻게 바꾸면 렉을 잡을 수 있을지 여쭤봅니다... ㅠㅠ

 

 

 

다른방법?

 

아니면, 필요할때마다 필드 이벤트 - 스크립트 부분에서

 

refresh if($game_variables[i[4]] != @vars[i[0]])

 

위의 부분만 불러서 새로고침 해줄 수 있는 방법이 있을까요?

Comment '5'
  • profile
    습작 2016.02.20 15:50

    http://www.rpgmakervxace.net/topic/18702-gold-hud-with-variable/

     

    일단 사용하신 스크립트는 따로 언급을 하지 않으셔서 알 수 없었습니다만, 구글 검색을 해서 찾아보니 아마도 높은 확률로 위의 링크에서 소개하고 있는 스크립트인 것 같군요. 아니시라면 죄송합니다. 위의 게시물의 내용만으로는 어떤 스크립트를 사용하셨는지 정확히 알기 어려운 점 이해해주시면 좋겠네요.

     

    우선 빨간 부분은 잘 못 작성하셨어요. 현재 원본 스크립트는 등재된 모든 변수 리스트의 ID를 하나씩 대입해서 현재 출력중인 변수와 내용이 다를 경우 새로 고침을 해주고 있습니다만, 위의 빨간 코드가 삽입됨으로써 아무 일이 없더라도 그려야하는 변수 값 한개당 1번씩 매 프레임마다 새그리기를 하고 있습니다. 만약 5개의 변수에 대해서 HUD가 표시하고 있었다면 위의 빨간 코드의 추가로 인해 아무런 변동 사항도 없더라도 불필요하게 매 초당 300번씩 새로 그려주고 있는 셈입니다.

     

    그러하니 일단 빨간 부분은 삭제하세요.

     

    # VAR_LIST = [variable_id, vocab (nil), icon_index (nil), x, y]

    VAR_LIST = [] # Don't remove!

    VAR_LIST[0] = [1, nil, nil]

    VAR_LIST[1] = [2, nil, 358]

    VAR_LIST[2] = [3, nil, 359]

    VAR_LIST[3] = [4, nil, 366]

     

    그리고 정상적인 사용법이라면 모듈에 VAR_LIST[목록번호] = [변수ID, 용어(없으면 nil), 아이콘ID(없으면 nil), X좌표(안쓰면 알아서), Y좌표(안쓰면 알아서)] 의 형식으로 추가해주시면 별다른 스크립트 수정 없이도 알아서 새로 추가하신 변수를 화면내 출력하고 있습니다.

     

    여기서 중요한 것은 목록 번호에 해당하는 것이 변수 ID와는 무관하게 단순 순서이므로 마음대로 작성하지 마시고 꼭 0부터 시작해서 추가한 순서에 맞게 기재하셔야 한다는 것입니다.

     

    이 이외의 특별한 문제가 발생한다면 해당 스크립트의 원작자에게 직접 문의하여 해결법을 찾는 쪽이 보다 정확하리라 생각되네요.

  • profile
    몽롱하다 2016.02.20 16:45

    아... 원본 스크립트 첨부한다는걸 잊고 있었네요...

    첨부한 파일은 글내용과 달리 좀 더 수정한 버전입니다...

    아예, 저쪽 update 부분을

    def update
    super
    refresh;
    end

     

    웹검색해서 비슷한 스크립트 찾아서
    위에처럼 작성하니 문제 없이 작동되기는 하더라고요...
    이렇게 작성해도 괜찮은걸까요?

     

    왜 이렇게 작성해야 되는가를 모르니 답답할 뿐이네요... ㅠㅠ

     

  • profile
    습작 2016.02.20 17:18
    그렇게하시면 변수의 변동사항이 없더라도 매 프레임마다 한번씩(그러니깐 초당 60)번씩 다시 그리기를 반복하게 됩니다만, 게임 플레이시 느려지는 등의 별달리 저하가 느껴지지 않고 원활히 진행된다고 생각되시면 큰 문제는 없을 겁니다.
  • profile
    몽롱하다 2016.02.20 17:35
    아 그렇군요 ㅎㅎ 감사합니다.

    왜인지 모르겠는데 refresh;라고 적으면 렉이 없고, 이전에 작성했던
    refresh if($game_variables[i[0]] != @vars[i[0]])
    refresh if($game_variables[i[4]] != @vars[i[0]])
    이런 방법은 둘이 합쳐서 초당 120번씩 그린거겠죠...?

    그리고 정말 죄송하지만...
    스크립트 작동을 몇초간 대기 시키는 명령어가 어떻게 되는지 알수있을까요..?
    필드 이벤트에서 보면 '대기' 기능처럼 지정한 시간만큼 스크립트만 대기시킬 방법이 없을까요?
    wait(50)
    이런식으로 하니 안되더라고요....
  • profile
    습작 2016.02.20 21:16

    대기라하심 특정 시간 동안 해당 처리를 지연시킨다는 것이겠지요?
    어디의 무엇을 지연시키고자 하시는 것인지 저는 솔직히 잘 모르겠기에 딱맞는 대답을 드리긴 어려워 보입니다.

    방법은 여럿있겠지만, 몽롱님께서 사용하실 것을 생각하면 아래와 같은 방법이 어떠할까 싶네요.

    원래 처리해야하는 구문을 아래처럼 가둬 해당 변수값이 0보다 큰 경우 그동안 처리하지 못하게 하는 방식입니다.

    다만 역시나 스크립트를 직접 수정하는 까닭에 이 역시 잘 못 손대는 경우 반드시 처리해야할 구문이 누락되어 이로하여금 문제가 생길 위험도 있음을 말씀드립니다.

    if $game_variables[변수ID] > 0
      $game_variables[변수ID] -= 1
    else
      원래 처리 내용구문
    end


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12451
RMVXA 액알의 종류에 관하여 질문합니다 6 떡좀쪄봐 2014.02.12 696
RMVXA 윈도우 스킨 투명도 조절 2 에뎀이 2014.02.12 1643
RMVXA 이벤트 액알의 변수 조작과 조건 분기 4 file 떡좀쪄봐 2014.02.12 735
RMVXA 이벤트 액알 몬스터의 체력 11 file 떡좀쪄봐 2014.02.12 604
RMVXA XAS 스크립트 액알 몬스터의 투명화 2 채떡 2014.02.13 1193
RMVXA 레벨당 필요 경험치를 직접 지정할수는 없나요? 3 file Gooner슨상 2014.02.14 900
RMVXA 이벤트의 스크립트로 현재 씬에 접근하는 방법을 알고 싶어요. Pogling 2014.02.14 613
RMVXA 대사 등 말띄우기 관련 질문.. 2 에휴내팔자 2014.02.14 652
RMVXA xas스크립트 공격설정 하는방법 2 채떡 2014.02.14 2058
RMVXA victor (빅터엔진)스크립트를 이용한 게임이나 예제파일이 있나요 ? 은은색색 2014.02.14 627
RMVXA XAS에서 수정해서 스킬이나 아이템 다양하게 지정하고 사용하는방법없나요? 1 에휴내팔자 2014.02.14 658
RMVXA 대화를 다 끝내고도 대화가 처음부터 다시 돌아가요 1 규빵 2014.02.14 690
RMVXA vxa에서 스킬에 속성부여 할 때 2가지 이상 부여하기 6 시캐 2014.02.14 694
RMVXA 기본 Scene_Name 스크립트 명령어 있으신 분 계신가요 6 나도야만든다! 2014.02.15 648
RMVXA 저도 구해봅니다. 기본Window_message스크립트 구해봅니다. 4 제네시스978 2014.02.15 704
RMVXA 밀수있는 이벤트의 텍스쳐가 2개일때 11 file 채떡 2014.02.15 861
RMVXA npc 등장 이벤트 2 꾸와 2014.02.15 685
RMVXA 조건분기헬프 2 조각조각 2014.02.15 743
RMVXA xas액알 스크립트에서 주인공이 죽질않습니다 1 채떡 2014.02.15 718
RMVXA 병렬 처리 이벤트는 꼭 셀프 스위치로만 중단시킬 수 있나요? 3 file sudoxe 2014.02.16 884
Board Pagination Prev 1 ... 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 ... 149 Next
/ 149