PostProcessor
PrismStudio의 Point
에서 사용되는 PostProcessor는, 이름 그대로 Point 오브젝트에 후처리를 해주는 역할을 하도록 설계되었습니다.
MonoBehaviour
를 상속받고 있기에, 모듈과 비슷하게 Unity에서 어려움 없이 쉽게 만들 수 있습니다.
PostProcessor 덕분에, 말로는 쉽지만 그것을 애니메이션 키프레임으로 만들기에는 불편하고 복잡한 부분을 쉽고 간단하게 구현할 수 있게 됩니다.
예를 들어 Dolly 트랙을 사용하는 카메라에 가상 손떨림을 추가하여 자연스러움을 더하고 싶다면, 기본으로 탑재되어 있는 CameraShake
PostProcessor를 사용하여 아주 쉽게 후처리를 할 수 있게 됩니다.
警告
PostProcessor 오브젝트는 항상 Point
오브젝트의 자식 오브젝트인 PostProcessors
에 배치되어야 합니다.
Module과는 다르게, PostProcessor는 독립적으로 작동할때 그냥 MonoBehaviour
와 다를 바 없이 작동하게 됩니다.
예시
아래는 PostProcessor를 상속하는 커스텀 포스트프로세서의 예시 코드입니다.
ExamplePostProcessor.cs의 부분
public class ExamplePostProcessor : PostProcessor
{
// 이 함수는 Point가 VRChat에 카메라 위치를 전송하기 전에 순서대로 호출되는 함수입니다.
// 매개변수로 받은 data를 변경하고 이를 반환하여 후처리를 합니다.
public override ProcessData Process(ProcessData data)
{
// 위치의 Y축에 1만큼 값을 추가합니다.
data.position += new Vector3(0, 1, 0);
// EulerAngle.z를 항상 0으로 설정, 카메라의 각도에서 틸트를 제거합니다.
data.rotation.eulerAngles = new Vector3(data.rotation.eulerAngles.x, data.rotation.eulerAngles.y, 0);
// 최종적으로 후처리된 데이터를 반환합니다.
return data;
}
}