방사상 모션 블러 사용하기

머티리얼에 방사상 모션 블러를 구성하는 방법을 설명하는 페이지입니다.

Choose your operating system:

Windows

macOS

Linux

필요한 사전지식

이 페이지의 콘텐츠를 이해하고 활용하기 위해 다음 주제를 숙지해 주세요.

PerBoneMotionBlurTopicImage-1.png

언리얼 엔진에서 지원하는 표준 모션 블러(Motion Blur) 는 오브젝트 표면상의 한 포인트가 프레임 간에 직선으로 움직인다고 가정하며, 이전 프레임에서의 포인트 위치 정보를 사용하여 블러 이펙트를 적용합니다.

한 지점에서 다른 지점으로 이동하는 오브젝트의 경우 이 방식이 효과적입니다. 하지만 빠르게 굴러가는 자동차 바퀴처럼 한 프레임 안에서 180도 회전하는 오브젝트에 이 방법을 사용하면 시각적 오류가 발생합니다. 이 경우 모션 블러는 바퀴의 한 지점에 주목하여 해당 지점이 원을 그리며 회전한 것이 아니라 바퀴 반대쪽까지 직선으로 움직였다고 인식합니다.

문제 해결을 돕기 위해 방사상 모션 블러(Radial Motion Blur) 특수 머티리얼이 개발되어 무료 언리얼 엔진 콘텐츠 예제(Content Examples) 프로젝트를 통해 공개되었습니다. 이 머티리얼을 사용하면 선형 모션 블러 대신에 방사상 모션 블러를 적용하여 오브젝트가 빠르게 회전하는 것처럼 보이게 만들 수 있습니다. 아래 이미지 예시는 회전하는 오브젝트에 표준 모션 블러를 적용한 결과(왼쪽)와 방사상 모션 블러 머티리얼을 적용한 결과(오른쪽)를 비교한 것입니다.

모션 블러 비교

이 튜토리얼에서는 프로젝트에서 방사상 모션 블러 머티리얼을 구성하는 방법을 단계별로 설명합니다.

필수 구성

이 튜토리얼에는 콘텐츠 예제(Content Examples) 샘플 프로젝트에 포함된 에셋이 필요합니다. 이 샘플 프로젝트가 없다면 에픽게임즈 런처의 학습(Learn) 탭에서 다운로드 후 설치해 주세요.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

콘텐츠 예제(Content Examples) 프로젝트의 Materials_Advanced 맵에서 방사상 모션 블러의 예시를 확인할 수 있습니다.

M_RadialMotionBlur 베이스 머티리얼은 복잡하기 때문에 이 튜토리얼에서 전체 제작 방법을 설명할 수는 없습니다. 이 베이스 머티리얼 그래프를 살펴보고 싶다면 콘텐츠 브라우저의 콘텐츠(Content) > Example Content > Materials > Materials 에서 머티리얼 에셋을 찾을 수 있습니다.

방사상 모션 블러 베이스 머티리얼 위치

이 튜토리얼의 목적상 여기서는 콘텐츠 브라우저에 있는 아래의 에셋을 사용하여 방사상 모션 블러 예시를 다시 만들어 보겠습니다.

  • SM_Wheel - 스태틱 메시

  • SM_Wheel_Blur - 스태틱 메시

  • MI_RadialMotionBlur - 머티리얼 인스턴스

여러분의 프로젝트에서 방사상 모션 블러 머티리얼을 사용하고 싶다면, 콘텐츠 브라우저 에서 MI_RadialMotionBlur 머티리얼을 우클릭한 뒤 컨텍스트 메뉴에서 에셋 액션(Asset Actions) > 이주(Migrate) 를 선택하면 됩니다.

에셋 이주 툴

에셋 이주 툴은 MI_RadialMotionBlur와 베이스 머티리얼인 RadialMotionBlur를 자동으로 이주에 포함합니다. 자세한 내용은 에셋 이주하기 가이드를 참조하세요.

단계

  1. 언리얼 에디터를 닫습니다. 프로젝트 폴더에서 Config 폴더로 이동하여 DefaultEngine.ini 파일을 찾습니다.

    이미지를 클릭하면 확대됩니다.

  2. 텍스트 에디터로 DefaultEngine.ini 를 열고 [/Script/Engine.RendererSettings] 항목에 r.CustomDepth=3 을 추가합니다.

    커스텀 뎁스 3

  3. 방사상 모션 블러에는 두 개의 스태틱 메시 가 필요합니다. 바로 방사상 모션 블러를 적용할 메시와 커버에 사용할 ‘더미' 메시입니다. 더미 메시는 블러 처리될 오브젝트뿐 아니라 회전 과정에서 오브젝트가 지나가는 공간도 완전히 커버할 수 있어야 하며, 원본 오브젝트의 지오메트리와 교차하지 않도록 오브젝트가 지나가는 공간에 최대한 가까워야 합니다.

    이미지를 클릭하면 확대됩니다.

    위의 예시에서 블러를 적용할 메시에는 표준 머티리얼이 있고, '더미' 메시는 노란색 와이어프레임으로 표시된 헐(hull)로 둘러싸여 있습니다. 이미지에서 볼 수 있듯 더미 메시는 스태틱 메시를 침범하지 않고 딱 붙어 감싸고 있습니다. 다른 메시를 사용해도 좋지만, 이 가이드에서는 SM_WheelSM_Wheel_Blur 에셋을 사용하겠습니다. 두 메시는 Content/ExampleContent/Materials/Meshes 의 콘텐츠 예제(Content Examples) 프로젝트에 위치해 있습니다.

    SM_Wheel 스태틱 메시 위치

  4. SM_Wheel 를 씬으로 드래그해 새 스태틱 메시 액터(StaticMeshActor) 를 생성합니다.

    이미지를 클릭하면 확대됩니다.

  5. 스태틱 메시 액터의 디테일 패널(Details Panel) 에서 선택에서 블루프린트 생성(Create Blueprint from Selection) 을 클릭하여 액터를 바탕으로 새 블루프린트를 생성합니다. 블루프린트 이름을 BP_StaticMesh_MotionBlur 로 지정하고 Blueprints 폴더에 저장합니다. 스태틱 메시가 블루프린트 액터 타입으로 변환되고 블루프린트 에디터(Blueprint Editor) 가 자동으로 열립니다.

    이미지를 클릭하면 확대됩니다.

  6. 블루프린트 에디터(Blueprint Editor) 내에서 컴포넌트 패널(Components Panel) 을 찾아 메시에 사용할 스태틱 메시 컴포넌트(StaticMeshComponent) 를 선택합니다. 그리고 디테일 패널(Details Panel)렌더링(Rendering) 에 있는 고급(Advanced) 섹션을 펼칩니다. 커스텀 뎁스 패스 렌더링(Render Custom Depth Pass) 을 True로 설정하고 커스텀 뎁스 스텐실 값(Custom Depth Stencil Value) 을 5로 지정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  7. 컴포넌트 패널(Components Panel) 에서 컴포넌트 추가(Add Component) 버튼을 클릭합니다. 드롭다운 목록에서 스태틱 메시(Static Mesh) 를 선택하면 베이스 메시의 자손으로 새 스태틱 메시 컴포넌트(StaticMeshComponent)가 추가됩니다. 메시 이름을 'MotionBlur Mesh ' 로 변경합니다.

    스태틱 메시 컴포넌트 추가

  8. 디테일 패널(Details Panel) 에서 MotionBlur 메시의 스태틱 메시를 SM_Wheel_Blur 로 지정합니다. 베이스 메시에 맞춰 x축을 기준으로 90° 회전시킵니다. 머티리얼(Materials) 섹션에 MI_RadialMotionBlur 머티리얼 인스턴스가 적용되어 있어야 합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

결과

이제 MI_RadialMotionBlur 머티리얼 인스턴스가 적용된 베이스 메시가 아주 빠르게 회전하는 것처럼 보일 것입니다. 아래 이미지는 일반적인 정적 스태틱 메시(왼쪽)와 베이스 메시를 둘러싼 더미 메시에 RadialMotionBlur가 적용된 메시(오른쪽)를 비교한 것입니다.

MotionBlur_FinalResult.png

베이스 메시나 액터를 회전시키지 않아도 회전 효과를 낼 수 있습니다. RadialMotionBlur 머티리얼이 오브젝트가 회전하는 것 같은 착시 효과를 만들어 내기 때문입니다. MI_RadialMotionBlur 머티리얼 인스턴스에 있는 각도(Angle)림 반경(RimRadius) 파라미터를 사용하여 이펙트를 조정할 수도 있습니다.

방사상 블러 머티리얼 인스턴스

아래의 두 이미지 시퀀스는 각도(Angle) 와 림 반경(RimRadius) 머티리얼 입력이 방사상 블러의 모양에 미치는 영향을 보여줍니다.

각도(Angle) 파라미터로 방사상 블러의 강도를 조절할 수 있습니다. 값이 높을수록 오브젝트 회전 속도가 더 빨라 보입니다.

림 반경(RimRadius) 파라미터는 방사상 블러를 통해 표현되는 블러 효과를 제한합니다. 이 파라미터는 방사상 블러에 사용되는 메시의 반경에 맞게 설정해야 합니다.

이렇게 만든 새 액터 타입을 재사용하면 방사상 모션 블러 이펙트가 적용되는 모든 종류의 오브젝트를 만들 수 있습니다. 베이스 메시와 더미 메시에 모두 사용되는 스태틱 메시를 변경할 때에는 더미 메시가 RadialMotionBlur 머티리얼의 머티리얼 인스턴스를 사용해야 합니다. 더미 메시는 베이스 메시가 회전할 때 지나가는 공간에 최대한 딱 맞아야 한다는 점을 기억하세요.

여러 모양에 대한 방사상 모션 블러

마지막으로, 오브젝트마다 다른 세팅을 적용하려면 RadialMotionBlur 머티리얼을 바탕으로 새 머티리얼 인스턴스를 만들고 원하는 세팅을 설정하세요. 머티리얼 인스턴스 생성에 대한 자세한 정보는 머티리얼 인스턴스 생성 및 사용법 가이드를 참조하세요.

태그