오디오 모듈레이션(Audio Modulation) 플러그인은 컴포넌트 및 블루프린트 시스템에서 볼륨 및 피치와 같은 부동 소수점 오디오 파라미터를 동적으로 제어하는 기능을 제공합니다.
오디오 모듈레이션 플러그인은 기본적으로 비활성화되어 있습니다. 이를 활성화하려면 다음 단계를 따릅니다.
편집(Edit) > 플러그인(Plugins)을 선택하여 플러그인 패널을 엽니다.
검색창을 사용하여 플러그인을 찾습니다.
해당 체크박스를 활성화합니다.
언리얼 에디터를 재시작합니다.
에셋 타입
오디오 모듈레이션의 함수 기능을 제공하는 다섯 가지 에셋 타입이 있습니다.
| 에셋 타입 | 설명 |
|---|---|
모듈레이션 값이 정규화되고, 표시되고, 다른 값과 믹싱되는 방식에 대한 컨텍스트를 제공하는 파라미터입니다. | |
모듈레이션 파라미터를 참조하는 커넥터입니다. | |
여러 컨트롤 버스 값을 한 번에 적용할 수 있는 모듈레이터입니다. | |
여러 컨트롤 버스 값을 하나의 출력 값으로 리매핑하는 하이브리드 커넥터-모듈레이터입니다. | |
시간이 지남에 따라 값을 생성하는 하이브리드 커넥터-모듈레이터입니다. |
이러한 에셋을 사용하여 모듈레이션 파이프라인의 기초를 생성한 다음 이를 엔드포인트 모듈레이션 대상에 연결할 수 있습니다.
오디오 모듈레이션 에셋 생성하려면 다음 단계를 따릅니다.
콘텐츠 브라우저에서 추가(Add) 버튼을 클릭합니다.
오디오(Audio) > 모듈레이션(Modulation) 아래에서 원하는 에셋 타입을 선택합니다.
모듈레이션 파라미터
모듈레이션 파라미터는 모듈레이션 값이 정규화되고, 표시되고, 다른 값과 믹싱되는 방식에 대한 컨텍스트를 제공합니다.
각 모듈레이션 파라미터에는 다음과 같은 베이스 프로퍼티가 있으며, 여기에 클래스에 따라 기타 파라미터가 추가됩니다.
디폴트 파라미터 값(Default Parameter Value): 디폴트 모듈레이션 값입니다. 이 파라미터를 참조하는 모듈레이터가 다른 모듈레이터와 믹싱될 때 입력이 변경되지 않도록 설정해야 하는 우회 값으로 작동합니다. 수학적으로는 믹스 함수가 입력으로 설정되었을 때 Identity 함수로 효과적으로 감소하도록 값을 선택해야 합니다.
유닛 표시명(Unit Display Name): 언리얼 에디터에서 레퍼런스에 표시할 유닛입니다. 이 정보는 개발 목적으로만 사용되며 패키지로 만든 빌드에서는 제거됩니다.
볼륨 믹싱과 주파수 조작 등, 다양한 사용 사례를 지원하는 여러 기본 모듈레이션 파라미터가 있습니다.
오디오 모듈레이션 플러그인에는 볼륨과 피치 같은 가장 일반적인 파라미터에 대해 사전 제작된 파라미터 에셋이 포함되어 있습니다.
다음 단계에 따라 콘텐츠 브라우저에서 이러한 에셋을 확인할 수 있습니다.
세팅(Settings) 버튼을 클릭합니다.
엔진 콘텐츠 표시(Show Engine Content) 및 플러그인 콘텐츠 표시(Show Plugin Content)를 활성화합니다.
All/Engine/Plugins/Audio Modulation Content로 이동합니다.
모듈레이션 값 정보
모듈레이션 값은 다음 두 값 공간 사이에서 변환됩니다.
유닛(Unit): 모듈레이션 파라미터와 연결된 유닛 값입니다. 예를 들어, 볼륨 모듈레이션 파라미터의 경우에는 데시벨(dB)입니다. 유닛 값은 정규화된 값에 매핑됩니다.
정규화(Normalized): 균등한 전달 및 믹싱을 위해 정규화된 0.0~1.0 사이의 값입니다.
여러 모듈레이터가 단일 모듈레이션 대상에 링크될 때 모듈레이션 값이 믹싱됩니다. 결합 방식은 연결된 모듈레이션 파라미터에 따라 다릅니다. 다음은 일부 기본 모듈레이션 파라미터 타입에서 믹싱을 처리하는 방식에 대한 몇 가지 예시입니다.
볼륨(Volume): 볼륨 감소는 애디티브 방식입니다. 예를 들어, 두 컨트롤 버스의 값이 각각 -6dB과 -12dB이면, 모듈레이션 대상의 볼륨은 -18dB로 설정됩니다.
하이 패스 필터 주파수(High-Pass Filter Frequency): 최댓값이 선택됩니다. 예를 들어, 두 컨트롤 버스의 값이 각각 1,000Hz와 500Hz이면, 모듈레이션 대상의 하이 패스 필터 주파수는 1,000Hz로 설정됩니다.
로우 패스 필터 주파수(Low-Pass Filter Frequency): 최솟값이 선택됩니다. 예를 들어, 두 컨트롤 버스의 값이 각각 1,000Hz와 500Hz이면, 모듈레이션 대상의 로우 패스 필터 주파수는 500Hz로 설정됩니다.
커스텀 모듈레이션 파라미터 클래스 생성
USoundModulationParameter 베이스 클래스에서 상속하고 다음 함수를 구현하여 자체 모듈레이션 파라미터 클래스를 생성할 수 있습니다.
GetMixFunction: 입력 및 출력 값을 믹싱하는 함수를 반환할 것으로 예상됩니다.
GetUnitConversionFunction: 값을 유닛 스페이스로 변환하는 함수를 반환할 것으로 예상됩니다.
GetNormalizedConversionFunction: 값을 정규화된 스페이스로 변환하는 함수를 반환할 것으로 예상됩니다.
자세한 내용은 오디오 모듈레이션 C++ API 레퍼런스를 참조하세요.
컨트롤 버스
컨트롤 버스(Control Buses)는 모듈레이션 파라미터를 참조하는 커넥터입니다. 그 용도는 다음과 같습니다.
컨트롤 버스 믹스 및 모듈레이션 제너레이터에 의해 변조에 사용됩니다.
파라미터 패치에 의해 참조되고 리매핑됩니다.
일반적으로, 변조하려는 각 사운드 카테고리에 대해 컨트롤 버스를 생성하는 것이 좋습니다. 이 카테고리는 사운드 이펙트(CB_SFX)처럼 일반적인 것일 수도 있고 공격 사운드(CB_Attacks)처럼 특정한 것일 수도 있습니다. 이 예시에서 검을 휘두르는 사운드의 모듈레이션 파이프라인에는 두 컨트롤 버스가 모두 있을 수 있습니다.
컨트롤 버스 프로퍼티
| 프로퍼티 | 설명 |
|---|---|
바이패스(Bypass) | 활성화하면 컨트롤 버스가 파라미터의 디폴트 값을 연결된 모듈레이션 대상에 전송합니다. 활성화하든 비활성화하든 컨트롤 버스는 활성 상태로 유지됩니다. |
파라미터(Parameter) | 사용할 모듈레이션 파라미터입니다. 주어진 모듈레이션 파라미터의 디폴트 값이 이 컨트롤 버스의 디폴트 값으로 사용됩니다. |
어드레스 오버라이드(Override Address) | 활성화하면 어드레스(Address) 프로퍼티를 변경할 수 있습니다. |
어드레스(Address) | 일부 블루프린트 함수가 사용하는 내부 레퍼런스 이름입니다. 디폴트 값은 에셋의 이름이지만, 어드레스 오버라이드를 활성화하여 변경할 수 있습니다. |
제너레이터(Generators) | 알고리즘으로 버스를 구동하는 모듈레이션 제너레이터 배열입니다. |
컨트롤 버스 믹스
컨트롤 버스 믹스(Control Bus Mixes)는 다음과 같은 작업에 도움이 되는 모듈레이터입니다.
동시에 여러 컨트롤 버스 값에 영향을 줍니다.
다른 컨트롤 버스 믹스와 공유되는 컨트롤 버스로 변조합니다.
믹스 프로파일을 사용하여 실시간으로 오디오를 테스트하고 미세조정합니다.
컨트롤 버스 믹스 프로퍼티
| 프로퍼티 | 설명 |
|---|---|
믹스 활성화(Activate Mix) | [버튼] 모든 활성 월드에서 주어진 프로파일 인덱스(Profile Index)의 믹스를 활성화합니다. |
모든 믹스 비활성화(Deactivate All Mixes) | [버튼] 모든 활성 월드에서 모든 믹스를 비활성화합니다. |
믹스 비활성화(Deactivate Mix) | [버튼] 모든 활성 월드에서 주어진 프로파일 인덱스의 믹스를 비활성화합니다. |
프로파일에서 믹스 로드(Load Mix from Profile) | [버튼] 지정된 프로파일 인덱스에서 믹스를 로드합니다. 현재 믹스에 있는 모든 세팅을 덮어씁니다. 믹스 프로파일은 |
프로파일에 믹스 저장(Save Mix to Profile) | [버튼] 주어진 프로파일 인덱스에 믹스를 저장합니다. 해당 인덱스에 있는 모든 세팅을 덮어씁니다. 믹스 프로파일은 |
솔로 믹스(Solo Mix) | [버튼] 모든 활성 월드에서 주어진 프로파일 인덱스의 믹스만 활성화하고 다른 모든 믹스를 비활성화합니다. 에디터 내 테스트 전용입니다. |
프로파일 인덱스(Profile Index) | 믹스 프로파일 버튼의 타깃이 되는 믹스 프로파일의 인덱스(정수)입니다. 각 믹스 프로파일에는 연결된 모듈레이션 대상이 변조되는 방식을 결정하는 믹스 스테이지의 배열이 있습니다. |
믹스 스테이지(Mix Stages) | 컨트롤 버스 레퍼런스 및 연결된 믹스 정보의 배열입니다. |
믹스 스테이지 > 버스(Bus) | 값을 전송할 컨트롤 버스입니다. |
믹스 스테이지 > 값(Value) | 컨트롤 버스를 통해 전송할 값입니다. 유닛으로 값을 설정할 수도 있고 정규화된 값으로 직접 값을 설정할 수도 있습니다. |
믹스 스테이지 > 어택 시간(Attack Time) | 믹스가 활성화된 경우 모듈레이션 파라미터의 디폴트 값에서 주어진 값까지 이동하는 데 걸리는 시간(초)입니다. |
믹스 단계 > 릴리즈 시간(Release Time) | 믹스가 활성화된 경우 주어진 값에서 모듈레이션 파라미터의 디폴트 값까지 이동하는 데 걸리는 시간(초)입니다. |
경과시간(Duration) | 0 이상의 값으로 설정하면 믹스가 활성화될 때 타이머가 시작됩니다. 타이머가 설정된 경과시간 값에 도달하면 믹스가 자동으로 비활성화됩니다. |
활성화 시 리트리거(Retrigger on Activation) | 이미 활성화된 믹스를 활성화할 때의 행동을 제어합니다. False로 설정하면 경과시간 타이머가 리셋되는 것 외에 아무 일도 일어나지 않습니다. True로 설정하면 믹스가 모든 스테이지를 기본값으로 되돌리고 활성화하여 어택이 다시 실행됩니다. 이는 엔벨로프(Envelope)를 리트리거하는 것과 비슷하게 작동합니다. |
컨트롤 버스 믹스 디테일(Details) 패널에서 제공되는 믹스 프로파일 버튼은 실시간으로 에디터에서 플레이(Play In Editor, PIE)에서 믹스를 조정하고 테스트하는 데 유용합니다. 하지만, 최종 믹스 컨트롤은 블루프린트에서 구현되어야 합니다.
컨트롤 버스 믹스의 프로퍼티가 업데이트되었으며, 컨트롤 버스 믹스와 관련된 일부 함수에는 새로운 경과시간 및 활성화 시 리트리거 변수에 대한 입력이 추가되었습니다.
파라미터 패치
파라미터 패치(Parameter Patches)는 주로 다음 두 가지 방면에서 유용한 하이브리드 커넥터-모듈레이터입니다.
하나 이상의 컨트롤 버스 값을 단일 출력 값으로 변환합니다.
파라미터 패치로 컨트롤 버스 값 커브를 커스터마이징할 수 있는데, 이는 값을 리매핑하고 다양한 페이드 이펙트를 생성하는 데 유용합니다.
여러 컨트롤 버스가 있는 파라미터 패치를 모듈레이션 대상에 할당하는 것은 각 컨트롤 버스를 모듈레이션 대상에 개별적으로 설정하는 것과 기능 면에서 비슷합니다.
파라미터 패치 프로퍼티
| 프로퍼티 | 설명 |
|---|---|
바이패스(Bypass) | 활성화하면 패치가 파라미터의 디폴트 값을 연결된 모듈레이션 대상에 전송합니다. 활성화하든 비활성화하든 파라미터 패치는 활성 상태로 유지됩니다. |
파라미터(Parameter) | 입력의 컨트롤 버스가 믹싱되는 방식을 결정하는 모듈레이션 파라미터입니다. |
입력(Inputs) | 컨트롤 버스 레퍼런스 및 연결된 트랜스폼 정보의 배열입니다. 이러한 각 입력의 출력은 모듈레이션 파라미터 패치 믹스 함수를 사용하여 믹싱됩니다. 배열에 컨트롤 버스가 없다면 패치는 그 파라미터의 디폴트 값을 연결된 모듈레이션 대상에 전송합니다. |
입력 > 샘플 및 유지(Inputs > Sample-And-Hold) | 활성화하면 파라미터 패치가 초기화될 때 컨트롤 버스 값을 저장하고 패치의 수명 동안 유지합니다. |
입력 > 커브 타입(Inputs > Curve Type) | 컨트롤 버스의 정규화된 값 [0.0~1.0]을 리매핑할 때 적용할 커브입니다. 옵션은 다음과 같습니다.
|
입력 > 버스(Inputs > Bus) | 입력 컨트롤 버스입니다. |
모듈레이션 제너레이터
모듈레이션 제너레이터(Modulation Generators)는 시간이 지남에 따라 값을 생성하는 하이브리드 커넥터-모듈레이터입니다. 컨트롤 버스 또는 모듈레이션 대상 프로퍼티에서 설정하여 모듈레이션 제네레이터로 변조할 수 있습니다.
이 플러그인은 다음 타입에 대한 구현을 제공합니다.
저주파수 오실레이터(Low-Frequency Oscillator, LFO): 사인파나 사각파 같은 주어진 파형의 진동에 따라 값을 생성합니다.
엔벨로프 팔로워(Envelope Follower): 주어진 오디오 버스의 진폭에 따라 값을 생성합니다.
AD 엔벨로프(AD Envelope): 주어진 어택-디케이 엔벨로프에 따라 값을 생성합니다.
커스텀 모듈레이션 제너레이터 생성
제너레이터를 생성하고 등록하는 데 필요한 보일러플레이트 코드를 생성하는 USoundModulationGenerator 클래스용으로 제공된 코드 생성 템플릿을 사용하여 자체 모듈레이션 제너레이터를 생성할 수 있습니다.
USoundModulationGenerator 클래스를 생성하려면 다음 단계를 따릅니다.
툴(Tools) > 새 C++ 클래스(New C++ class)를 선택합니다.
부모 클래스 선택(Choose Parent Class) 창에서 모든 클래스(All Classes)를 선택합니다.
SoundModulatorBase 아래에서 SoundModulatorGenerator를 선택합니다.
다음과 같은 함수를 구현해야 합니다.
GetValue: 0.0~1.0 사이의 캐시되고 정규화된, 유닛 없는 값을 반환할 것으로 예상됩니다. 이 값은 리스닝 모듈레이션 대상에 제공됩니다.Update: 다음 프레임의 캐시된 값 계산을 구현할 것으로 예상됩니다.
선택적으로 다음과 같은 함수를 구현할 수도 있습니다.
IsBypassed: 제너레이터 값이 대상 계산에 포함되어야 할지에 따라 boolean 값을 반환할 것으로 예상됩니다. 기본적으로 생성된USoundModulationGenerator Bypass프로퍼티에서 언리얼 오디오 엔진으로 값을 전달합니다.GetDebugValues: 출시되지 않은 빌드에서au.Debug.SoundModulators디버그 명령 계열을 사용하여 런타임 시 표시할 제너레이터 인스턴스당 스트링 배열을 제공할 것으로 예상됩니다.GetDebugCategories: 이러한 인스턴스 값에서 제공하는 값에 해당하는 필드 이름의 스태틱 배열을 제공할 것으로 예상됩니다.
자세한 내용은 오디오 모듈레이션 C++ API 레퍼런스를 참조하세요.
모듈레이션 대상
모듈레이션 대상(Modulation Destination)은 오디오 모듈레이션 에셋이 변조할 주어진 유닛의 베이스 float 값을 제공하는 오디오 오브젝트에 연결된 엔드포인트입니다.
다음 오브젝트에 모듈레이션 대상이 있습니다.
사운드 웨이브
메타사운드 소스
오디오 컴포넌트
신디 컴포넌트
사운드 클래스
서브믹스
소스 이펙트(비트 크러셔(BitCrusher) 및 코러스(Chorus) 전용)
해당 디테일 패널의 모듈레이션 아래에서 지원되는 각 오디오 오브젝트의 모듈레이션 대상을 찾을 수 있습니다. 각 오브젝트에는 볼륨이나 피치 등, 변조될 프로퍼티를 결정하는 지원되는 모듈레이션 대상이 나열되어 있습니다.
모듈레이션 대상을 사용하려면 연결된 변조(Modulate) 체크박스를 활성화한 다음 배열에 원하는 커넥터(컨트롤 버스, 모듈레이션 제너레이터 또는 파라미터 패치)를 추가해야 합니다.
모듈레이션 대상 라우팅 옵션
오디오 컴포넌트의 모듈레이션 대상 같은 일부 모듈레이션 대상은 상속 기반 라우팅 옵션을 제공합니다. 자손 오브젝트는 부모 오브젝트로부터 모듈레이션 라우팅을 상속받을 수 있습니다. 특히 오디오 컴포넌트는 연결된 사운드 에셋으로부터 상속받을 수 있고, 사운드는 연결된 사운드 클래스로부터 상속받을 수 있습니다.
| 라우팅 옵션 | 설명 |
|---|---|
사용 안 함 | 변조 라우팅을 비활성화합니다. |
상속(Inherit) | 부모 오브젝트로부터 모듈레이션 라우팅을 상속받습니다. 이 옵션이 디폴트 옵션인데, 그 이유는 모듈레이션을 구성하는 가장 일반적인 위치가 사운드 클래스이기 때문입니다. |
오버라이드(Override) | 주어진 세팅으로 부모 오브젝트의 모듈레이션 라우팅을 오버라이드합니다. |
Union | 부모 오브젝트로부터 상속된 모듈레이션 라우팅과 주어진 세팅을 모두 사용합니다. 같은 모듈레이터가 두 세트 모두에 있으면, 한 번만 계산합니다. |
메타사운드 통합
오디오 모듈레이션 플러그인은 다음 메타사운드 노드를 제공합니다.
모듈레이터 값 구하기(Get Modulator Value): 정규화된 값이나 유닛 스페이스로 주어진 모듈레이터 값을 반환합니다.
모듈레이터 믹스(Mix Modulators): 두 개의 주어진 모듈레이터 사이의 믹싱된 파라미터 값을 정규화된 값 또는 유닛 스페이스로 반환합니다.
메타사운드 시스템에 대한 자세한 내용은 메타사운드 문서를 참조하세요.
오디오 모듈레이션 및 동시실행
소스의 볼륨 변조를 활성화하여 동시실행의 가장 작은 소리 중지(Stop Quietest) 옵션에 영향을 주는 CVar를 사용할 수 있습니다. 이 CVar의 이름은
au.Concurrency.IncludeVolumeModulation입니다.
동시실행(Concurrency) 탭의 해상도 규칙(Resolution Rule) 아래에서 동시실행 에셋(Concurrency Asset)을 더블클릭하면 메뉴를 찾을 수 있습니다.
0으로 설정하면 볼륨 변조는 동시실행 평가에 포함되지 않습니다.
1로 설정하면 볼륨이 원샷(One-shot)에 포함되지만 루핑 사운드에는 포함되지 않습니다.
2로 설정하면 볼륨 변조가 모든 사운드에 포함됩니다.
블루프린트 API 개요
블루프린트를 사용하여 모듈레이션 파이프라인을 동적으로 생성하고 제어할 수 있으며 게임플레이나 비주얼 이펙트 같은 다른 시스템을 구동할 수 있습니다.
오디오 모듈레이션에 관련된 대부분의 블루프린트 함수는 오디오 > 모듈레이션 아래에 있습니다. 아래 테이블에서 이러한 함수를 간략하게 살펴볼 수 있습니다.
| Function | 베리언트 | 설명 |
|---|---|---|
Activate… | 컨트롤 버스 믹스 | 제공된 오브젝트를 활성화합니다. |
Clear… | 모든 글로벌 컨트롤 버스 믹스 값, 글로벌 컨트롤 버스 믹스 값, 모듈레이터 | 제공된 버스의 파라미터를 디폴트 값으로 리셋/링크 해제합니다. |
Create… | AD 엔벨로프 제너레이터, 컨트롤 버스, 컨트롤 버스 믹스, 컨트롤 버스 믹스 스테이지, 엔벨로프 팔로워 제너레이터, LFO 제너레이터, 모듈레이터 대상, 모듈레이션 대상 | 제공된 디폴트 값을 사용하여 오브젝트를 생성합니다. 모듈레이션 대상의 경우 컨트롤 버스와 제너레이터는 자기 대상의 레퍼런스를 카운트하므로 이 오브젝트는 레퍼런스 중 하나가 됩니다. 컨트롤 버스 및 제너레이터는 레퍼런스 카운트가 0보다 큰 경우에만 활성화됩니다. |
Deactivate… | 모든 컨트롤 버스 믹스, 컨트롤 버스 믹스 | 제공된 오브젝트를 비활성화합니다. |
Get Modulator | 해당 없음 | 지정된 모듈레이션 대상의 모듈레이터를 가져옵니다. |
Get Modulator Value | 해당 없음 | 지정된 모듈레이터의 정규화된 값을 구합니다. |
Get Modulators From Destination | 해당 없음 | 현재 모듈레이션 대상에 적용된 모듈레이터의 목록을 가져옵니다. |
Get Watched Modulator Value | 해당 없음 | 지정된 모듈레이션 대상 오브젝트의 감시된 모듈레이터 값의 값을 구합니다. |
Is Control Bus Mix Active | 해당 없음 | 주어진 컨트롤 버스 믹스가 활성화되어 있는지 확인합니다. |
Load Control Bus Mix From Profile | 해당 없음 | 컨트롤 버스 믹스를 프로파일에서 UObject 믹스 정의로 로드하고, |
Save Control Bus Mix To Profile | 해당 없음 | 컨트롤 버스 믹스를 프로파일에 저장하여 |
Set… | 컨트롤 버스 믹스, 필터별 컨트롤 버스 믹스, 글로벌 컨트롤 버스 믹스 값, 감시된 모듈레이터 | 제공된 오브젝트의 프로퍼티를 설정합니다. Set Control Bus Mix By Filter 함수를 사용하면 OSC 스타일 어드레스 필터링을 사용할 수 있습니다. |
Update… | 컨트롤 버스 믹스, 모듈레이터 | 제공된 오브젝트에서 오브젝트 스레드에 업데이트를 커밋합니다. |
Add Modulation Routing | 해당 없음 | 오디오 컴포넌트에 지정된 모듈레이터 세트를 추가합니다. 중복되는 모듈레이터가 추가되지 않도록 논리적 유니언을 수행합니다. 기존 세팅을 완전히 덮어쓰려면 Set Modulation Routing을 사용합니다. |
Remove Modulation Routing | 해당 없음 | 오디오 컴포넌트에서 주어진 모듈레이터 세트를 제거합니다. 세트에 대한 논리적 빼기를 수행하므로 지정된 세트에 없는 모듈레이터는 그대로 남습니다. |
오디오 > 모듈레이션 그룹 밖에도 유용한 함수가 있습니다. 특히 Get Modulators 및 Set Modulation Routing 함수는 오디오 컴포넌트 및 신디 컴포넌트에 대한 오버로드를 제공하며 컴포넌트의 모듈레이션 대상을 가져오거나 설정하는 데 사용할 수 있습니다.
자세한 내용은 오디오 모듈레이션 블루프린트 API 레퍼런스를 참조하세요.
UObject 및 프록시 정보
오디오 모듈레이션 컴포넌트 및 에셋으로 작업할 때는 일반적으로 UObject 값을 편집합니다. 그러나 오디오 모듈레이션은 다음 두 가지 이유로 UObjects를 직접 사용하여 처리하지 않습니다.
UObject는 게임 스레드에서 실행됩니다.
UObject는 오디오 모듈레이션 시스템의 제어를 벗어났을 때 가비지 컬렉션될 수 있습니다.
그 결과 UObjects에 설정된 값은 오디오 렌더 스레드의 오디오 모듈레이션 시스템에 있는 오브젝트에 전송됩니다. 이 점을 기억해야 하는 까닭은 일부 블루프린트 함수는 UObject를 편집하고 다른 함수는 오디오 모듈레이션 시스템의 프록시 오브젝트를 수정하기 때문입니다.
어떤 함수가 UObject 값만 수정하면 Update 블루프린트 함수를 호출하여 변경사항을 프록시에 전송해야 합니다. 또한, UObject 값을 수정하지 않는 함수를 호출한 다음 프록시를 업데이트하기 위한 함수를 호출하는 경우, UObject 값이 프록시를 덮어씁니다.
오디오 모듈레이션은 오디오 렌더 스레드에서 실행되지만, 샘플 레이트가 아닌 블록 레이트로 실행됩니다.