Post Process Effect와 Material Instance를 활용해 플레이어의 변신에 드라마틱한 연출 구현하기
요약
- 주요 목표 : 프로젝트의 하이라이트로 보여 줄 시각효과 직접 구현하기
- 해결 방안 :
Post Process Effect와Material을 활용해 직접 광역 Effect 만들기 - 이루어낸 성과 :
- Post Process Effect 활용과 Material의 함수들에 대한 이해
- 주어진 에셋에 제한된 결과물 보단 내 입맛에 맞게 커스터마이징하고 싶은 개발 욕심 충족
Post Process Effect
기획한 캐릭터의 변신과 몬스터 및 주변 사물의 변화에 좀 더 극적인 연출을 주기 위해 게임 Level 전체에 광역효과를 줄 수 있는 Post Process Effect 1 (후보정)을 연구했다
DirectX에서 PostRender단계에 뷰포트에 보여지는 모든 개체에 일괄 효과를 적용해주는 Rasterizer와 Sampler State와 유사한 기능으로 이해했다
기본적으로 Lighting, DOF, Anti-Aliasing 등 조작으로 다양한 연출이 가능하며 Material 객체를 통해 적용하고자 하는 효과를 커스텀 할 수도 있다
원하는 연출이 가능할 것 같아 설레는 마음으로 작업을 진행했다
*UnrealCG의 YouTube 튜토리얼 2내용을 참고한 뒤 스스로 학습하여 구현했습니다
Setting
- 필요한 객체들 추가
*변신 = Transform 이지만 다른 의미의 Transform과의 혼동을 피하기 위해 Transformation으로 선언
| 구분 | 객체명 | 내용 |
|---|---|---|
| Blueprint | BP_Transformation | PostProcessComponent를 가진 액터로 Player Character에 의해 생성 RenderingFeature에 적용할 Material 입력 |
| Material ParameterCollection |
PC_TransformationData | 다수의 Material의 scalar와 vector param값을 관리하고 적용할 수 있는 개체 광역효과 Material을 추가할 경우 등 확장성을 고려한 셋업 |
| Material | M_Transformation | 광역효과 커스텀 |
| Material Instance | MI_Transformation | Post Processc Material에 입력가능한 Material 객체 정의된 Material을 적용한 결과를 실시간 육안으로 확인하며 세부내용 조율가능 |
🤓Material & Material Inst
Material의 세부 도구와 기능들은 Unreal Documentation의 Material Property 3 와 Material Expression 4 그리고 Material Essential Tutorial 5 영상을 보며 참고했다
*Material은 Live Preview가 지원되기 때문에 실시간 적용효과를 직접적으로 확인할 수 있다
- Detail Setting
| 구분 | 설정 | 내용 |
|---|---|---|
| Material Domain | Post Process | 커스텀 Post Process에 사용될 Material 형식 |
| Blendable Location | Before Tonemapping | Post Process 적용 시점 : 톤 매핑 이전 명도와 색상 계산을 Post Process이후에 하도록 설정 |
- Sphere Mask 구성
효과를 적용할 범위와 위치 그리고 세부효과 적용
| 구분 | 표현식 | 내용 |
|---|---|---|
| Sphere Mask | SphereMask | 적용할 Post Process의 위치와 범위 설정 |
| Outline | SampleSceneDepth | 아웃라인 표현 강도 설정 |
| Scene Texture | OriginalSceneTexture | ID : PostProcessInput0 기존 Scene의 Texture값 유지 |
| Texture Overlay | MaterialFunctionCall : WorldAlignedTexture |
Tiles a texture in worldspace 월드스페이스에 입력된 Texture 적용 |
- PostProcess효과 예외 설정
배경 및 상호작용이 불필요한 오브젝트의 시각적 구분을 위한 PostProcess 제외 처리
Custom Depth 설정
Custom Depth - Scene Depth
- 범위 외 효과
하늘을 포함한 PostProcess가 적용되는 범위 밖 일괄 효과 적용
Application
Player의 변신으로 연쇄 발동될 효과 연출들 도표로 정리
Event Dispatch
Update Stream Level
Update Skeletal Mesh
Update Player Mode
생각정리
Reference
-
Unreal Engine. Unreal Engine Documentation. Post Process Effects ↩
-
UnrealCG. YouTube. Outline Transition Effect V.2 - Postprocess Tutorial ↩
-
Unreal Engine. Unreal Engine Documentation. Material Property ↩
-
Unreal Engine. Unreal Engine Documentation. Material Expression Reference ↩
-
Unreal Engine. Community. Unreal Material Essential Concepts ↩