UDN
Search public documentation:
MotionBlurKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
모션블러 포스트 프로세스 이펙트
|
| 왼쪽: 모션 블러 끈 상태 오른쪽: 모션 블러 켠 상태(로 카메라 빠르게 이동) |
개요
구현
|
| 앞으로 움직이는 플레이어는 이미지 구석쯤에나 모션 블러를 볼 수 있습니다. 전해상도 이미지 부분과 반해상도 모션 블러 이미지 부분이 부드럽게 혼합되는 것을 볼 수 있습니다. |
플레이어 뷰를 회전시킬 때의 모션 블러를 보십시오. 예상된 바지만, 플레이어가 보고 있을 부분은 아닐 것입니다. 보통 눈의 초점은 이미지의 관심있는 부분에 맞춰지며, 그걸 계속 따라갑니다.
눈에 대해서는 모션 블러가 사라질 것입니다. 이런 효과를 흉내내기 위해 적절한 눈 추적 또는 눈 동작 시뮬레이션을 수행해야 할 (테지만 대부분 실패할) 것입니다. 대안으로는:
대부분의 화면 외곽 지역에만 영향을 끼치기 위해, 중요한 게임플레이의 경우 모션 블러를 제한하기 위해, 프레임율을 높이기 위해 모션 블러를 줄이고, 마스킹해 버리는 겁니다.
카메라 모션 블러 에 대해서는 이전 뷰 매트릭스, 현재 뷰 매트릭스, 픽셀 심도를 통해서 2D 모션 벡터를 바로 계산해 버릴 수 있습니다. 오브젝트 모션 블러 에 대해서는 모션 블러링된 오브젝트 (중에서 작거나 천천히 움직이는 것들은 성능상의 이유로 빼버리고, 그 외) 지오메트리 전부를 속도 텍스처라는 것 속에다가 렌더링하여 픽셀별로 벡터를 계산합니다. 이 텍스처 안의 데이터는 VisualizeTexture 콘솔 명령을 사용하면 볼 수 있습니다:
|
| 왼쪽: 게임에서 회전하는 모습. 오른쪽: 같은 씬을 VisualizeTexture 콘솔 명령을 내리고 본 모습. |
|
| 속도 텍스처의 색은 오브젝트 모션을 나타냅니다. 곰정은 카메라/노 오브젝트 모션용입니다. 파랑과 알파 채널은 래디얼 블러 기능에 의해 사용될 수도 있습니다. |
|
| 모션 블러 스키닝을 통해 각기 다른 방향으로 움직이는 바디 부분도 처리가 가능합니다. |
방향성 블러링
|
| 밝은 오브젝트(HDR 콘텐츠)는 모션 블러 덕에 더 밝아 보입니다. |
|
| 소프트 에지 기능을 통해 움직이는 오브젝트 밖에도 모션 블러 효과가 보이게 할 수 있습니다. |
파라미터 조정
Max Velocity (최대 속도)는 원반 내의 모션을 지정된 (화면 폭에 따라 조절되며, 높이와 상관 없이 항상 원형인) 크기로 제한합니다. 이 값은 적정 크기의 내부 상수 일부에 대한 곱수입니다. 1 아래의 수는 벡터를 더욱 심하게 제한하며, 1 위의 수는 블러를 더욱 강조시킵니다만 샘플 수는 동일하게 유지하기에 결과가 (여러 이미지로 나오는 등) 좋지 않습니다.
Motion Blur Amount (모션 블러 양)은 모션 블러 벡터에 대한 스케일입니다. 이 값을 먼저 조정하고서 Max Velocity는 높게 고정시켜 두지 않으면 스케일 변화를 볼 수 조차 없을 것입니다. 엄청난 양이 조그만 반경에 고정되고 마는 것이지요. 그래서 작은 모션도 블러링되기에 전체적인 효과는 모션 블러를 끈 것만 못하게 나올 것입니다.
Full Motion Blur (풀 모션 블러) 체크박스를 통해 카메라 모션 블러를 끌 수 있습니다. 오브젝트 모션 블러만 남습니다.
Camera Rotation Threshold (카메라 회전 한계점)은 카메라 모션 블러가 유지 가능한 카메라의 최대 회전 각도입니다. (카메라 컷에 좋습니다.)
Camera Translation Threshold (카메라 옮기기 한계점)은 카메라 모션 블러가 유지 가능한 카메라까지의 최대 거리입니다. (역시나 카메라 컷에 좋습니다.)
포스트 프로세싱 볼륨이 체인 내 세팅을 덮어쓰게 됨에 유의하십시오.
액터에서 Motion Blur Scale (모션 블러 스케일)을 찾을 수 있습니다. 이 값은 한 때 카메라( 플랫폼 등)와 함께 움직이는 오브젝트의 모션 블러를 끌 때 필요했습니다. 이제 모션 블러가 그런 상대성 이동을 제대로 처리하니 필요 없어 졌습니다. 곧 사라질 테지만, 새로운 구현에 뭘 빼먹은게 있거나 하면 다시 들여놓을지도 모르겠습니다.
모션 블러와의 상호작용
|
| 새로운 방법을 통해 블룸이 오브젝트 이동 경로를 따라 좀 더 어둡게 퍼진 것을 볼 수 있습니다. |
오브젝트나 카메라를 빠르게 움직이고, 세팅만 제대로(높은 최대 속도, 많은 모션 블러 양, 블룸 한계점 대 오브젝트 밝기 모션 블러 소프트 에지 등이) 되어 있으면 이펙트를 확인할 수 있습니다. 그러고 나면 예전에 블루밍된 밝은 부분은 좀 더 퍼지게 되며, 모션 블러를 좀 누그러 뜨릴 수도 있습니다.
알려진 제한사항 및 문제
- 마티네 등에서 수행하는 카메라 컷이 모션 블러에는 문제가 있습니다. 현재 큰 카메라 회전 및 옮기기에는 모션 블러를 끄게 하고 있습니다. 두 값에 대한 한계점을 커스텀화해서 사용할 수 있습니다. 이상적으로 마티네는 이벤트를 만들 테니 유저 에러에 대한 걱정은 한 줌 덜 수 있습니다. 근데 그걸 고쳐도 (게임 코드 같은데) 남는 게 있을 것입니다. 이상적으로 항상 카메라를 움직이고는 점프를 해야지, 안그러면 카메라 스위치가 달리 처리됩니다. 카메라 오브젝트는 (뷰당) 매 프레임마다 재생성되고 있기에 구현하기가 좀 까다롭습니다.
- 높디 높은 Max Velocity 값은 이미지가 여러개로 나타납니다. (픽셀단위 랜덤화를 시도해 봤지만, 결과는 좋지 않았습니다. 성능을 댓가로 샘플을 늘리면 도움이 될테니, 그런 옵션을 추가해야 겠습니다.)
- 모션 블러는 반해상도 씬 입력을 기반으로 하며, 위버 포스트 프로세싱 패스에서 언샘플링되는 반해상도 텍스처로 렌더링됩니다. 보일 수도 있는거죠. (노출 전에) 마스킹을 만져주면 도움이 좀 될 것입니다.
- 편집감 향상을 위해 에디터에서는 모션 블러를 껐습니다. 레디얼 블러에도 영향을 끼칩니다.
쓸만한 콘솔 명령
-
show postprocess - (포스트프로세스 표시) 포스트프로세싱을 모두 켜거나/끕니다.
-
VisualizeTexture - (텍스처 시각화) 중간 버퍼를 살펴봅니다. (예로 반해상도 모션 블러 입력, 속도 텍스처나 모션 블러 출력 등)
-
MotionBlurMaxVelocity - (모션 블러 최대 속도) 포스트 프로세스 세팅을 (트윅 및 디버깅 용으로) 덮어쓰기 위함입니다.
-
MotionBlurAmount - (모션 블러 양) 포스트 프로세스 세팅을 (트윅 및 디버깅 용으로) 덮어쓰기 위함입니다.
-
MotionBlurSoftEdge - (모션 블러 소프트에지) Motion Blur Soft Edge KR
-
MotionBlurSkinning - (모션 블러 스키닝) Motion Blur Skinning KR
-
set skeletalmeshcomponent bforcerefpose 1 - (설정 스켈레탈메시컴포넌트 참조포즈강제여부 1) 애니메이팅되는 오브젝트의 스키닝을 끕니다.
-
slomo 0.1 - (슬로모션 0.1) 월드 시뮬레이션을 느리게 (만들며, 기본값 1은 원래 속도로) 만듭니다.
