질문과 답변

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 13184
RMVX HP가 적으면 자동으로 상태변화 1 J_chisee45 2016.02.24 145
기타 이미지적용하는 방법 1 듀잉 2016.02.24 121
RMVX 스크립트 오류.. 2 file vmfl 2016.02.24 139
RMMV 변수의 최대값 고정 방법? 2 가시밭 2016.02.23 311
RMVXA RPG 메이커에컴퓨터나 티비 같은 거 넣기... 1 요로즈야긴상 2016.02.22 314
RMVX 캐릭터가 벽을 자꾸 넘어요.. 1 file vmfl 2016.02.22 190
RMVXA 마법면역 상태 만드는법 기폭 2016.02.22 133
RMVXA 인터넷 사이트에서 만든 캐릭터를 그래픽칸에 적용 시키는 방법 2 요로즈야긴상 2016.02.22 263
기타 진짜 궁금한게 하나 있습니다. 4 수녀갓 2016.02.22 214
RMVX 캐릭터가 이동을 안합니다. 2 vmfl 2016.02.21 163
RMVXA 능력치를 음수로 하고 싶습니다. 1 스케치 2016.02.21 167
RMVXA 전투할때 액터 상태창 위치 바꾸는법 file 기폭 2016.02.21 138
RMMV 어느날 갑자기 리소스들이 증발해버렸습니다. file 게임잘날아가는닝겐 2016.02.21 112
RMVXA 스크립트를 수정했는데, refresh 처리 할때 프레임 낮아집니다... 도와주세요! 5 file 몽롱하다 2016.02.20 128
RMMV 플레이어가 죽으면 대사가 바뀌는것 5 물달이 2016.02.20 243
사이트 이용 한글판 게임에 있는 외국 게임들은 추천작으로 신청이 불가능 한가요? 5 ifeve 2016.02.19 242
RMXP 검은 공간 못지나가게 하기 1 ㅎㅇ질럿 2016.02.19 159
RMVXA (생초보) 제한된 맵 타일 리스트의 수를 늘릴 수 있나요?(스크립트라던가...) 1 file angelan98 2016.02.19 410
RMMV [RPG MV] 기본 전투를 엔카운터 형식의 SRPG로 외주 비용 질문. 2 안경포스 2016.02.19 466
RMVXA 맵타일은 어떻게 만드는거죠? 1 angelan98 2016.02.19 166
Board Pagination Prev 1 ... 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 ... 517 Next
/ 517