머신 러닝 클로스 시뮬레이션 시스템 소개

머신 러닝 클로스 시뮬레이션(Machine-Learning Cloth Simulation) 시스템은 언리얼 엔진에서 퍼포먼스가 높은 고퀄리티 리얼타임 클로스 시뮬레이션을 제공합니다.
이 시스템은 과거에는 오프라인 시뮬레이션으로만 달성할 수 있었던 결과를 실시간으로 생성할 수 있는 학습된 데이터 세트를 사용함으로써 기존의 피직스 기반 모델보다 더 높은 퀄리티를 제공합니다.
머신 러닝 사용의 장점
기존 게임 개발에서는 피직스 솔버를 사용하여 캐릭터 클로딩을 시뮬레이션합니다. 그러나 이 프로세스는 탄력 업데이트에 시간이 걸리고 클로스와 바디 간의 상호작용이 복잡하므로 높은 연산 비용이 필요할 수 있습니다.
머신 러닝 시스템은 사용자를 지원하여 미리 생성된 고퀄리티 시뮬레이션 데이터를 사용하는 모델을 학습시킬 수 있습니다. 이 시스템은 사전 시뮬레이션된 데이터에 준하는 퀄리티의 클로딩 메시를 높은 메모리 효율로 빠르게 생성할 수 있습니다.
기술적 구현

ML 클로스 시뮬레이션 시스템은 매 프레임 캐릭터의 스켈레탈 포즈를 입력으로 받고 선형 블렌드 스킨 처리를 사용하여 베이스 클로스 메시를 디포메이션함으로써 최종 클로스 포즈를 예측합니다. 디포메이션에는 두 가지 주요 컴포넌트가 있습니다.
첫 번째 컴포넌트인 저주파 디포메이션(low-frequency deformation) 은 뉴럴 모프 모델과 유사하지만, 버텍스 델타를 출력하는 대신 네트워크가 주성분 분석(Principal Component Analysis, PCA) 계수 세트를 출력합니다.
이 기법을 사용할 때 PCA 델타는 다음과 같이 계산됩니다.
pca_delta = mean_delta + pca_coeff * pca_basis
이 컴포넌트는 다중 레이어 인식(Multi-layer Perceptio n, MLP) 네트워크로 모델링되며, 스켈레탈 메시 포즈를 입력으로 사용하여 PCA 계수를 예측합니다. 이 컴포넌트를 학습시키려면 랜덤 포즈 데이터 세트를 준비하고 포즈별로 클로딩이 자리 잡도록 시뮬레이션해야 합니다. 이 컴포넌트의 경우 인간형 캐릭터에는 5,000개의 포즈를 권장합니다.
두 번째 컴포넌트는 가장 가까운 이웃(Nearest Neighbor) 모델을 사용하여 계산되는 고주파 디포메이션(high-frequency deformation) 입니다. 이는 ML 디포머(ML Deformer) 모델의 베리에이션입니다.
이 컴포넌트는 첫 번째 컴포넌트로부터 PCA 계수를 받아 가장 가까운 이웃 데이터 세트에서의 가장 가까운 이웃 검색에 적용합니다. 이 컴포넌트를 위해서는 작지만 다양한 포즈 세트를 준비하고 포즈별로 클로딩이 자리잡도록 시뮬레이션해야 합니다. 인게임 애니메이션의 키 프레임 일부에서 가져온 포즈인 것이 이상적입니다. 최적의 결과를 위해 인간형 캐릭터의 경우 50~100개 포즈를 권장합니다.
이 기법을 사용할 때 버텍스 델타는 다음과 같이 계산됩니다.
vertex_delta = pca_delta + nearest_neighbor_delta
학습된 데이터 세트를 위해 원하는 클로스 시뮬레이션 솔버(Houdini Vellum 등)를 사용하여 각 포즈의 최종 클로스 위치를 생성할 수 있습니다. 포즈마다 클로스를 자리 잡힐 때까지 시뮬레이션하고 자리 잡힌 클로스를 지오메트리 캐시에 저장합니다. 이 캐시를 언리얼 엔진에 Alembic 파일로 임포트할 수 있습니다.
최고의 결과를 위해서는 데이터 세트에 가장 연관성 있는 포즈를 수동으로 선택해야 합니다. 그러나 K평균 포즈 생성기(KMeans Pose Generator) 를 사용하여 자동 포즈 생성을 수행할 수도 있습니다. 이 생성기는 애니메이션 시퀀스를 받아서 KMeans 알고리즘을 수행하여 가장 가까운 이웃 데이터 세트의 엔트리 목록을 생성합니다.
현재 한계
현재의 시스템 구현에는 한 가지 주요 한계가 있습니다. 클로딩이 의사 스태틱으로 추정된다는 것입니다. 즉, 이 시스템은 주름 같은 셰이프 디테일을 예측할 수 있지만 스윙이나 드레이프 같은 다이내믹 모션은 예측할 수 없습니다.
현재 이 시스템은 바지나 티셔츠처럼 딱 맞는 클로딩에 가장 적합하며 드레스나 망토 같은 느슨한 의상에는 적합하지 않습니다.
에픽 디벨로퍼 커뮤니티에서 ML 디포머 - 가장 가까운 이웃 모델 튜토리얼을 따라 하면서 ML 클로스 시스템의 사용법을 배울 수 있습니다.