버전

menu_open
Wwise SDK 2023.1.3
통합 세부사항 - RTPC

RTPC는 AK::SoundEngine::SetRTPCValue() 함수를 사용해서 갱신할 수 있는 실시간 매개 변수입니다. Event Action은 매개 변수를 수정할 수 없기 때문에 RTPC 값을 설정하는 것은 본인의 책임입니다.

RTPC 값

RTPC 값은 항상 32-비트 실수 값으로 나타나는 AkRtpcValue로 전달됩니다. 이 값은 사운드 디자이너가 Wwise에서 미리 정의한 RTPC 곡선을 직접 보간하는데 사용됩니다.

매개 변수가 Wwise에 정의된 곡선 너머에 있으면, 곡선에 있는 극단값이 사용됩니다. 매개 변수가 최대 값을 초과하면 곡선의 가장 오른쪽 값이 사용되며, 매개 변수가 최소값 이하가 되면 곡선의 가장 왼쪽 값이 사용됩니다. RTPC를 Boolean 값으로 나타나면, 1은 True를 0은 False를 나타냅니다.

RTPC 값의 설정

RTCP 값은 다음과 같이 설정됩니다.

AkRtpcID in_rtpcID, // RTPC의 ID
AkRtpcValue in_value, // 설정할 값
AkGameObjectID in_gameObjectID = AK_INVALID_GAME_OBJECT // 연관된 게임 오브젝트 ID
);

또는

const char * in_pszRtpcName, // RTPC의 이름
AkRtpcValue in_value, // 설정할 값
AkGameObjectID in_gameObjectID = AK_INVALID_GAME_OBJECT // 연관된 게임 오브젝트 ID
);

또는

const wchar_t * in_pszRtpcName, // RTPC의 이름
AkRtpcValue in_value, // 설정할 값
AkGameObjectID in_gameObjectID = AK_INVALID_GAME_OBJECT // 연관된 게임 오브젝트 ID
);

RTPC 값은 게임 오브젝트 및 버스(bus) 매개 변수, 소스 플러그인, 효과 플러그인으로 사운드 재생에 영향을 줄 수 있습니다. 이러한 가능성에 대해서 전부 다 고려하게 됩니다.

ID 사용 활성화

ID로 동작하려면 뱅크는 반드시 Wwise의 Generate SoundBanks 대화상자에서 "Generate header file" 옵션으로 생성되어야 합니다. Wwise_IDs.h라는 이름의 정의 파일은 필요한 모든 ID를 포함합니다. 이 파일은 각각의 뱅크가 생성될 때마다 갱신됩니다.

RTPC와 게임 오브젝트

RTPC는 Sound SFX나 Sound Voice 또는 컨테이너, 액터-믹서 오브젝트에 영향을 줘서 게임 오브젝트의 행동을 수정할 때 사용할 수 있습니다. 스위치도 RTPC를 사용해 수정할 수 있습니다. ( 스위치 다루기 를 참고)

할당되지 않은 게임 오브젝트 전부에 대해 한 번의 함수 호출로 전역 RTPC 값을 설정할 수 있습니다. 이를 처리하려면 게임 오브젝트 ID로 AK_INVALID_GAME_OBJECT를 사용하거나 AkGameObjectID 매개 변수의 지정 없이 AK::SoundEngine::SetRTPCValue() 메소드를 호출합니다. 그러나 사운드 오브젝트가 유효한 AkRtpcID와 AkGameObjectID 입력을 사용해 해당 메소드를 호출하면, 게임 오브젝트가 할당되어 더는 전역 RTPC 값에 영향을 받지 않게 됩니다.

RTPC와 버스

Wwise에서 버스의 일부 매개 변수는 RTPC에 의해서 수정될 수 있습니다. RTPC와 게임 오브젝트 에서 설명했듯이, RTPC 값의 변경에 따라 정확히 영향을 받도록 버스에 대한 AK::SoundEngine::SetRTPCValue() 메소드는 반드시 AK_INVALID_GAME_OBJECT 매개 변수와 함께 호출되어야 합니다.

RTPC와 플러그인

Wwise에서 RTPC는 리버브 레벨이나 피치(pitch) 또는 로우 패스 컷-오프 주파수(low pass cut-off frequencies)처럼 사운드 효과와 소스 플러그인의 속성에 영향을 줄 수 있습니다. RTPC와 게임 오브젝트 에서 설명했듯이, 플러그인을 사용해 버스의 속성에 정확히 영향을 주도록 RTPC 값에 대한 AK::SoundEngine::SetRTPCValue() 메소드 반드시 AK_INVALID_GAME_OBJECT 매개 변수와 함께 호출되어야 합니다. 플러그인이 게임 오브젝트에 의해서 사용되면, AK::SoundEngine::SetRTPCValue() 메소드는 반드시 유효한 AkGameObjectID 값과 함께 호출되어야 합니다.

참고: 전역 RTPC 값의 설정과 게임 오브젝트 마다 RTPC 값의 설정에 대한 차이점에 대해서 아는 것이 중요합니다. 스위치 컨테이너처럼 Wwise 오브젝트의 사운드 재생이 RTPC에 의해 영향을 받으면, 유효한 AkGameObjectID 값과 함께 AK::SoundEngine::SetRTPCValue() 메소드를 호출하는 것이 중요합니다. 재생 중에 게임 오브젝트에 특화된 값이 설정된 게 없다면, 사운드 엔진은 AK_INVALID_GAME_OBJECT 매개 변수 또는 특정 게임 오브젝트의 설정 없이 AK::SoundEngine::SetRTPCValue() 호출에 의해 설정된 전역 RTPC 값을 찾게 됩니다. 만약 전역 값이 존재하지 않으면, 사운드 엔진은 Wwise 저작 애플리케이션에서 지정한 게임 매개 변수의 기본 값을 사용하게 됩니다.
경고: 여러 사운드나 버스, 효과에 같은 RTPC를 사용하는 것이 가능하다는 점에 유의하세요. 이는 예상치 못한 결과를 가져올 수 있기 때문에 게임 오브젝트나 버스, 효과에 대해 서로 다른 RTPC를 사용하는 걸 추천합니다. 예를 들어, 자동차 경주 게임에서 10개의 자동차에 대한 엔진의 기본 RPM 값을 설정할 것입니다. 동시에 자동차의 엔진 사운드를 재생하는 버스에 로우 패스 필터가 적용될 수 있습니다. 이와 같은 권장 사항을 따르면 로우 패스 필터 효과의 원음을 식별하기가 쉬워집니다.

RTPC 통합에 대한 예제는 RTPC 예제 를 참고하세요.

AKSOUNDENGINE_API AKRESULT SetRTPCValue(AkRtpcID in_rtpcID, AkRtpcValue in_value, AkGameObjectID in_gameObjectID=AK_INVALID_GAME_OBJECT, AkTimeMs in_uValueChangeDuration=0, AkCurveInterpolation in_eFadeCurve=AkCurveInterpolation_Linear, bool in_bBypassInternalValueInterpolation=false)
AkUInt32 AkRtpcID
Real time parameter control ID
Definition: AkTypes.h:155
AkUInt64 AkGameObjectID
Game object ID
Definition: AkTypes.h:142
AKRESULT
Standard function call result.
Definition: AkTypes.h:213
static const AkGameObjectID AK_INVALID_GAME_OBJECT
Invalid game object (may also mean all game objects)
Definition: AkTypes.h:176
AkReal32 AkRtpcValue
Real time parameter control value
Definition: AkTypes.h:156

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요