질문과 답변

Extra Form

#==============================================================================
# ★RGSS2
# STR02_マップ画面軽量化 v1.0
# サポート:http://otsu.cool.ne.jp/strcatyou/
# ・画面外のキャラクターのスプライト・自律移動を停止させて負担を軽減させます。
# ・トリガーが"なし"のコモンイベントの更新を止めて負担を軽減させます。
# ・自律移動失敗時にウェイトを設定できます。(それなりに重要)
#==============================================================================
# ■ STRRGSS2
#==============================================================================
module STRRGSS2
  # 画面外のイベントの自律移動を行わない true = 有効 false = 無効
  SELF_MOVEMENT = true
  # カスタム移動失敗時に設けるウェイト 0 以上に設定
  MOVE_FAILED_WAIT = 30
  # 画面外判定
  STR02_RECT = Rect.new(-48, -32, 544+48, 416+64)
end
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
  #--------------------------------------------------------------------------
  # ★ エイリアス
  #--------------------------------------------------------------------------
  alias setup_events_str02 setup_events
  def setup_events
    setup_events_str02
    @common_events.clear
    for i in 1...$data_common_events.size
      @common_events[i] = Game_CommonEvent.new(i) if $data_common_events[i].trigger != 0
    end
  end
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  # ★ 再定義
  #--------------------------------------------------------------------------
  def update_characters
    for sprite in @character_sprites
      if sprite.character.screenin_str02
        sprite.update
      else
        sprite.visible = false
      end
    end
  end
end
#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader   :screenin_str02
  #--------------------------------------------------------------------------
  # ★ エイリアス
  #--------------------------------------------------------------------------
  alias initialize_str02 initialize
  def initialize
    initialize_str02
    @screenin_str02 = true
  end
  alias update_str02 update
  def update
    r = STRRGSS2::STR02_RECT
    @screenin_str02 = (screen_x > r.x and screen_x < r.width and
                       screen_y > r.y and screen_y < r.height)
    update_str02
  end
  alias update_self_movement_str02 update_self_movement
  def update_self_movement
    return if STRRGSS2::SELF_MOVEMENT and not @screenin_str02
    update_self_movement_str02
  end
end
#==============================================================================
# ■ Game_Event
#==============================================================================
class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # ● 自律移動の更新
  #--------------------------------------------------------------------------
  def update_self_movement
    if @stop_count >= 30 * (5 - @move_frequency)
      @wait_count = STRRGSS2::MOVE_FAILED_WAIT + (@id / 4) if @move_failed
    end
    super
  end
end

 

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

이 스크립트 사용시 주인공 기준 화면 밖에선

 

이벤트 설정하고 이동루트에 주인공으로 다가오기 이벤트로 하면 먹히지 않고

 

그 어떤 이벤트의 움직임도 화면 밖에선 되지가 않네요

 

해결 방법이 있나요?

 

이거 맵 렉 줄여주는건 매우 좋은데...말이죠

Comment '4'
  • ?
    AltusZeon 2014.01.10 19:43

    경량화 스크립트의 원리가 특정 범위 밖의 이벤트를 업데이트 하지 않는 것입니다.

    즉 말씀하신 "이벤트 설정하고 이동루트에 주인공으로 다가오기 이벤트로 하면 먹히지 않고

     그 어떤 이벤트의 움직임도 화면 밖에선 되지가 않네요" 라는 방법으로 렉을 줄이는 것입니다.


    병렬처리 이벤트를 하나 만드신 뒤 해당 이벤트의 움직임을 이동경로를 조작하는 방법은 될지도 모르겠군요.

    (확인해보니까 이 방법은 됩니다.)


    그보다 스크립트 설정에도 조작하는 부분이 있군요.

  • ?
    Alkaid 2014.01.10 19:43
    랙감소 스크립트가 하는 일 중에 현재 화면(플레이어 시야)밖의 이벤트 실행이나 갱신을 중지해서 처리량을 감소시키는 것이 있습니다. 스크립트 사용하기 전에 헤더의 설명은 읽어 보셨는지?(번역기 돌려서라도 읽어 보시길)
  • profile
    Omegaroid 2014.01.10 20:13
    # ・画面外のキャラクターのスプライト・自律移動を停止させて負担を軽減させます。
    # ・トリガーが"なし"のコモンイベントの更新を止めて負担を軽減させます。
    # ・自律移動失敗時にウェイトを設定できます。(それなりに重要)

    1. 화면 밖의 캐릭터 스프라이트/자율이동을 정지해서 부담을 경감시킵니다.
    2. 트리거가 "없음"으로 된 커먼 이벤트의 새로고침을 멈춰서 부담을 경감시킵니다.
    3. 자율이동 실패 시에 대기를 설정할 수 있습니다.(꽤 중요)

    module STRRGSS2
    # 화면 밖 이벤트의 자율이동을 실행하지 않는다 true = 유효 false = 무효
    SELF_MOVEMENT = true
    # 사용자정의 이동 실패 시에 설정할 대기시간 0 이상으로 설정할것
    MOVE_FAILED_WAIT = 30
    # 화면 밖 판정
    STR02_RECT = Rect.new(-48, -32, 544+48, 416+64)
    end



    SELF_MOVEMENT = 이부분을 false로 놓으니까 되던데요.
  • ?
    후라이팬샷 2014.01.11 06:47
    감사합니다

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12453
RMVX 적...... 2 마법사 2011.05.15 1088
RMVX 적 캐릭터가 플레이어에게 닿으면 게임오버가 되게 하는법 2 녹차밥 2013.06.22 893
RMVX 적 캐릭터가 스킬을 하나밖에 사용 못하네요 1 IU[아이유] 2013.11.26 772
RMVX 적 캐릭터 밸런스를 조절하려 하는데요 1 file znznznzmzn 2012.12.24 1017
RMVX 적 캐릭터 구하는법 1 file 키리엘 2012.03.06 2281
RMVX 적 그룹에서 적 캐릭터를 랜덤으로 나오게끔 하는 방법좀 부탁드립니다 2 이억팔천 2012.10.28 880
RMVX 저주받은 갑옷 구현 2 FNS키리토 2012.06.26 2657
RMVX 저좀 도와주세요..ㅠㅠ 2 file 닥훈이 2011.06.26 838
RMVX 저장용 슬롯을 늘리고 싶어요. 1 지나기 2016.01.12 192
RMVX 저장및 로드시 캐릭터들이 보이지 않는 방법 4 file request 2015.09.09 249
이벤트 작성 RMVX 저장/로드시 특정스위치를 OFF시킬방법 or 로드시 페이드아웃 실행 ji01345 2019.11.03 81
RMVX 저장 제한 1 파프리카 2014.07.20 556
RMVX 저장 불가능하게 하는 방법좀 알려주세요 1 위니크로스 2011.02.19 656
RMVX 저에게는 브금이 잘 나오는데 게임을 받은사람은 브금이 나오지않아요 춰억헐릿 2012.06.05 1196
RMVX 저번에도 물어봣는데 아무도 대답을 안해주시네요 ㅜㅜ 게임암호화 잘아시는분없나요??? 8 하늘별구름 2012.10.13 1285
RMVX 저는 정말정말 초보입니다 ㅠㅠ 3 박싱싱 2010.11.22 726
RMVX 저기 이 그래픽 소재 잘라서 쓰는법좀요 2 file 후라이팬샷 2013.08.18 1318
RMVX 저기 대기 이벤트가 안먹혀요 2 후라이팬샷 2013.07.27 644
RMVX 저가 퀘스트를 만들려고 하는데요. 변수인가? 머시긴가.. 2 난몰라 2011.12.19 1783
RMVX 저가 미니D&F 버서커&메카닉편을 만들려구 하는데... 질풍처럼 2010.09.22 776
Board Pagination Prev 1 ... 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ... 127 Next
/ 127