질문과 답변

Extra Form

 

 

 두개의 이벤트를 만들고, 하나는 병렬처리, 애니메이션의 재생 + 대기 60프레임 으로 1초 간격으로 애니메이션이 반복 재생되게 하였습니다.

그리도 다른 이벤트에는 병렬처리로 대화 메시지창을 띄었는데 메시지 창이 떠있는 동안에는 애니메이션 재생이 중단되었습니다.


이를 해결할 방법이 없을까요? 

 

 

 

 

 

■ 질문전 필독!
  • 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
  • 하나의 게시물에는 하나의 질문만 합니다.
  • 제목은 질문의 핵심 내용으로 작성합니다.
  • 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
  • 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
  • 답변받은 게시물은 삭제하지 않습니다.
  • 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
    • 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!

※ 미준수시 사전경고 없이 게시물을 삭제합니다.

Comment '8'
  • profile
    러닝은빛 2018.02.15 17:45

    그냥 메인 씬에 스크립트를 추가하면 그런식으로 돌아갑니다.


    물론 맵 구분이나 실행 토글 같은 건 없지만, if문 몇 개 추가하면 될듯 하네요.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    # 작성자 : 러닝은빛
    # 작성일 : 2018.02.15
     
    module SPECIFIC_EVENT
      
      # -1은 플레이어, 0은 이 이벤트, 나머지는 이벤트 ID
      ID = -1
      
      # 실행 간격
      INTERVAL = 1
      
      # 애니메이션 ID
      ANIMATION_ID = 10
      
    end
     
    class Scene_Map < Scene_Base
      alias xxxx_start start
      def start
        xxxx_start
        @run_interval = Time.now.to_i
      end
      
      alias xxxx_update update
      def update
        xxxx_update
        run_specific_event
      end  
      
      def run_specific_event
        
        # 애니메이션 주기적으로 재생
        if Time.now.to_i - @run_interval >= SPECIFIC_EVENT::INTERVAL
          $game_map.interpreter.get_character(SPECIFIC_EVENT::ID).animation_id = SPECIFIC_EVENT::ANIMATION_ID
          @run_interval = Time.now.to_i
        end
      end
      
    end
    cs



    아니면 쓰레드 생성으로 하는 방법도 있습니다. 이런 느낌입니다. 한 번만 실행하면 계속 돌아가는 코드입니다. (이건 스크립트 커맨드 쪽)


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    # 시간 저장
    $game_variables[1= Time.now.to_i
     
    # 새로운 쓰레드 생성
    Thread.new {
     loop do
      if Time.now.to_i - $game_variables[1>= 1
        $game_map.interpreter.get_character(-1).animation_id = 10
        $game_variables[1= Time.now.to_i
      end
      # 맵이 아니면 쓰레드 탈출
      break unless SceneManager.scene_is?(Scene_Map)
     end
    }
    cs
  • ?
    위키니트러 2018.02.17 00:14
    답변 감사합니다! 그런데 이 스크립트를 어떻게 적용하는지 잘 모르겠습니다 ㅠㅠ
    첫번째 스크립트는 소재 밑에 그대로 넣었더니
    Script '' line 34: NoMethodError occurred.
    undefined method 'animation_id='for nil:NilClass
    라는 에러가 뜨고, 두번째 스크립트는 이벤트 명령 -> 상급 -> 스크립트 에
    복사해서 넣었더니 get_character(-1) 일 때는 플레이어를 기준으로 적용되나 그 이외 이벤트 아이디로는 적용되지 않고
    또 게임 내 렉이 심하게 발생하네요. (병렬처리로 1회 실행 후 셀프스위치로 페이지 변경했습니다)

    혹시 ['특정 스위치가 ON' 일 때 현재 화면 내 이벤트의 애니메이션 재생에 반복재생 상태를 적용]하는 식으로
    스크립트를 수정해주실 수 있나요? 아니면 위의 스크립트를 사용하는 방법을 조금만 더 자세히 설명해주시면
    감사하겠습니다. ㅠㅠ
  • profile
    러닝은빛 2018.02.17 21:00
    그대로 복사해서 쓰실 수 있는 게 아니라 이벤트 ID 값과 애니메이션 ID 값을 바꿔야 합니다. 상단에 주석으로 표시된 부분을 참고해서 해당 값이 어떤 메소드의 인자 값으로 활용되고 있는지 확인 바랍니다. 쓰레드 렉은 어떻게 생기는 것인지 제가 확실하게 이론적으로 말씀드릴 수가 없습니다만 제 컴퓨터에서 렉은 없었습니다.
  • ?
    위키니트러 2018.02.17 21:38
    표기값을 바꿔도 같은 오류메시지가 나오고 있습니다만 아무리 봐도 원인을 알 수 없어서 포기하기로 했습니다.
    답변 감사했습니다. (쓰레드 렉은 컴퓨터 사양 문제일 수도 있겠네요)
  • profile
    러닝은빛 2018.02.18 00:43


    맵 구분과 이벤트 존재 여부 체크 코드를 추가합니다.


    이걸 추가해도 아무런 동작이 없으면 ID 값을 잘못 적으신 겁니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    # 작성자 : 러닝은빛
    # 작성일 : 2018.02.15
     
    module SPECIFIC_EVENT
      
      # -1은 플레이어, 0은 이 이벤트, 나머지는 이벤트 ID
      ID = -1
      
      # 실행 간격
      INTERVAL = 1
      
      # 애니메이션 ID
      ANIMATION_ID = 10
      
      # 맵 ID
      MAP_ID = 2
      
    end
     
    class Scene_Map < Scene_Base
      alias xxxx_start start
      def start
        xxxx_start
        @run_interval = Time.now.to_i
      end
      
      alias xxxx_update update
      def update
        xxxx_update
        run_specific_event
      end  
      
      def run_specific_event
        return unless $game_map.map_id == SPECIFIC_EVENT::MAP_ID
        c = $game_map.interpreter.get_character(SPECIFIC_EVENT::ID)
        if c and Time.now.to_i - @run_interval >= SPECIFIC_EVENT::INTERVAL
          c.animation_id = SPECIFIC_EVENT::ANIMATION_ID
          @run_interval = Time.now.to_i
        end
      end
    end  
    cs
  • ?
    위키니트러 2018.02.18 00:54
    아 이제 깨끗하게 잘 작동됩니다! 감사합니다! ^^

    음 이건 추가적인 질문인데 (꼭 필요한 건 아니지만 있으면 더 좋을 듯 해서요)
    module SPECIFIC_EVENT 에서 정의된 ID와 INTERVAL , ANIMATION 의 값을
    스크립트 콜로 게임 진행 중 수정이 가능한가요?
    아니면 다른 맵에서 다른 이벤트에 다른 애니메이션을 반복재생 할려면
    동일 스크립트를 복사해서 ID값만 고치면 되나요?
  • profile
    러닝은빛 2018.02.18 01:17
    https://raw.githubusercontent.com/biud436/RGSS3/master/RUN_SPECIFIC_EVENT.rb

    $game_system.specific_event_data[:ANIMATION_ID] = 15

    스크립트를 조금 바꿨습니다.

    그리고 이건 여담이지만 이런 내용은 제작 의뢰 게시판이 더 어울리지 않을까 생각합니다.
  • ?
    위키니트러 2018.02.18 01:21
    계속 번거롭게 해서 죄송하고 정말 감사합니다!
    그리고 다음부터 질문글 쓸 때 주의하겠습니다. ㅠㅠ

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12392
RMVX 플레이어 이름바꾸기가 안되네요 4 마차군 2011.12.20 2148
RMVX 저가 퀘스트를 만들려고 하는데요. 변수인가? 머시긴가.. 2 난몰라 2011.12.19 1783
RMVX vx 동영상 재생 스크립트 오류 질문.. 2 하얀망토 2011.12.19 2033
RMVX RPG VX 배틀형식 3 운지천XP 2011.12.18 1786
RMXP XP데미지 계산식 1 unuseid 2011.12.18 1807
RMVX 파티원 추가하기 1 츄우 2011.12.18 1620
RMXP 게임 파일 올릴때 어떤 파일을 올려야 하나요??(빠른답변부탁드립니다.) 1 에배랄드 2011.12.17 2117
RMXP 숲을 자연스럽게 표현하고 싶습니다. 1 배고픈 2011.12.17 2581
RMXP 맵칩 수정하는 방법 좀 알려주세요. 1 배고픈 2011.12.17 1985
RMXP 맵칩을 밭앗는데 date폴더에 있는 파일은 뭔가요?/이런 맵칩 없을까요 4 unuseid 2011.12.16 1836
RMXP 문장의 표시 길이 늘이기 2 까멸 2011.12.16 2072
RMVXA rpgvx ace 정품 어디서팔고 가격도좀알려주세여. 5 김건우님 2011.12.16 2779
RMVX 타일셋 붙이기.. SM소야 2011.12.16 1706
RMXP 변수조작할떄... 한글출력하는 법 6 까멸 2011.12.16 1726
RMXP 스크립트 조건분기 이부분 하는방법좀;ㅜㅜ Amaster 2011.12.15 1867
RMXP 해석좀욧 2 Amaster 2011.12.15 2193
RMXP 3d로 간단하게 스크립트만들때 까멸 2011.12.15 1905
RMVX 아이미르님 3DSRPG스크립트 최신파일 도와주세요 급합니다 1 file 액셀 2011.12.14 2083
RMXP 스크립트 게임배틀3 섹션중에서....공식을 바꿀려면? Amaster 2011.12.14 1959
RMXP 케릭터만들고 xp에 어떻게 적용하나요? 1 오매갓 2011.12.14 1676
Board Pagination Prev 1 ... 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 ... 516 Next
/ 516