질문과 답변

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 스테이터스의 경험치 표시를 삭제할 순 없을까요? 2 file 동생 2014.06.17 766
RMVXA 타일 블록 설정이 먹통입니다. 어떻게 해야 하나요? 2 file repola 2014.04.05 766
RMVXA NTR엔딩 제작법(세이브파일 유무 확인) 4 화이트민트 2016.03.17 766
RMVXA 상점만드는방법.,.ㅠ 2 빵씨 2013.03.31 765
RMVXA 이런식의 효과는 어떻게 주는지 궁금합니다 1 file IZEN 2013.03.27 764
RMVXA 정수형으로 만드는함수가 뭔가요? 2 wkdrn33 2013.11.21 763
RMVXA 턴제 전투시스템에 단축키를 넣을수 있을까요? 2 sqjsq 2013.05.19 763
RMVXA [초보자 질문] 문장 표시에 대해서여;; 5 file 허곰탱 2014.05.06 763
RMVXA 스크립트기능으로 홈페이지창 띄우는방법 aaa222 2013.08.31 763
RMVXA 상태이상일 때 다른상태이상 걸리기 6 Antimatter 2013.04.13 762
RMVXA 저기 만들다가.... 2 Noren 2013.08.31 762
RMVXA [해결됨] 이동하는 이벤트를 카메라의 중점으로 하고 싶습니다. 4 위키니트러 2014.10.30 762
RMVXA 샘플맵 불러오기가 안됩니다.. 1 고향알밤 2013.04.01 761
RMVXA Animated Battle 스크립트 적용방법 현사이 2012.10.20 761
RMVXA 액터 이름과 칭호 바꾸기 <문제 해결되었습니다.> 10 file Ain 2013.11.16 761
RMVXA 메뉴의 '아이템'을 바꿀수 있는 방법이 있나요 4 전파개구리 2014.01.10 761
RMVXA (해결)플레이어에 방해받지 않고 npc를 이동시키는 방법? 7 sudoxe 2014.01.25 761
RMVXA vx ace 게임이 실행이 안됩니다..ㅠ file hoguhogu 2014.03.26 760
RMVXA 폰트 변경이 안됩니다. 2 참깨빵위에순쇠고기패티두장특별한소스양상추치즈피클양파까지 2014.10.09 760
RMVXA 캐릭터 주위에 ... 3 file 조크맨 2013.01.08 759
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