질문과 답변

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 12387
기타 RMMV 이미지캐시가 쌓여 게임이 꺼집니다 1 hurakan 2023.07.12 40
스크립트 사용 RMVXA 그림 각도 회전 스크립트 질문 file slieun 2022.10.03 50
이벤트 작성 RMVXA 상점에서 돈이 있어도 아이템을 딱 하나만 살 수 있게 바꿀 수 있나요? 4 유리컵 2022.09.22 243
턴제 전투 RMVXA 한글패치후 턴제전투시 번역되지 않은 を倒した!위치가 궁금합니다. 2 file 유리컵 2022.02.26 269
스크립트 사용 RMVXA vx ace) 잘 작동하던 스크립트가 갑자기 작동하지 않습니다. file 게임이만들고파 2021.03.20 63
스크립트 작성 RMVXA vx ace) 변수에 스크립트 대입하는 방법 2 게임이만들고파 2021.03.13 166
스크립트 사용 RMVXA vx ace) 스크립트가 작동하질 않습니다... 2 file 게임이만들고파 2021.01.05 188
스크립트 작성 RMMV (스크립트 요청)4개의 변수중에서 음수를 제외한 가장 작은 수를 찾는 법을 찾고있습니다. 2 나 어토믹 2019.03.27 134
RMVXA 고수분들 도와주세요! 자꾸 스크립트에 NoMethodError undefined method ~~for nil:NilClass가 뜨네요 ㅠ 미스터챈 2017.02.21 168
RMVXA 스크립트 처리하는데 다른 클래스에서 대기 시간은 어떻게 넣나요?? 미스터챈 2017.02.19 67
RMVXA 스크립트 에디터에서 게임오버시... 3 BeNew 2016.09.08 145
RMVXA 편집창이 커졌어요 2 file bs0429 2016.03.01 213
RMVXA 스크립트를 수정했는데, refresh 처리 할때 프레임 낮아집니다... 도와주세요! 5 file 몽롱하다 2016.02.20 127
RMVXA 스크립트 에디터의 내용을 필드 이벤트에 있는 스크립트로 바꾸는 방법? 몽롱하다 2016.02.14 146
RMVXA 특정 아이템끼리 모아놓기 2 길라잡이 2015.06.21 142
RMVX RGSS2에서의 아이템의 이름제작 및 아이템의 갯수 확인 4 FNS키리토 2015.04.20 332
RMVX 빛스크립트좀 편집해주세요 2 붉은 원숭이 2014.08.03 576
계속 검색
Board Pagination Prev 1 Next
/ 1