AudioBus 구조체
## AudioBus 구조체란?
`AudioBus` 구조체는 GameMaker에서 오디오 버스에 대한 정보를 저장하는 구조체입니다. 오디오 버스는 GameMaker가 재생하는 오디오를 처리하는 데 사용됩니다. 주 오디오 버스는 항상 존재하며, 내장 구조체인 `audio_bus_main`을 통해 접근할 수 있습니다. 새로운 버스는 `audio_bus_create`를 통해 생성할 수 있습니다.
## 구조체 구성 요소
|구성 요소|타입|설명|
|---|---|---|
|bypass|Boolean|버스를 우회해야 하는지 여부를 나타냅니다. 이 경우 오디오 입력이 버스를 통과하여 출력으로 전달되며, 모든 효과와 게인 스케일링이 제외됩니다.|
|gain|Real|버스 출력에 적용되는 게인 값 (0-1 범위).|
|effects|AudioEffect Struct 배열|버스에서 오디오 효과에 접근할 수 있습니다. 이 배열을 조작하여 효과를 설정, 가져오기 및 재배치할 수 있습니다. 배열 크기는 8로 고정되어 있어 최대 8개의 효과를 지원합니다. 범위를 초과한 인덱스에 접근하려고 하면 오류가 발생합니다. 효과 슬롯은 `undefined`를 할당하여 비울 수 있습니다.|
## 활용 및 응용 예제
### 예제 1: 오디오 버스 생성 및 기본 설정
아래의 코드는 새로운 오디오 버스를 생성하고, 우회 및 게인 값을 설정하는 방법을 보여줍니다.
```gml
// 새로운 오디오 버스 생성
var new_bus = audio_bus_create();
// 버스 설정
new_bus.bypass = false; // 우회 하지 않음
new_bus.gain = 0.8; // 게인 값 설정
예제 2: 오디오 효과 추가
이 예제에서는 오디오 효과를 추가하고 배열 크기 한계를 어떻게 지키는지를 보여줍니다.
// 오디오 효과 배열에 효과 추가
var effect_index = 0; // 효과 추가할 인덱스
if (new_bus.effects[effect_index] == undefined) {
new_bus.effects[effect_index] = audio_effect_create();
} else {
show_error("효과 슬롯이 이미 사용 중입니다.", true);
}
예제 3: 효과 삭제 및 슬롯 비우기
효과를 삭제하고 슬롯을 비우는 방법을 보여주는 예제입니다.
// 첫 번째 효과 비우기
new_bus.effects[0] = undefined; // 슬롯 비우기
참고 사항
- 오디오 효과는 각 효과에 대한 구조체를 참조하여 설정합니다.
- 최대 8개의 효과만 추가할 수 있으므로 배열의 인덱스 범위에 주의해야 합니다.
audio_bus_main을 통해 항상 주 오디오 버스에 접근할 수 있습니다.
결론
AudioBus 구조체는 GameMaker에서 오디오 처리를 보다 효율적으로 다루기 위해 매우 유용한 도구입니다. 다양한 예제를 통해 더욱 효과적으로 활용할 수 있습니다.
© 저작권 YoYo Games Ltd. 2023 모든 권리 보유. ```