질문과 답변

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 12472
기타 땅 갈라지게 하는법 1 쯔꾸르만들껀데 2015.12.11 157
RMMV 장비 착용 제한 스크립트를 찾고 있습니다. 2 투척민 2015.11.25 157
RMMV 혹시 공홈에서 RPG만들기 구매하시고 환불 해보신 경험 있으신분 계신가요? 우주철거 2015.10.23 157
RMVX 스크립트가 충돌하는듯 합니다 3 file 유우니사막 2015.08.07 157
RMXP xp 액알 만드는 중인데 몹 경험치가 계속 들어와요... 2 file 새우쾅 2015.06.05 157
RMVXA 방향에 대한 변수를 나타내는 스크립트 4 하얀너울 2015.04.09 157
RMVXA 대사 스킵 스크립트 어떻게 적용하나요? 1 Mark.0 2018.09.10 157
RMMV 특정 장비를 사용 할 경우 스킬의 데미지 계산식이 바뀌도록 하는 방법 8 RoyalNavy 2018.07.03 157
스크립트 사용 RMVXA 이벤트 작성 중 스크립트 사용에 칸이 모자랍니다. 2 file 592 2020.10.21 157
기타 RMVXA 타일을 O에서 X로 바꾸었더니 맵에서 캐릭터가 움직이질 못합니다 5 seoha3360 2022.05.14 156
플러그인 사용 RMMZ 파판의 용기사처럼 점프기능을 넣고 싶은데 2 레기우스州 2021.01.03 156
이벤트 작성 기타 Rpg maker mz 꽃돼지 2020.11.14 156
기타 RMMV 메뉴 조작 file .-. 2020.10.19 156
플러그인 추천 RMMV 게임 속에서 그림 그리는 플러그인 있나요? file 호구랑 2020.06.28 156
이벤트 작성 RMVXA 의자를 특정 장소로 이동시킨 후 올라타는 이벤트를 만들고 싶습니다. 5 MAYO 2019.08.17 156
RMVX VX에서 걸음수세기! 2 간뿅 2018.07.19 156
RM2k3 [RPG 2003] 지정위치에 닿으면 인물이 주인공쪽으로 오는 이벤트 2 츠요링 2018.01.02 156
RMVXA 이거 일본어 지우는 방법 없을까요? 3 file 난몰라 2017.10.07 156
RMXP npc에게 말을 걸었을 때 장소이동 못하게 하는거.. 2 발릴랄로 2017.09.04 156
RMVXA 공격할때 배틀러 숨기는법 4 기폭 2016.09.09 156
Board Pagination Prev 1 ... 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 ... 517 Next
/ 517