내일 배움 캠프 사전진행캠프 프로젝트 진행하던 중에 시네마틱 한 영상을 만들어보고 싶어서 구현하게 된 기능입니다.
1. BlinkMaterial 만들기
눈 깜빡임 효과를 위한 Post Process Material을 생성합니다.
1.1 머티리얼 생성
- 콘텐츠 브라우저에서 우클릭 → Create Material을 선택합니다.
- 이름을 M_BlinkMaterial로 설정합니다.
- 머티리얼의 Material Domain을 Post Process로 변경합니다.
1.2 Scene Texture로 카메라 화면 표시
- Scene Texture 노드 추가:
- Scene Texture를 그래프에 추가하고 Scene Texture ID를 PostProcessInput0으로 설정합니다.
- Scene Texture 출력을 화면에 표시:
- Scene Texture의 출력을 Emissive Color에 연결합니다.
- Emissive Color에 연결 시 SM6 에러가 발생합니다.
- 여기서 해당 에러는 SceneTexture의 출력과 Emissive Color의 입력 값이 달라서 발생한 현상입니다.
- SceneTexture의 출력 값에서 RGB값만 가져오는 ConstantMask를 통해서 RGB만 선택 후 Emissive Color에 연결하면 에러가 해결됩니다.
1.3 Radial Gradient와 결합
- Radial Gradient Exponential 추가:
- 중심에서 부드럽게 확장되는 원형 패턴을 생성.
- Linear Interpolate (Lerp) 추가:
- Scene Texture(카메라 화면)와 Black(Constant3Vector)을 Lerp로 결합.
- Lerp의 Alpha 입력에 Radial Gradient Exponential 출력을 연결.
- BlinkProgress 파라미터 추가:
- Scalar Parameter(BlinkProgress)를 만들어 Radial Gradient의 Radius 또는 Exponent를 제어.
- BlinkProgress 값을 0(눈 감음)에서 1(눈 뜸)으로 조정 가능.
2. Dynamic Instance Material 생성 후 Camera에 연결하기
2.1 Dynamic Material Instance 생성
- 블루프린트 열기:
- Event Graph에서 Begin Play 이벤트를 추가.
- Create Dynamic Material Instance 노드 추가:
- Source Material에 M_BlinkMaterial을 선택.
- 출력값을 변수(DynamicMaterial)로 저장.
2.2 Post Process Settings 생성
- Dynamic Material에서 Make Weighted Blendable 생성
- Weight값은 1.0으로 설정합니다.
- Make Array 연결 후 Make Weighted Blendables(복수) 연결
- Make Post Process Settings 생성 후 연결
- 해당 부분 생성을 위해서는 카메라(First Person Camera)를 가져옵니다.
- 카메라에서 Set Post Process Settings 노드 추가
- 포스트 프로세스 세팅에서 다시 Make Post Process Settings 생성
- 여기서 해당 노드 클릭 후 디테일을 확인해보시면 Rendering Features칸 → Post Process Materials 체크박스를 클릭하면 연결 가능하게 바뀝니다.
3. 생성한 Dynamic Material에 타임라인을 활용해서 눈 깜빡이는 효과 구현하기
3.1 Timeline 추가
1. Add Timeline 노드를 추가:
- 이름: BlinkTimeline.
- Timeline을 열고(더블클릭) Float Track 생성.
2. Float Track 설정:
- 트랙 위에서 마우스 오른쪽 클릭하면 CurveFloat_0에 키 추가 버튼이 나옵니다.
- 추가한 키프레임을 클릭하면 다음 처럼 시간과 값을 변경할 수 있습니다.
- 시간 0 → 값 0 (눈 감음).
- 시간 1 → 값 1 (눈 뜸).
- 모든 키프레임을 선택한 후 오른쪽 클릭 후 자동을 선택 시 부드러운 키 곡선으로 변경할 수 있습니다
3.2 Scalar Parameter 값 업데이트
- Timeline의 Update 핀에서 Set Scalar Parameter Value 노드를 연결.
- Set Scalar Parameter Value 설정:
- Target: DynamicMaterial.
- Parameter Name: BlinkProgress.
- Value: Timeline의 출력 값(새 트랙 0)을 연결.