본문 바로가기
이펙트 (FX)/이펙트 팁 : Houdini

[Houdini/Unreal] 시네마틱에서 후디니 활용하기 (NDC26, 퍼스트 디센던트)

by Minkyu Lee 2026. 8. 5.

1. 영상 정보

  • 영상 제목: [NDC26-비주얼아트&사운드] [퍼스트 디센던트] 시네마틱에서 후디니 활용하기
  • 채널명: NDC
  • 영상 링크: https://youtu.be/C5vOTiWzZZ4

 

2. 핵심 요약 (Conclusion)

  • 페이셜 토폴로지 매칭 및 이펙트 이식: 블렌드셰이프(BlendShape) 기반의 캐릭터 얼굴 데이터에 이펙트 매시 결합 시 발생하는 토폴로지 깨짐 현상을 해결하기 위해 Attribute Interpolate 및 Point Deform 노드를 활용한 후디니 페이셜 데이터 재구성 워크플로우를 구축했습니다.
  • 파티클 VAT(Vertex Animation Texture) 기반 고품질 액체 구현: 리메시(Remesh) VAT 대비 텍스처 용량을 획기적으로 줄이는 파티클 VAT 방식을 채택하고, 화이트 워터 시뮬레이션 및 모션 블러(Velocity -> Color 텍스처 변환)를 결합하여 스플래시 및 포말의 고해상도 시각 효과를 최적화했습니다.
  • 후디니 x AnimToTexture 플러그인을 통한 대규모 군중 최적화: 애니메이션 프레임 속도를 2~4배 압축해 VAT 용량을 최소화하고, 언리얼 엔진 머티리얼 내 프레임 보간(Frame Interpolation) 및 나이아가라(Niagara) 디스턴스 LOD/스크래치 패드(Scratch Pad)를 적용해 군중 렌더링 성능을 확보했습니다.
  • 스켈레탈 매시(Skeletal Mesh)와 VAT의 하이브리드 결합: 애니메이션 수정 시 매번 VAT를 재구워야 하는 비효율을 해소하고자 본(Bone) 애니메이션 트랙과 VAT 모션을 분리/결합하여 빗물, 전깃불, 체내 기생충 움직임 등을 유연하게 제어하는 테크닉을 개발했습니다.
  • 커스텀 커버처(Curvature) 기반 피(Blood) 이펙트 림 라이트 기법: Curvature 노드로 구한 피 이펙트의 외곽 엣지 데이터를 VAT Position 텍스처의 비어있는 Alpha 채널에 패킹하여, 엔진 머티리얼에서 추가 텍스처 소비 없이 라이팅 독립적 림 라이트, 투과감(Opacity), 환경색 반영을 구현했습니다.

3. 타임라인별 상세 정리

1. 캐릭터 페이셜 데이터 활용법 (00:02:07 ~ 00:08:23)

  • 이슈 배경 (00:02:07 ~ 00:03:08)
    • 컷신 내 캐릭터 얼굴 표면 상처 회복 등 입체적 표현을 위해 이펙트 전용 매시를 부착해야 하는 상황이 존재합니다.
    • 페이셜 데이터는 뼈(Bone) 캡처가 아닌 블렌드셰이프(BlendShape) 속성으로 구동되며, 여기에 매시를 추가/합치면 토폴로지 변경으로 버텍스 인덱스가 바뀌어 표정이 완전히 깨지는 문제가 발생합니다. [02:59]


  • 원인 분석 (00:03:21 ~ 00:04:40)
    • 단순 Attribute Transfer 노드로 속성을 옮기는 방식은 본 캡처와 달리 페이셜 블렌드셰이프 데이터 구조에서 작동하지 않습니다.
    • 캐릭터에 미리 저장된 117가지 표정 데이터가 상호 블렌딩될 때, 버텍스 번호 변경으로 원래 위치 좌표를 상실하기 때문입니다. [04:29]
  • 표정 분리 및 트래킹 포인트 구축 (00:04:41 ~ 00:06:20)
    • ForEach 노드를 돌려 캐릭터 표정 데이터 117개를 각각 분리합니다. [05:04]
    • 실제 배우의 모션 캡처 마커처럼, 3D 캐릭터 표면에 Scatter 노드로 점을 찍고 표면 좌표인 sourceprim과 sourceprimUV 어트리뷰트를 저장합니다. [05:46]
    • 생성된 어트리뷰트를 Attribute Interpolate 노드에 연결하여, 표정이 변할 때 점들이 캐릭터 피부 표면에 물리적으로 고정된 채 움직이도록 고정합니다. [06:08]
  • 매시 변형 및 합성 (00:06:21 ~ 00:07:48)
    • 입체 덩어리 매시: 고정된 점 트래킹 정보에 Point Deform 노드를 연결하여 이펙트 매시가 피부 변형을 정확하게 따라가도록 조절합니다. [06:32]
    • 피부 단면 겹침 매시: 별도의 점 생성을 생략하고 Ray 노드로 sourceprim/sourceprimUV 속성을 생성한 후 곧바로 Attribute Interpolate 노드에 연결합니다. [07:10]
    • 변형이 완료된 두 매시를 하나로 합쳐 BlendShape Add 노드로 결합함으로써 깨짐 없는 원래의 페이셜 블렌드셰이프 데이터를 재구성합니다. [07:32]
  • 엔진 이식 및 검증 (00:07:49 ~ 00:08:23)
    • 본 캡처 데이터는 Attribute Transfer 노드로 다시 가져와 FBX로 익스포트합니다.
    • 언리얼 엔진 이식 결과, 볼의 미세한 떨림 모션까지 매시가 이질감 없이 미끄러짐 없이 정확히 추종하는 것을 검증했습니다. [08:00]

2. 파티클 VAT 기반 물/스플래시 이펙트 구현 (00:08:24 ~ 00:13:30)

  • 액체 이펙트 구현 방식 비교 (00:08:24 ~ 00:10:12)
    • 스프라이트(Sprite) 방식: 근접 카메라 구도에서 해상도 저하가 심함. [08:59]
    • 다이나믹 리메시(Dynamic Remesh) VAT: 디테일 확보 시 2K 텍스처 2장 + 4K 텍스처 1장(총 3장)이 요구되어 비디오 메모리 부담이 큼. [09:45]
    • 파티클 VAT: 1K 이하 텍스처 1장으로 구동이 가능하여 메모리 최적화에 탁월함. [09:55]

 

  • 후디니 2단계 시뮬레이션 파이프라인 (00:10:13 ~ 00:11:53)
    • 1차 (Fluid Sim): Water Tank 기본 플루이드 시뮬레이션 수행. [10:22]
    • Vorticity 추출: 파티클의 Vorticity 속성을 연산하여 공중으로 튀어 오르는 파티클 입자만 선별해 그룹화. [10:44]

    • 2차 (White Water Sim): 그룹화된 파티클을 Emitter로 재활용하여 White Water 시뮬레이션을 재실행. 바닥에 깔리는 둔중한 물 덩어리를 차단하고 공중 스플래시 입자만 분리 추출함. [10:54]
    • 개수 최적화: 런타임 성능 확보를 위해 파티클 총 수량을 대폭 축소. [11:38]

  • 모션 블러(Motion Blur) 구현 및 적용 (00:11:54 ~ 00:13:30)
    • 파티클 VAT 특성상 엔진 기본 모션 블러가 적용되지 않는 한계를 극복해야 합니다. [12:00]
    • 후디니에서 계산된 이동 속도(Velocity) 어트리뷰트를 Color(Cd) 어트리뷰트로 전환한 뒤 텍스처 맵으로 출력합니다. [12:07]

      • 언리얼 엔진 머티리얼 내 VAT 샘플러에 해당 컬러 맵을 연결하고, Multiply 파라미터를 연동하여 모션 블러의 꼬리 길이를 자유롭게 제어합니다. [12:22]
      • 모션 블러를 통해 파티클 사이의 빈 공간이 채워지고 체적감이 보강되어 나이아가라 스플래시 및 포말 데칼 형태의 완성도를 확보했습니다. [12:53]

 

3. 플러그인과 후디니를 조합한 군중(Crowd) VAT 최적화 (00:13:31 ~ 00:19:06)

  • 이슈 설정 (00:13:31 ~ 00:14:33)
    • '루나 콘서트' 컷신 내 다수의 관객 군중 배치가 요구됨. 전체 스켈레탈 매시 배치는 부하가 커서 VAT 기반 렌더링으로 전환이 필수적이었습니다. [13:52]
  • 워크플로우 선택 및 프레임 압축 (00:14:34 ~ 00:16:01)
    • 후디니 표준 VAT 익스포터 대신 언리얼 엔진의 AnimToTexture 플러그인을 결합하는 파이프라인을 채택함. [14:15]
    • 후디니 pre-process: 캐릭터 애니메이션 속도를 2배~4배 축소/배속(Time Shift)하여 버텍스 애니메이션의 총 프레임 길이를 대폭 줄이고 텍스처 용량을 절감함. [15:04]

 

  • 언리얼 엔진 머티리얼 내 재생 복원 (00:16:02 ~ 00:17:26)
    • 머티리얼 내부 연산을 통해 재생 속도를 원래 비율로 느리게 되돌림. [16:02]
    • 나이아가라 Dynamic Parameter를 받아 관객 간 동작 동기화를 방지하는 Time Offset을 적용함. [16:26]
    • 프레임 축소로 인해 발생하는 모션 끊김 현상을 머티리얼 내 프레임 보간(Frame Interpolation) 세팅으로 부드럽게 복원함. [16:43]

  • 나이아가라(Niagara) 및 스케일 제어 (00:17:27 ~ 00:19:06)
    • 나이아가라를 로컬 스페이스(Local Space)로 세팅하여 관객을 배치하되, 액터 스케일 조정 시 캐릭터 매시 자체의 크기가 변형되는 문제를 해결하기 위해 스크래치 패드(Scratch Pad)에서 매시 스케일이 액터 영향을 받지 않도록 구성. [18:17]
      (이 부분은 영상에 자세히 나오지 않음)

    • 카메라 거리 기반 LOD(Level of Detail)를 적용하여 프레임 렌더링 성능을 2배 이상 확보함. [18:54]

 

4. 스켈레탈 매시와 VAT의 결합 (Skeletal Mesh + VAT Hybrid Workflow) (00:19:07 ~ 00:23:13)

  • 컨셉 전환 (00:19:07 ~ 00:20:27)
    • 기존 통 베이킹 방식은 애니메이터의 캐릭터 모션이 수정될 때마다 후디니 입력, VAT 재베이킹, 엔진 재적용 과정을 거쳐야 합니다.
    • 스태틱 매시 전용인 VAT의 구조적 한계를 극복하고, 스켈레탈 매시에 VAT를 직접 탑재하는 하이브리드 워크플로우를 고안함. [19:45]
  • 적용 사례 1: 빗물 흘러내림 이펙트 (00:20:28 ~ 00:22:10)
    • 흘러내리는 빗물 컬러 애니메이션 궤적을 VAT 텍스처로 베이킹. [20:39]
    • Attribute Transfer 노드로 본 캡처(Bone Capture) 속성을 매시에 이식하여 강제로 스켈레탈 매시화 함. [21:00]
    • 캐릭터 전체 신체 동작은 애니메이터의 스켈레탈 본 모션을 따르고, 표면 빗물의 타이밍과 속도 등 서브 모션은 VAT 파라미터로 독립 제어함. [21:24]

  • 적용 사례 2: 팔 전깃불 및 체내 기생충 이펙트 (00:22:11 ~ 00:23:13)
    • 전깃불 이펙트: T-포즈 팔 둘레에 루핑되는 전기 메쉬를 VAT로 제작 후 본 캡처 이식. 팔 관절 모션은 스켈레탈 본을 따라가고 전기의 모듈레이션은 VAT 파라미터로 처리함. [22:23]
    • 기생충 이펙트 ('다이아' 스토리 컷신): 캐릭터 몸속에서 꿈틀거리며 기어 올라가는 파동 모션을 T-포즈 VAT로 구동하고, 신체 스켈레탈 본 애니메이션과 결합하여 제어함. [22:55]

 

5. 커버처 기반 림 라이트 및 환경색 피 이펙트 (00:23:14 ~ 00:26:59)

  • 문제점 인식 (00:23:14 ~ 00:24:23)
    • 피(Blood) 이펙트는 배치 각도나 환경 씬의 라이팅 조건에 따라 지나치게 어둡거나 평면적(Flat)으로 뭉개지는 현상이 발생함 (2019 SIGGRAPH Mortal Kombat 연구 참조). [23:41]

  • 후디니 Curvature 추출 및 텍스처 패킹 (00:24:24 ~ 00:25:46)
    • 후디니 Curvature 노드를 통해 피 지오메트리의 외곽 엣지 영역 곡률 수치를 정밀하게 추출. [24:36]
    • VAT 내보내기 시 일반적으로 비어있는 Position 텍스처의 Alpha 채널(Position.A)에 추출한 Curvature 어트리뷰트 수치를 직접 저장함 (텍스처 패킹 최적화). [25:22]

 

  • 언리얼 엔진 머티리얼 응용 (00:25:47 ~ 00:26:59)
    • Position.A 채널의 곡률 데이터를 추출하여 엔진 내 노멀, 리플렉션, 오퍼시티(Opacity) 연산에 결합함. [25:47]
    • 투과감 조절: 액체 중앙부는 얇은 막처럼 맑게 투과시키고 외곽 림(Rim) 부분은 두꺼운 질감의 림 라이트를 부여하여 입체감 극대화. [26:10]
    • 환경색 앰비언트(Environment Tint): 커버처 영역에 씬 주변 환경의 앰비언트 컬러를 반영되도록 처리하여 환경 조명에 자연스럽게 동화되는 Blood 이펙트를 완성함. [26:29]

댓글