PART 3 · 강의 2/3

머티리얼 파라미터 트랙

시퀀서에서 머티리얼 파라미터를 실시간으로 애니메이션하여 동적 시각 효과를 구현합니다

01

머티리얼 파라미터 애니메이션 기초

Dynamic Material Instance와 시퀀서의 연결

시퀀서의 머티리얼 파라미터 트랙은 UMovieSceneComponentMaterialTrack을 사용하여 머티리얼의 Scalar, Vector, Texture 파라미터를 시간에 따라 변경합니다. 내부적으로 Dynamic Material Instance(MID)를 자동 생성하여 파라미터를 수정합니다.

지원 파라미터 타입

타입채널활용 예시
Scalar Parameter Float 채널 1개 Opacity, Emissive 강도, 디졸브
Vector Parameter Float 채널 4개 (RGBA) Base Color 변환, 이미시브 색상
Texture Parameter Object 채널 텍스처 전환 (제한적)

설정 워크플로

  1. 머티리얼에 파라미터 노드 추가 (ScalarParameter, VectorParameter)
  2. 시퀀서에서 액터 트랙 → + Track → Material Element Index
  3. 원하는 파라미터 선택하여 트랙 추가
  4. 키프레임으로 파라미터 값 애니메이션
Material Element Index

하나의 메시에 여러 머티리얼 슬롯이 있을 수 있습니다. 시퀀서에서 트랙 추가 시 Material Element [0], [1] 등으로 인덱스를 선택합니다. 인덱스는 Static/Skeletal Mesh의 머티리얼 슬롯 순서와 동일합니다.

02

디졸브 효과 구현

Scalar Parameter를 활용한 등장/퇴장 연출

디졸브 머티리얼 구조

Material Graph 노드 구성
// 디졸브 머티리얼 구성 // 1. ScalarParameter "DissolveAmount" (0~1) // 2. Noise Texture 또는 Procedural Noise // 3. 비교: if (Noise < DissolveAmount) then Clip // Material Graph: // [ScalarParam: DissolveAmount] ----> [If A<B] // [Noise Texture: R channel] -------> [If A<B] → Opacity Mask // | // [Emissive Color * EdgeGlow] -----> [Emissive] (에지 글로우) // 시퀀서에서: // Frame 0: DissolveAmount = 0.0 (완전 보임) // Frame 120: DissolveAmount = 1.0 (완전 사라짐)

에지 글로우 추가

디졸브 경계에 이미시브 글로우를 추가하면 시각적으로 풍성한 효과를 얻습니다. DissolveAmount 값 근처의 좁은 범위를 감지하여 Emissive에 연결합니다.

디졸브 커브 팁

커브 에디터에서 DissolveAmount를 Ease In으로 설정하면 처음에는 천천히, 나중에는 빠르게 사라지는 극적인 디졸브가 됩니다. 반대로 Ease Out은 빠르게 시작되어 마지막에 천천히 사라집니다.

03

Vector 파라미터 활용

색상 변환과 이미시브 효과

색상 전환 애니메이션

Vector Parameter를 사용하면 머티리얼의 색상을 시간에 따라 변경할 수 있습니다. 시퀀서에서 R, G, B, A 채널을 독립적으로 키프레임할 수 있습니다.

시퀀서 키프레임 예시 - 색상 전환
// VectorParameter: "EmissiveColor" // 평상시: 파란색 글로우 (0.0, 0.3, 1.0) // 분노 시: 빨간색 글로우 (1.0, 0.0, 0.0) // Frame 0: R=0.0, G=0.3, B=1.0 (파란색) // Frame 30: R=1.0, G=0.5, B=0.0 (주황색 - 중간 전환) // Frame 60: R=1.0, G=0.0, B=0.0 (빨간색) // 이미시브 강도도 함께 애니메이션 // ScalarParameter: "EmissiveIntensity" // Frame 0: 5.0 (기본) // Frame 30: 15.0 (피크) // Frame 60: 10.0 (분노 상태)

다중 머티리얼 동기화

여러 머티리얼 슬롯에 동일한 파라미터 이름을 사용하면, 각 슬롯의 트랙을 동시에 키프레임하여 메시 전체의 일관된 색상 변환을 구현할 수 있습니다.

Material Parameter Collection (MPC)

여러 액터의 머티리얼 파라미터를 한꺼번에 제어하려면 Material Parameter Collection을 사용하는 것이 효율적입니다. MPC의 파라미터도 시퀀서에서 트랙으로 추가하여 키프레임할 수 있습니다.

04

C++에서 머티리얼 제어

프로그래밍으로 동적 머티리얼 관리

C++ - Dynamic Material Instance 생성 및 파라미터 제어
// 컴포넌트에서 Dynamic Material Instance 생성 UMaterialInstanceDynamic* MID = MeshComp->CreateDynamicMaterialInstance(0); // 슬롯 0 // Scalar 파라미터 설정 MID->SetScalarParameterValue("DissolveAmount", 0.5f); // Vector 파라미터 설정 MID->SetVectorParameterValue( "EmissiveColor", FLinearColor(1.0f, 0.0f, 0.0f, 1.0f) // 빨간색 ); // Texture 파라미터 설정 MID->SetTextureParameterValue("NoiseTex", NoiseTexture); // Material Parameter Collection으로 전역 제어 UMaterialParameterCollectionInstance* MPCInst = GetWorld()->GetParameterCollectionInstance(MyMPC); MPCInst->SetScalarParameterValue("GlobalDissolve", 0.7f);
시퀀서 vs C++ 충돌

시퀀서가 활성 상태에서 같은 파라미터를 C++에서 수정하면 매 프레임 시퀀서가 값을 덮어씁니다. 시퀀서 재생 중에는 C++ 측에서 직접 파라미터를 수정하지 마세요. 대신 시퀀서의 Event 트랙을 통해 C++ 함수를 호출하는 패턴을 사용합니다.

SUMMARY

핵심 요약

  • 머티리얼 파라미터 트랙은 Scalar, Vector, Texture 파라미터를 시간에 따라 애니메이션한다
  • 시퀀서가 내부적으로 Dynamic Material Instance를 자동 생성하여 파라미터를 수정한다
  • 디졸브 효과는 ScalarParameter + Noise 텍스처 + Opacity Mask 조합으로 구현한다
  • Vector 파라미터의 R, G, B, A 채널을 독립적으로 키프레임하여 색상 전환을 구현한다
  • Material Parameter Collection으로 여러 액터의 파라미터를 한꺼번에 시퀀서에서 제어할 수 있다
  • 시퀀서 재생 중에는 C++에서 동일 파라미터를 직접 수정하면 충돌이 발생한다
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 머티리얼 파라미터 애니메이션

Dynamic Material Instance 사용 Actor를 시퀀서에 추가하고, Scalar Parameter Track으로 Emissive Intensity를 0에서 10으로 애니메이션하여 서서히 빛나는 효과를 만드세요.

실습 2: 다중 파라미터 동시 제어

Color Parameter와 Scalar Parameter를 동시에 애니메이션하여 색상 변화와 투명도 변화가 함께 일어나는 효과를 만드세요. 커브 에디터에서 타이밍을 정밀 조정하세요.

심화 과제: 환경 전환 시퀀스

낮에서 밤으로 전환되는 시퀀스를 구현하세요. 건물 창문 Emissive, 가로등 발광, 하늘 색상 그라디언트를 동시에 애니메이션하여 완전한 시간대 전환을 연출하세요.