질문과 답변

Extra Form
특정 이벤트도 움직일때마다
 발소리가 들리게하고싶은데, 방법이 없을까요??
 
아래는 현재 제가 쓰고있는 발소리 스크립트 입니다.
대충보니까 이벤트ID가 아니라 액터의ID인것 같아서요.
 
 
#------------여기서부터 
# 플레이어 발소리 SE ver. 1.01 (Since 2006/01/31) 
# by Tetra-Z 
# 맵상에서 플레이어에 발소리를 설정합니다. 
# $game_system.player_step_se_permission : 발소리 허가. 
# ver. 1.01(2006/02/18) 
# 커스터마이즈 포인트에서 발밑 태그 ID·맵 ID를 참조 가능하게. 

#============================================================================== 
# TETRAZ61 
#============================================================================== 
module TETRAZ61 
  def self.actor_step_se(id, tag, map) 
    case id 
    #========================================================================== 
    # □ 커스터마이즈 포인트 
    #========================================================================== 
    # tag에서 발밑 태그 ID, map에서 맵 ID의 조건부도 할 수 있습니다. 
    when 1 
      return [[1, 3], "032-Switch01", 80, 100] 
    when 2 
      return [[1, 3], "040-Knock01", 80, 100] 
    # when 엑터 ID 
    #  return [[패턴], "SE명", 음량, 피치] 
    # 
    # 엑터 ID : 선두의 엑터의 ID. 
    # 패턴  : 발소리가 있는 패턴. 캐릭터 화상의 왼쪽으로부터 0, 1, 2, 3. 
    # SE명      : 발소리가 되는 SE파일명. 
    # 음량      : SE의 음량. 생략 하면(자) 80. 
    # 피치    : SE의 피치. 생략 하면(자) 100. 
    #========================================================================== 
    end 
    return [] 
  end 
end 
#============================================================================== 
# ■ Game_System 
#============================================================================== 
class Game_System 
  #-------------------------------------------------------------------------- 
  # ● 공개 인스턴스 변수 
  #-------------------------------------------------------------------------- 
  attr_accessor :player_step_se_permission 
  #-------------------------------------------------------------------------- 
  # ● 오브젝트 초기화 
  #-------------------------------------------------------------------------- 
  alias tetraz61_initialize initialize 
  def initialize 
    tetraz61_initialize 
    @player_step_se_permission = true 
  end 
end 
#============================================================================== 
# ■ Game_Player 
#============================================================================== 
class Game_Player < Game_Character 
  #-------------------------------------------------------------------------- 
  # ● 프레임 갱신 
  #-------------------------------------------------------------------------- 
  alias tetraz61_update update 
  def update 
    last_pattern = @pattern 
    tetraz61_update 
    actor_id = tetraz61_party0 
    return if (! $game_system.player_step_se_permission or $data_actors[actor_id]. nil? ) 
    se = TETRAZ61.actor_step_se(actor_id, self.terrain_tag, $game_map.map_id) 
    return if (!(se.is_a? (Array)) or se.size < 2 or !(se[0]. is_a? (Array)) or se[1] == "") 
    if (last_pattern != @pattern and se[0]. include? (@pattern)) 
      se[2] = 80 if (se.size < 3 or se[2]. nil? ) 
      se[3] = 100 if (se.size < 4 or se[3]. nil? ) 
      Audio.se_play("Audio/SE/" + se[1], se[2], se[3]) rescue nil 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 선두의 엑터 
  #-------------------------------------------------------------------------- 
  def tetraz61_party0 
    if defined?  xrxs41_refresh 
      id = $game_variables[XRXS41::MAPCHAR_VARIABLE_ID] 
      return id unless $data_actors[id]. nil? 
    end 
    return $game_party.actors.size > 0 ?  $game_party.actors[0]. id : 0 
  end 
end 
Comment '2'
  • ?
    페렐 2015.07.23 17:30
    해당 스크립트만으로는 어려운 것으로 보입니다. 저기에서 말하는 ID는 일종의 '지형' 개념인 것으로 보입니다. 풀숲의 ID는 1, 물 바닥의 ID는 2, 이런 식으로 설정(데이터베이스 - 타일맵 - ID설정)해서 지형에 따라 다른 발소리가 들리게 만드는 것이지요.
  • ?
    nachthexen 2015.07.28 01:34
    아...그렇군요....ㅠㅠ 다른 발소리 스크립트를 찾으려해도 마땅한게 없네요...ㅠㅠ

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12398
Board Pagination Prev 1 2 3 4 5 Next
/ 5