오디오 방출기 속도 (audio_emitter_velocity)
이 함수는 방출기에 도플러 효과를 주고, 주어진 상대 x, y, z 위치를 바탕으로 오디오 이동을 시뮬레이션하는 데 사용됩니다. 만약 방출기가 전혀 움직이지 않을 경우, 일반적으로 이러한 값을 설정할 필요는 없습니다. 그러나 스크롤 슈팅 게임을 만드는 경우, 예를 들어 적들이 오른쪽에서 나오고 왼쪽으로 스크롤되는 상황에서는, 적의 생성 이벤트(create event)에서 이 값을 (hspeed, 0, 0)으로 설정할 수 있습니다. 각 인스턴스의 단계 이벤트(step event)에서 audio_emitter_position() 함수를 사용하여 방출기를 업데이트하면, 적 인스턴스들이 플레이어 인스턴스를 지나갈 때 올바른 도플러 효과를 적용받을 수 있습니다. 플레이어 인스턴스는 audio_listener_position() 함수를 사용하여 리스너의 위치를 올바르게 설정합니다.
문법
audio_emitter_velocity(emitter, vx, vy, vz);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| emitter | 오디오 방출기 ID | 변경할 방출기의 인덱스 |
| vx | 실수 | x 방향 벡터 값 (기본값 0) |
| vy | 실수 | y 방향 벡터 값 (기본값 0) |
| vz | 실수 | z 방향 벡터 값 (기본값 0) |
반환값
N/A
예제 코드
s_emit = audio_emitter_create();
audio_emitter_position(s_emit, room_width, 0, 0);
audio_emitter_velocity(s_emit, -5, 0, 0);
위 코드는 오디오 방출기를 생성하고 그 인덱스를 "s_emit" 변수에 할당합니다. 이 방출기는 방 안의 특정 위치에 배치되고, x 축을 따라 픽셀 5의 속도로 움직이도록 설정됩니다. 따라서 리스너와의 관계에 따라 적절히 도플러 효과를 적용받게 됩니다.
활용 및 응용 예제
스크롤 슈팅 게임에서 적의 사운드 효과 설정
적이 왼쪽으로 이동하면서 발사하는 총소리가 플레이어에게 가까워질 때 더 높은 피치를 가지도록 설정할 수 있습니다.
// 적의 생성 시 이벤트
s_emit = audio_emitter_create();
audio_emitter_position(s_emit, enemy.x, enemy.y, 0);
audio_emitter_velocity(s_emit, -5, 0, 0);
// 스텝 이벤트에서 업데이트
audio_emitter_position(s_emit, enemy.x, enemy.y, 0);
3D 게임에서 객체의 사운드 효과
3D 환경에서 객체의 위치에 따라 소리가 다르게 들리게 설정할 수 있습니다.
// 3D 게임에서 객체의 생성 시 이벤트
s_emit = audio_emitter_create();
audio_emitter_position(s_emit, object.x, object.y, object.z);
audio_emitter_velocity(s_emit, 0, 0, -10); // z축 속도 설정
// 스텝 이벤트에서 위치 업데이트
audio_emitter_position(s_emit, object.x, object.y, object.z);
이 문서에서는 audio_emitter_velocity() 함수를 사용하여 오디오 방출기의 속도를 설정하고, 다양한 게임 시나리오에 활용하는 방법을 설명하였습니다.