데브허브 | DEVHUB | Interactive Vines using Niagara and Position-Based Dynamics | Unreal Fest Stockholm 2025Interactive Vines using Niagara and Position-Based Dynamics | Unreal Fest Stockholm 2025
- Rare는 Niagara와 PBD를 활용하여 바람과 캐릭터 충돌에 반응하는 실시간 상호작용 덩굴 시스템을 개발하여 게임 세계의 역동성을 높였습니다. 🌿
- 이 시스템은 언리얼 엔진의 Niagara (컴퓨트 셰이더, Grid 2D 컬렉션, 데이터 인터페이스) 및 Nanite 메시와 같은 핵심 기능을 통합합니다. ⚙️
- PBD(Position-Based Dynamics)는 물리 솔버로 사용되며, 덩굴을 노드 체인으로 모델링하고 길이 및 충돌 제약 조건을 적용하여 안정성을 확보합니다. 🔗
- 단일 덩굴 체인 내 PBD 해결은 직렬 처리되지만, GPU는 여러 독립적인 덩굴 체인을 병렬로 효율적으로 처리하여 성능을 최적화합니다. 🚀
- 메시 메타데이터(덩굴 길이, 정점 위치, 피벗 위치)는 PBD 노드 할당 및 시뮬레이션을 안내하기 위해 메시 정점 속성에 베이킹됩니다. 📊
- 시뮬레이션 결과(노드 위치, 노멀, 탄젠트)는 렌더 타겟에 기록되며, 덩굴 재질은 이를 샘플링하여 Nanite 메시 정점을 변형하는 '텍스처 조인트 애니메이션(TJA)' 기법을 사용합니다. 🖼️
- Niagara는 파티클 렌더링이 아닌 강력한 컴퓨트 셰이더 플랫폼으로 활용되어 PBD 솔버를 실행하고, Grid 2D 컬렉션에서 노드 데이터를 관리하며 렌더 타겟으로 결과를 출력합니다. 💻
- Nanite 메시와 Niagara의 호환성 문제는 렌더 타겟을 외부에서 생성하여 Niagara 시스템과 재질에 모두 할당함으로써 해결되었으며, 고품질 메시 변형이 가능해졌습니다. ✨
- PBD는 여러 단계를 거쳐 제약 조건(예: 길이, 충돌)을 점진적으로 충족시키는 반복적인 프로세스를 통해 안정적이고 물리적으로 타당한 솔루션으로 수렴합니다. 🔄
- PBD 솔버 로직은 Niagara 내의 커스텀 HLSL 노드를 사용하여 구현되었으며, 외부 헤더 파일을 사용할 때 Niagara 데이터 인터페이스와의 올바른 상호작용을 위한 특정 해결책이 필요했습니다. 🛠️