질문과 답변

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 12451
RMVXA [미해결] 메세지를 주고받는 중이라면 자동으로 스위치가 OFF되게 설정할 수 있을까요? 2 반내림 2017.03.01 122
RMVXA [미해결] 배틀 시작시 그림에 대해 질문있습니다! 반내림 2017.03.01 91
RMVXA [변수조작] 변수 여러개에 변수를 대입하는 것은 가능하지만, 그 반대의 경우. 4 불새우 2015.11.06 458
RMVXA [수정해서 다시 올립니다.] 게임을 하다가 자꾸 팅기네요. 1 file 오버매냐 2013.09.29 1189
RMVXA [스샷] rpg vx ace 문장을 쓰면 ... 으로 나옵니다. 2 file 바크지누크 2014.03.31 1041
RMVXA [스크립트] draw_text를 한문장처럼 묶어서 표시되게 하고 싶습니다.... 몽롱하다 2016.08.13 100
RMVXA [스크립트] 셀프 변수나 다른 이벤트의 셀프 스위치를 체크할 수 있을까요? 2 file 멜랑콜리 2015.04.20 293
RMVXA [신입의 질문]이거 어떻게 해결하나요??(질문개수 2개) 2 file 만다라케 2015.04.16 595
RMVXA [완료] ace 턴알피지에서 몬스터 hp 보여주는 스크립트 찾습니다 8 보노노 2012.09.02 1401
RMVXA [이벤트 커맨드] 내의 [스크립트] 사용시 문제. 9 file 마에르드 2012.02.14 1414
RMVXA [이벤트/스크립트] 변수에 입력된 '값' 만큼 '대기'하는 방법? 9 Tattoo 2012.10.01 1739
RMVXA [자체해결]스크립트를 통한 추가슬롯(장비)의 고정에 대하여 질문드립니다. spice 2014.09.17 696
RMVXA [질문추가]그림표시에 대해 다시 질문드립니다. 3 file 쑤수 2017.01.30 186
RMVXA [초보자 질문] 문장 표시에 대해서여;; 5 file 허곰탱 2014.05.06 763
RMVXA [턴제전투] 특정 액터가 죽으면 전투에서 패배하는법 6 기폭 2017.02.15 168
RMVXA [해결 완료] CP's Battle Engine v1.2b 관련 1 file 4차원소녀 2017.01.06 106
RMVXA [해결] party HUD 최대 표시 갯수를 설정하고싶습니다 3 file winspec 2012.11.16 1170
RMVXA [해결] SRPG Converter _ Ace 적 몬스터 이동거리 설정법에 대해 궁금합니다. 1 file mintory 2015.07.31 199
RMVXA [해결] 대화 메시지 창 실행 중 애니메이션의 재생 8 위키니트러 2018.02.14 204
RMVXA [해결] 캐릭터 스테이터스의 HP MP LV 표시를 삭제하려면 어떤 스크립트를 지워야 하나요? 말린귤 2018.02.15 368
Board Pagination Prev 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... 149 Next
/ 149