머신 러닝 클로스 시뮬레이션 시스템 소개
머신 러닝 클로스 시뮬레이션(Machine-Learning Cloth Simulation) 시스템은 언리얼 엔진에서 퍼포먼스가 높은 고퀄리티 리얼타임 클로스 시뮬레이션을 제공합니다.
이 시스템은 과거에는 오프라인 시뮬레이션으로만 달성할 수 있었던 결과를 실시간으로 생성할 수 있는 학습된 데이터 세트를 사용함으로써 기존의 피직스 기반 모델보다 더 높은 퀄리티를 제공합니다.
머신 러닝 사용의 장점
기존 게임 개발에서는 피직스 솔버를 사용하여 캐릭터 클로딩을 시뮬레이션합니다. 그러나 이 프로세스는 탄력 업데이트에 시간이 걸리고 클로스와 바디 간의 상호작용이 복잡하므로 높은 연산 비용이 필요할 수 있습니다.
머신 러닝 시스템은 사용자를 지원하여 미리 생성된 고퀄리티 시뮬레이션 데이터를 사용하는 모델을 학습시킬 수 있습니다. 이 시스템은 사전 시뮬레이션된 데이터에 준하는 퀄리티의 클로딩 메시를 높은 메모리 효율로 빠르게 생성할 수 있습니다.
기술적 구현
ML 클로스 시뮬레이션 시스템은 매 프레임 캐릭터의 스켈레탈 포즈를 입력으로 받고 선형 블렌드 스킨 처리를 사용하여 베이스 클로스 메시를 디포메이션함으로써 최종 클로스 포즈를 예측합니다. 디포메이션에는 두 가지 주요 컴포넌트가 있습니다.
첫 번째 컴포넌트는 뉴럴 모프 모델과 유사한 저주파 디포메이션(low-frequency deformation)입니다.
이 컴포넌트는 다중 레이어 인식(Multi-layer Perception, MLP) 네트워크로 모델링되며, 스켈레탈 메시 포즈를 입력으로 사용하여 계수 세트를 예측합니다. 저주파 델타는 다음과 같이 계산합니다.
low_frequency_deltas = mean_delta + coeffs * basis그 기본은 트레이닝 시간 때 학습하거나 주성분 분석(PCA)을 사용하여 미리 계산할 수 있습니다.
이 컴포넌트를 학습시키려면 랜덤 포즈 데이터 세트를 준비하고 포즈별로 클로딩이 자리 잡도록 시뮬레이션해야 합니다. 이 컴포넌트의 경우 인간형 캐릭터에는 5000개의 포즈를 권장합니다.
두 번째 컴포넌트는 최근접 이웃(Nearest Neighbor) 검색을 사용하여 계산되는 고주파 디포메이션(high-frequency deformation)입니다.
이 컴포넌트는 첫 번째 컴포넌트로부터 계수를 받아 최근접 이웃 데이터 세트에서의 최근접 이웃 검색에 적용합니다.
high_frequency_deltas = NearestNeighborSearch(coeffs)이 컴포넌트를 위해서는 작지만 다양한 포즈 세트를 준비하고 포즈별로 클로딩이 자리잡도록 시뮬레이션해야 합니다. 인게임 애니메이션의 키 프레임 일부에서 가져온 포즈인 것이 이상적입니다. 최적의 결과를 위해 인간형 캐릭터의 경우 50~100개 포즈를 권장합니다.
이 기법을 사용할 때 버텍스 델타는 다음과 같이 계산됩니다.
vertex_delta = low_frequency_deltas + high_frequency_deltas학습된 데이터 세트의 경우, 언리얼 엔진의 ML 디포머 에디터(ML Deformer Editor)에서 카오스 클로스 제너레이터(Chaos Cloth Generator) 툴을 사용하여 각 포즈의 최종 클로스 위치를 생성할 수 있습니다. 이렇게 하면 클로스를 시뮬레이션하고 실시간으로 사용할 수 있는 지오메트리 캐시를 생성합니다.
아니면 외부 클로스 시뮬레이션 솔버(Houdini Vellum 등)를 사용할 수도 있습니다. 포즈마다 클로스를 자리 잡힐 때까지 시뮬레이션하고 자리 잡힌 클로스를 지오메트리 캐시에 저장합니다. 이 캐시를 언리얼 엔진에 Alembic 파일로 임포트할 수 있습니다.
언리얼 엔진 내에서 지오메트리 캐시를 생성하는 방법을 배우려면 ML 클로스 생성 튜토리얼을 따라 하세요.
최고의 결과를 위해서는 데이터 세트에 가장 연관성 있는 포즈를 수동으로 선택해야 합니다. 그러나 K평균 포즈 생성기(KMeans Pose Generator)를 사용하여 자동 포즈 생성을 수행할 수도 있습니다. 이 생성기는 애니메이션 시퀀스를 받아서 KMeans 알고리즘을 수행하여 가장 가까운 이웃 데이터 세트의 엔트리 목록을 생성합니다.
현재 한계
현재의 시스템 구현에는 한 가지 주요 한계가 있습니다. 클로딩이 의사 스태틱으로 추정된다는 것입니다. 즉, 이 시스템은 주름 같은 셰이프 디테일을 예측할 수 있지만 스윙이나 드레이프 같은 다이내믹 모션은 예측할 수 없습니다.
현재 이 시스템은 바지나 티셔츠처럼 딱 맞는 클로딩에 가장 적합하며 드레스나 망토 같은 느슨한 의상에는 적합하지 않습니다.
에픽 디벨로퍼 커뮤니티에서 ML 디포머 - 최근접 이웃 모델 튜토리얼을 따라 하면서 ML 클로스 시스템의 사용법을 배울 수 있습니다.