본문 바로가기
Game Lab

[Week17] FMOD_조건 만족 시 특정 사운드 재생

by 토리총 2026. 7. 1.

 

구현해야하는 기능

카드를 호버하고 커서를 휙휙 움직여볼때(3D 입체카드임) 카드 별 특수 사운드가 재생되는 기능

 

>> 입체적인 카드와 컨셉이 잘 어우러질 것 같아, Fmod 공부를 하고 직접 구현해보고자 함

 

 


전용 FMOD 이벤트 생성

1. 파라미터 추가하기

  1. Event 상단의 파라미터 영역에서 로컬 파라미터 추가 (예: HoverAccel)
  2. Discrete Parameter로 설정, 범위 0~1
  3. Unity에서 커서 가속 감지될 때마다 이 파라미터를 1로 세팅 (트리거 후 다시 0으로 리셋하는 방식을 게임 로직에서 처리)

 

더보기

궁금한 점 1. Discrete Parameter 랑 Continuous Parameter 의 차이?

 

 

 

 

 

2. 추가 트랙 생성하기

  1. Audio 4 트랙 추가, 비둘기 울음/날개짓 사운드를 Single Instrument로 배치
  2. 이 인스트루먼트 블록을 트랙 2, 3처럼 타임라인 전체(넉넉하게 몇 분)로 길게 늘리기
  3. 이유: 블록이 짧으면 재생헤드가 그 구간을 한 번만 지나가서 파라미터가 나중에 1이 돼도 반응 안 함

 

  1. 인스트루먼트 선택 → Deck에서 Async 옵션 켜기
  2. Async를 켜야 재생헤드 위치와 무관하게 조건이 참이 되는 순간 즉시 트리거됨 (그냥 Sync면 재생헤드가 그 지점을 지나갈 때 딱 한 번만 반응)
더보기

궁금한 점 2. Sync? Async ?

 

비동기(Asynchronous)vs 동기(Synchronous)

동기는 하나의 작업이 끝날 때까지 다음 작업을 멈추고 기다리지만,

비동기는 결과를 기다리는 동안 다른 일을 수행할 수 있음

 

 

 

 


3. 파라미터 조건 걸기

  1. 트랙 5 좌측의 파라미터 아이콘(트랙별로 파라미터 조건 레인을 펼치는 버튼) 클릭 → HoverAccel 선택
  2. 인스트루먼트 아래쪽에 조건 레인이 생기는데, 여기서 값이 1인 구간만 활성화되도록 드래그 (예: 0.5~1 구간 하이라이트)
  3. 인스트루먼트 자체를 우클릭 → Add Condition → HoverAccel = 1로 지정해도 동일하게 동작

4. 결과

  • 파라미터가 0 → 1로 바뀌는 매 순간마다 트랙 5 인스트루먼트가 재트리거됨
  • 파라미터가 1에 머물러 있어도, 다시 0을 거쳤다가 1이 될 때 재생됨 (0→1 전이가 핵심)
  • 트랙 1, 2, 3, 4(기존 4트랙)는 그대로 유지, 트랙 5만 조건부로 추가 재생

5. Unity 쪽에서 할 일

  • HoverAccel 파라미터를 조건에 맞을 때 1로 세팅하는 코드 한 줄만 추가
  • 이후 조건, 트리거 타이밍, 사운드 교체는 전부 FMOD Studio에서 사운드 디자이너가 관리 가능
  • 파라미터를 1로 세팅한 뒤 곧바로 0으로 되돌리는 로직(펄스 형태)으로 넘겨주시면, 매번 커서가 휙휙 움직일 때마다 재트리거되는 구조가 안정적으로 동작합니다