질문과 답변

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 이벤트 간단작성의 내용을 바꾸고 싶습니다. 5 file 레노스 2015.07.16 205
RMVXA 스크립트로 갤러리 해금 어떻게 하나요? file Trsiword 2017.01.06 205
RMVXA 잃은 능력치에 비례해서 데미지 증가하는법 (데미지 공식) 4 테오드라 2016.04.04 206
RMVXA VXA에서는 건물레이어를 통과할수있게 하려면 어떡해야하나요? 2 나펫 2015.01.28 206
RMVXA rpgvxace 게임시작화면 질문입니다 1 file 견하 2016.12.18 206
RMVXA 안녕하세요? 이벤트만을 이용하여 캐릭터 밑에 게이지바를 표시하려고합니다. 2 file 오클트 2018.02.04 206
RMVXA 이름 설정할때 주인공 안보이게 하는법 3 레드썬 2018.10.31 206
RMVXA Ace에서 숫자키로도 이동시키는 방법은 무엇인가요? 고강또잉 2014.12.20 207
RMVXA 경험치 표시 대신에 경험치바를 집어넣고 싶습니다. file SKT스피릿 2015.02.03 207
RMVXA 아래쪽 방향키를 눌렀을 때 화면이 밀리는 현상 2 file 세톱 2015.04.09 207
RMVXA 스크립트 분석 2 phoenix 2015.04.10 207
RMVXA 조건분기 12 여왕폐하 2016.03.01 207
RMVXA 윈10 스팀판 rpg vx ace의 한글이 깨집니다 2 file leim 2018.01.01 207
RMVXA XAS를 이용하여 제작중에 "상점"관련 문의가 있어요. 1 황금뿅망치 2015.02.21 208
RMVXA 몬스터가 몬스터를 소환하는 방법. 기폭 2015.09.14 208
스크립트 작성 RMVXA vx ace 스크립트 공부를 하고싶은데 혹시 참고나 시작에 도움이 될만한 자료가 있을까요? 2 무명유실 2019.11.11 208
RMVXA 장비 구분을 없애는법 프라임헌터즈 2015.01.01 209
RMVXA 캐릭터 이동에 따라 이동하는 이미지 3 file Lisky 2015.09.21 209
RMVXA 이벤트가 바로 실행되게 하는 방법은 없을까요? 10 모라몬라 2016.07.25 209
RMVXA 총기사용시 재장전을 전투에 구현하고 싶어서 연구해보았습니다. 4 메카패치 2017.08.16 209
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