Zia/미디어

엔진에 사용되는 미디어, 특히 z0.59버전에서는 오디오 처리에 대한 아이템 모음입니다.
항목 이름 뒤의 괄호에는 사용 가능한 최소 버전이 적혀 있습니다. 또한 아이템의 정의나 기능이 바뀌었을 경우 새로 생긴 어트리뷰트는 항목 밑에 따로 기재했습니다.

미디어 엔진에 사용되는 구조체는 요기에서 보세용

zia::CreateSound(LPCWSTR, bool)(z0.59)

소리 물체(소스라고 하겠습니다)를 만듭니다. zia::CreateThing 계열 함수와 비슷한 방법을로 작동하지만, 고려할 인수는 훨씬 적습니다.
해당 소리의 파일 경로와 exclusive 여부만 인자로 넘기면 됩니다. 이때 확장자는 .wav와 .ogg(vorbis)만 받아요. 왜요?

zia::Play(AZ_Sound, float)(z0.59)

넘겨준 소스를 플레이합니다. 뒤의 float는 플레이할 시점을 초 단위로 넘겨주시면 됩니다.
만약 float가 입력받았다면 최우선적으로 그곳에서 시작되도록 하고, 아니라면 전에 zia::Pause()로 멈춘 곳에서 재생해요.

AZ_OneShotEx를 시작할 때는 경우가 좀 다릅니다. 소스와 플레이 시점 사이에 페이드아웃 시간, 페이드인 시간, 먹을 서브믹스를 추가로 건네 주세요.

zia::Stop(AZ_Sound)(z0.59)

소스를 정지합니다. 추가로 소스의 시작점을 0으로 초기화시킵니다.

zia::Pause(AZ_Sound)(z0.59)

소스를 일시정지합니다. 이때의 시간은 기억되며, 다음 zia::Play() 함수가 시행될 때 그 지점부터 소리가 시작될 거예요.

zia::Playing(AZ_Sound)(z0.59)

해당 소스가 플레이중인지 확인해서, 맞다면 true를, 아니라면 false를 반환합니다.

zia::Time(AZ_Sound)(z0.59)

해당 소스의 플레이 시간을 알아옵니다. XAudio2의 보이스 상태를 확인하는 식으로 구현되었는데, 영 마음에 들지 않아요... 그래서 오류가 날 수도 있으니 너그럽게 이해해 줘요♡

zia::FadeIn(AZ_Sound, float, float)(z0.59)

소스를 페이드인과 함께 시작합니다. 페이드인이 뭔지 알죠...? 앞의 시간만큼 페이드인을 하고, 뒤의 시점에서 플레이를 시작합니다.
소스 대신 서브믹스를 통째로 페이드인할 수 있습니다. 소스의 페이드인처럼 볼륨이 0이 되었다 시작되지는 않고, 소리만 점점 커집니다.

zia::FadeOut(AZ_Sound, float, float)(z0.59)

소스를 페이드아웃과 함께 끝냅니다. 앞의 시간만큼 페이드아웃을 하고, 뒤의 시점에서 플레이를 시작합니다. 마찬가지로, 서브믹스도 페이드아웃할 수 있어요. 서브믹스인 만큼 소리가 멈추지는 않아요...

zia::SetVolume(AZ_Sound, float | DefaultSubmix, float)(z0.59)

소스나 서브믹스의 볼륨을 설정합니다. 0이 음소거, 1이 최고치입니다. 약을 한사발 하셔서 1 이상의 어마어마한 수치의 볼륨을 설정할 수 있습니다만, 예쁜 방법은 아니에요.

zia::GetPeakVolume(DefaultSubmix)(z0.59)

서브믹스의 현재 최대 볼륨을 반환합니다.

zia::SetLowPassFrequency(float)(z0.59)

전체 서브믹스의 LPF의 주파수를 결정합니다.
아직, 필터의 기울기는 바꿀 수 없어요...

zia::SetHighPassFrequency(float)(z0.59)

전체 서브믹스의 HPF의 주파수를 결정합니다.
마찬가지로, 필터의 기울기는 바꿀 수 없습니다...

zia::SetSource(AZ_Sound*, Thing*)(z0.65)

Thing에서 AZ_Sound가 나게 합니다.
더 정확하게 말하면 Thing의 위치에서 소리가 나게 합니다.

zia::SetPan(DefaultSubmix, float)(z0.71)

서브믹스의 소리가 왼쪽이나 오른쪽으로 치우치게 만들어요. 1에 가까울수록 오른쪽, -1에 가까울수록 왼쪽이에요.