Post-Processing Controller
유니티에 내장된 포스트 프로세싱 효과는 MonoBehaviour가 아닌 ScriptableObject로 제공되기 때문에 애니메이션 클립, 타임라인 등에서 키프레이밍 할 수 없습니다.
Post-Processing Controller는 이러한 제한사항을 극복하기 위해 포스트 프로세싱 효과의 각 파라미터를 직렬화해서 제공합니다.
단순히 Volume 컴포넌트가 부착된 게임 오브젝트에 추가하기만 해도, 애니메이션 클립, 타임라인에서 포스트 프로세싱 효과를 키프레이밍 할 수 있습니다!
특징
– 포스트 프로세싱 효과를 MonoBehaviour에서 애니메이션에 키프레이밍하는 방식과 동일하게 사용할 수 있습니다.
– 활성화 되고 값이 변한 변수들에 대해서만 업데이트를 실시합니다.
– 기존의 포스트 프로세싱 GUI와 동일한 GUI를 제공합니다.
– 포스트 프로세싱 프로필의 효과 순서를 자동으로 반영합니다.
– 사용하지 않는 효과는 자동으로 숨길 수 있습니다.
– 유니티 2019LTS, 2020LTS, 2021.2에서 테스트 되었습니다.
– URP. HDRP를 지원합니다.
– 분리된 Asmdef를 제공합니다.
– 유니티 에디터의 Enter Play Mode 설정에서도 문제 없이 사용 가능합니다.
사용 방법은 매우 간단합니다.
패키지 안에는 <PostProcessing Controller>라는 오직 하나의 MonoBehaviour 스크립트가 있습니다.
PostProcessingController는 Volume Profile에 속하는 구성 요소의 매개 변수를 내부적으로 클래스가 아닌 구조체로 제공하는 스크립트입니다. 이는 Unity가 검사기 내에서 직렬화된 클래스를 애니메이션화할 수 없기 때문입니다.
먼저 볼륨이 포함된 Game Object에 Post Processing 컨트롤러를 연결합니다. Post Processing Controller는 볼륨을 자동으로 캐시합니다.
스크립트는 다른 GameObject에 있어도 작동하지만 동일한 GameObject에 연결하는 것이 좋습니다.
Post Processing Controller가 연결되면 Volume의 모든 파라미터가 PostProcessing Controller에서 업데이트됩니다. Volume에 속하는 구성 요소의 파라미터를 변경하려면 Volume 대신 PostProcessing Controller에서 변경할 수 있습니다.
그 후에는 다른 MonoBehaviour 스크립트를 애니메이션 하듯이 사용하기만 하면 됩니다!
일부 필드는 GUI를 그리는 과정으로 인해 애니메이션이 기록 중임에도 불구하고 빨간색으로 표시되지 않을 수 있습니다. (Lift Gamma Gain의 트랙볼 필드같은 경우)
자세한 내용은 제한사항 탭을 참조해주세요.
PostProcessing Controller는 프레임마다 활성 구성 요소 모듈을 업데이트합니다. 성능에 미치는 영향을 최소화하기 위해 모든 업데이트는 값이 변경되었는지 확인하고 값이 변경된 경우에만 실제 업데이트를 실행합니다.
만약 애니메이션 클립에 파라미터가 바인딩되어서 재생되고 있더라도, 실제 Volume Profile에 있는 항목이 비활성화되어있다면 렌더링 업데이트가 일어나지 않기 때문에 성능 비용이 거의 들지 않습니다. 오직 애니메이션에서 일반적인 변수 하나를 변경하는 만큼의 비용만 있을 뿐입니다.
PostProcessing Controller는 VolumeProfile에서 값이 변경된 각 변수의 값만 설정하는 스크립트이기 때문에 중요한 것은 각 구성 요소 자체의 렌더링 비용입니다. 따라서 포스트 프로세싱 효과의 성능을 최적화하려면 Unity의 볼륨 설명서를 참조하는 것이 좋습니다.
– <ColorCurves> 구성 요소를 애니메이션화할 수 없습니다.
구성 요소의 필드 유형이 애니메이션화할 수 없는 유형이기 때문입니다.
이 구성 요소를 애니메이션화하려면 값이 다른 두 개의 Post Processing Volume의 가중치를 조정하여 혼합하는 것이 좋습니다.
– PostProcessing Controller는 이름에서 알 수 있듯이 Post-Processing 효과에만 작동합니다.
예를 들어, HDRP에는 Post Processing 외에도 여러 Volume 컴포넌트가 있지만 이 스크립트는 Post Processing에만 적용됩니다.
– Quality 드롭다운을 애니메이션화할 수 없습니다.
이 필드는 다른 필드의 프리셋일 뿐이라서, Quality에 영향을 미치는 변수를 애니메이션하면 자동으로 “Quality == Custom”을 설정하는 것과 같아집니다.
– 일부 필드는 애니메이션을 녹화하고 있지만 빨간색으로 표시되지 않습니다.
하지만 GUI를 그리는 과정의 문제일 뿐이고, 실제로는 잘 작동합니다.
키프레이밍 중에 헷갈린다면 애니메이션 창에서 바인딩된 속성을 확인하여 필드가 제대로 기록되고 있는지 확인하시는게 좋습니다.
– URP와 HDRP만 지원합니다.
Links List
Address List
BUSINESS
olivecrow.games@gmail.com
BUG REPORT & QUESTION
olivecrow.report@gmail.com
olivecrow
Indie Game Developer