머신 러닝(Machine Learning, ML) 디포머 는 언리얼 엔진 의 프레임워크로, 런타임 시 캐릭터 및 오브젝트를 위한 고퀄리티 메시 디포메이션을 얻는 데 사용할 수 있습니다. 원하는 메시 디포메이션 데이터가 포함된 Alembic 파일( .abc )을 사용하면 언리얼 엔진의 ML 디포머 모델 중 하나를 트레이닝하여 런타임 시 퍼포먼스가 뛰어난 이 고퀄리티 메시 디포메이션에 근접한 결과물을 만들 수 있습니다.
ML 디포머 트레이닝 프로세스는 다음과 같은 3가지 입력에 의존합니다.
- 스켈레탈 메시 에셋
- 여러 위치에서 다양한 모션의 포즈를 취하는 캐릭터의 애니메이션 시퀀스 에셋
- 해당 포즈의 원하는 메시 디포메이션이 포함된 지오메트리 캐시
ML 디포머 프레임워크는 이 3가지 입력을 사용하여 트레이닝된 ML 디포머 에셋을 출력합니다. 이 에셋을 캐릭터 블루프린트의 ML 디포머 컴포넌트 와 조합해서 사용하여 런타임 시 메시 디포메이션을 선택할 수 있습니다.
ML 디포머 에디터에는 런타임 시 고퀄리티 메시 디포메이션을 구현하기 위해 트레이닝 프로세스를 미세조정하고 테스트하는 데 사용할 수 있는 툴세트 및 세팅이 포함됩니다.
다음 문서는 언리얼 엔진의 ML 디포머 프레임워크에 대한 개요로, ML 디포머 에셋, ML 디포머 에디터, ML 디포머 컴포넌트에 대한 레퍼런스 자료가 포함되어 있습니다. 또한 이 문서에는 뉴럴 모프 모델 및 최근접 이웃 모델 등 ML 디포머 시스템을 트레이닝하는 데 사용되는 다양한 ML 디포머 모델에 대한 정보도 포함되어 있습니다.
전제 조건
- ML 디포머 프레임워크(ML Deformer Framework) 는 사용 전에 활성화해야 하는 플러그인입니다. 언리얼 엔진 메뉴에서 편집(Edit) > 플러그인(Plugins) 으로 이동하여 Animation 섹션에서 ML Deformer Framework 를 찾아서 활성화합니다. 플러그인을 활성화한 후에는 에디터를 다시 시작해야 합니다.
- 언리얼 엔진과 Autodesk Maya에서 모두 사용할 수 있는, 메시 및 스켈레톤이 포함된 캐릭터 모델을 보유하고 있어야 합니다.
ML 디포머 구성 가이드
ML 디포머 프레임워크를 사용하여 런타임 시 고퀄리티 메시 디포메이션을 선택하는 방법에 대한 종합 구성 가이드를 참조하려면 ML 디포머 사용하기 문서를 확인하세요.
ML 디포머 에디터
이 섹션에서는 ML 디포머 에디터의 개요와 세부 패널 및 툴을 살펴볼 수 있습니다.
-
데이터 검사에 사용되는 시각화 패널 이 패널의 세팅은 트레이닝된 모델에 영향을 미치지 않으며, 시각화 및 검사만을 목적으로 합니다.
-
트레이닝을 통해 제어 및 스크럽하거나 애니메이션 시퀀스 재생을 테스트하는 데 사용되는 시퀀서 타임라인
-
ML 디포머의 모든 트레이닝 관련 세팅이 포함된 디테일 패널
툴바
다음은 ML 디포머 에디터의 툴바와 각 툴의 기능을 설명한 목록입니다.
| 이름 | 툴 | 설명 |
|---|---|---|
| 트레이닝 모델(Train Model) | ![]() |
선택 시 이 버튼이 ML 디포머 에디터의 디테일(Details) 패널 내 프로퍼티를 사용하여 캐릭터 메시 디포메이션의 모프 타깃을 생성하기 위한 모델 트레이닝을 시작합니다. 이 버튼은 입력 누락이나 다른 오류로 인해 트레이닝 수행이 불가능한 경우 비활성화됩니다. 똑같은 오류가 UI 내에서도 보고됩니다. |
| 모델 선택(Model Selection) | ![]() |
여기에서 사용할 ML 디포머 모델을 선택할 수 있습니다. 드롭다운 메뉴의 사용 가능한 옵션에서 ML 디포머를 어떤 모델로 트레이닝할지 선택할 수 있습니다. 선택된 모델을 변경하면 현재 세션이 지워지므로, 새 ML 디포머 에셋을 생성한 직후에만 변경할 것을 권장합니다. 사용 가능한 ML 디포머 모델은 활성화한 모델 플러그인에 따라 다릅니다. 각 모델 타입에는 자체 플러그인이 있습니다. |
| 에디터 모드(Editor Mode) | ![]() |
여기에서 ML 디포머를 트레이닝(Training) 모드 또는 테스팅(Testing) 모드로 토글할 수 있습니다.
|
| 툴(Tools) | ![]() |
여기에서 ML 디포머 에디터의 툴에 액세스할 수 있습니다. 드롭다운 메뉴를 사용하여 툴을 선택하면 각 툴의 옵션이 열립니다. 옵션에서 프로퍼티를 조정하고 작업을 실행할 수 있습니다. 툴 메뉴 버튼을 사용하여 다음 툴에 액세스할 수 있습니다. 이 메뉴에 포함된 툴은 현재 최근접 이웃 ML 디포머 모델로 작업할 때 적용됩니다. 개별 툴, 프로퍼티의 목록 및 기능 설명에 대한 자세한 내용은 아래의 각 섹션을 참조하세요. |
| 디버그 액터(Debug Actor) | ![]() |
여기에서 디버깅할 액터를 선택할 수 있습니다. 드롭다운 메뉴에서 액터를 선택하면 액터의 디포메이션을 활성 에디터에서 플레이(Play In Editor, PIE) 세션에서 볼 수 있습니다. 액터와 월드를 선택한 후에는 ML 디포머 에디터 뷰포트의 액터가 PIE 세션과 동일한 포즈를 표시합니다. 현재 열려 있는 ML 디포머 에셋을 사용하는 액터만 디버그를 위해 선택할 수 있습니다. 프로젝트에서는 종종 몇 가지 애니메이션을 함께 블렌딩하여 IK와 같은 절차적 수정을 수행합니다. 이 경우 디버깅하지 않을 때는 ML 디포머 에디터에서 단일 애니메이션 시퀀스만 테스트할 수 있으므로 디버깅이 유용할 수 있습니다. 툴바의 새로고침 버튼을 사용하여 디버그에 사용 가능한 액터 목록을 새로고침할 수 있습니다. ![]() |
Key Pose Extraction Tool
최근접 이웃 ML 디포머 모델을 사용하는 경우, Key Pose Extraction Tool을 통해 캐릭터 트레이닝 애니메이션 시퀀스에서 키 포즈 데이터를 추출할 수 있을 뿐만 아니라 지오메트리 캐시 데이터도 생성할 수 있습니다. 프로퍼티를 조정한 후 창 하단의 Extract 버튼을 눌러 작업을 시작합니다.
다음은 Key Pose Extraction Tool의 프로퍼티와 그 기능을 설명한 목록입니다.
| 프로퍼티 | 설명 |
|---|---|
| Nearest Neighbor Model Asset | 클러스터링에 사용된 ML 디포머 에셋을 봅니다. |
| 섹션 인덱스(Section Index) | 클러스터링된 포즈를 생성하기 위해 사용할 트레이닝된 데이터 섹션을 설정합니다. |
| Num Clusters | 생성할 포즈 클러스터의 수를 설정합니다. |
| Extract Geometry Cache | 활성화하면 Key Pose Extraction Tool이 지오메트리 캐시 데이터도 추출합니다. |
| 입력(Inputs) | 다음 옵션에서 키 포즈를 추출할 데이터를 설정합니다.
캐시의 프레임 수는 포즈의 키 수와 일치해야 합니다.
|
| Extracted Poses | 여기에서 포즈 클러스터를 추출할 애니메이션 시퀀스 에셋도 할당할 수 있습니다. 프로젝트의 기존 에셋을 덮어쓸 수도 있지만, 추출된 포즈 클러스터를 저장하기 위해 New Poses 버튼을 사용하여 새 에셋을 생성할 수도 있습니다. ![]() |
| Extracted Cache | Extract Geometry Cache 프로퍼티가 활성화된 경우, 추출된 지오메트리 캐시 데이터를 저장할 에셋을 여기에서 할당할 수 있습니다. 프로젝트의 기존 에셋을 덮어쓸 수도 있지만, 추출된 지오메트리 캐시 데이터를 저장하기 위해 New Geometry Cache 버튼을 사용하여 새 에셋을 생성할 수도 있습니다. ![]() |
Get Neighbor Stats
Get Neighbor Stats를 사용하여 캐릭터의 최근접 이웃 트레이닝된 ML 디포머 에셋에서 데이터를 생성할 수 있습니다. 프로퍼티를 조정한 후 창 하단의 Get Stats 버튼을 눌러 작업을 시작합니다.
다음은 Get Neighbor Stats 툴의 프로퍼티와 그 기능을 설명한 목록입니다.
| 프로퍼티 | 설명 |
|---|---|
| Nearest Neighbor Model Asset | 통계 계산에 사용된 ML 디포머 에셋을 봅니다. |
| Test Anim | 여기에서 이웃 통계를 생성할 애니메이션 시퀀스 에셋을 선택할 수 있습니다. 에셋 선택 드롭다운 메뉴를 사용하여 프로젝트에서 에셋을 선택할 수 있습니다. |
| 섹션 인덱스(Section Index) | 샘플링할 애니메이션 시퀀스 에셋 섹션의 섹션 인덱스 값을 설정합니다. |
시각화 패널
다음은 ML 디포머 에디터의 시각화 패널 프로퍼티와 그 기능을 설명한 목록입니다.
| 프로퍼티 | 설명 |
|---|---|
| 라벨 그리기(Draw Labels) | 활성화하면 선형 스킨 적용 메시(Linear Skinned Mesh)라는 텍스트가 포함된 라벨, 즉 애니메이션 시퀀스( 녹색 ), ML 디폼된 메시( 빨간색 ), 비교 액터( 노란색 ), 비교 기준 메시, 즉 지오메트리 캐시 에셋( 파란색 )이 ML 디포머 에디터의 뷰포트에서 렌더링됩니다. |
| 라벨 높이(Label Height) | 디버그 라벨 그리기의 높이를 센티미터(cm) 단위로 설정합니다. |
| 라벨 스케일(Label Scale) | 디버그 라벨 그리기의 스케일을 설정합니다. |
| 메시 간격(Mesh Spacing) | 뷰포트 내 메시 간 간격을 언리얼 유닛 단위로 설정합니다. |
| 테스트 애님 시퀀스(Test Anim Sequence) | 뷰포트의 스켈레탈 메시에서 재생되는 애니메이션 시퀀스 에셋을 설정합니다. 이 프로퍼티를 사용하면 트레이닝 애니메이션 시퀀스 외의 애니메이션 시퀀스를 설정하여 재생 중에 ML 디포머가 수행되는 방식을 확인할 수 있습니다. 이 프로퍼티는 ML 디포머 에디터가 테스팅 모드로 설정된 경우 뷰포트 메시에만 영향을 미칩니다. |
| 디포머 그래프(Deformer Graph) | ML 디포머 에디터의 디폼된 테스트 액터에서 사용할 디포머 그래프 에셋을 설정합니다. 디포머 그래프 에셋은 그래프 기반 시스템에서 디포머를 정의하며, 런타임 시 노멀을 스키닝, 모핑, 재계산하는 등의 작업을 수행할 수 있습니다. 여기에서 런타임 시 캐릭터에 사용할 디포머 그래프 에셋을 설정하여 결과를 관찰할 수 있습니다. 프로젝트에서 런타임 시 디포머 그래프를 이 ML 디포머 에셋과 함께 사용하고자 하는 경우, 스켈레탈 메시 컴포넌트의 '메시 디포머' 프로퍼티에서도 디포머 그래프 에셋을 지정해야 합니다. ML 디포머 에셋 시각화 세팅에서 디포머 에셋을 변경해도 스켈레탈 메시 컴포넌트에 자동으로 추가되지 않습니다. 뉴럴 모프 ML 디포머 모델을 사용하는 경우, 모델의 델타가 디포머 그래프의 Morph Target 노드를 사용하여 출력됩니다. 디포머 그래프와 디포머 그래프 노드에 대한 자세한 내용은 디포머 그래프 문서를 참조하세요. |
| 비교 기준(Ground Truth) | 테스트 애님 시퀀스 의 비교 기준 메시를 표시하는 데 사용될 지오메트리 캐시 에셋을 설정합니다. 테스트 애님 시퀀스와 비교 기준 둘 모두 동일한 애니메이션, 프레임 수, 프레임 레이트를 보유하는 것이 중요합니다. |
| 비교 액터(Compare Actors) | 여기에서 뷰포트 내 ML 디포머 에디터의 디버그 그리기에 비교 액터를 추가할 수 있습니다. 비교 액터를 추가하려면 추가(+) 를 클릭한 후 에셋 선택 드롭다운 메뉴에서 ML 디포머 에셋을 선택합니다. 기본적으로 이름 프로퍼티는 할당된 ML 디포머 에셋의 이름으로 채워지지만, 프로퍼티 필드에서 이름을 수동으로 할당할 수 있습니다. |
| 가중치(Weight) | 뷰포트에서 ML 디폼된 메시에 적용된 메시 디포메이션 델타의 스케일 인수를 설정합니다. ![]() |
| 애님 재생 속도(Anim Play Speed) | 뷰포트에서 테스트 애님 시퀀스의 재생 속도를 설정합니다. 애니메이션의 디폴트 재생 속도를 사용하려면 1.0 의 값을 사용합니다. |
| 트레이닝 프레임 번호(Training Frame Number) | 여기에서 트레이닝 애님 시퀀스 재생 시 프레임 번호를 수동으로 설정할 수 있습니다. 이 값은 시퀀스 재생 컨트롤에서 애니메이션을 재생하거나 스크럽할 때 자동으로 업데이트됩니다. 이 프로퍼티는 ML 디포머 에디터의 모드가 트레이닝 으로 설정된 경우에만 액세스할 수 있습니다. |
| 테스팅 프레임 번호(Testing Frame Number) | 여기에서 테스트 애님 시퀀스 재생 시 프레임 번호를 수동으로 설정할 수 있습니다. 이 값은 시퀀스 재생 컨트롤에서 애니메이션을 재생하거나 스크럽할 때 자동으로 업데이트됩니다. |
| 델타 그리기(Draw Deltas) | 활성화하면 선형 스킨 적용 메시와 비교 기준 메시 간 버텍스 델타 값의 디버그 뷰가 뷰포트에서 렌더링됩니다. 이 프로퍼티는 ML 디포머 에디터의 모드가 트레이닝 으로 설정된 경우에만 액세스할 수 있습니다. |
| 엑스레이 델타(XRay Deltas) | 델타 그리기 프로퍼티를 활성화하면, 버텍스 델타 디버그 그리기가 메시에 의해 일반적으로 가려지는 델타도 표시해야 하는지 여부를 토글할 수 있습니다. 이 프로퍼티는 ML 디포머 에디터의 모드가 트레이닝 으로 설정된 경우에만 액세스할 수 있습니다. |
| 히트 맵 표시(Show Heat Map) | 활성화하면 선형 스킨 적용 메시와 ML 디포머의 보정된 결과 간 변경사항의 델타를 표시하는 히트 맵이 뷰포트의 ML 디폼된 메시에 렌더링됩니다. 차가운 컬러는 작은 값을 나타내며, 따뜻한 컬러는 큰 값을 나타냅니다. 회색은 값이 존재하지 않음을 나타냅니다. ![]() |
| 히트 맵 모드(Heat Map Mode) | 여기에서 히트 맵의 모드를 설정하여 다양한 데이터를 관찰할 수 있습니다. 드롭다운 메뉴에서 다음 모드 중에 선택할 수 있습니다.
|
| 히트 맵 최대(Heat Map Max) | 여기에서 히트 맵의 가장 따뜻한 컬러를 나타낼 값을 센티미터 단위로 설정할 수 있습니다. 이 값은 프로젝트에서 ML 디포머를 사용하여 이루고자 하는 목표와 스켈레탈 메시 캐릭터에 오차나 보정치를 얼마나 적용하고자 하는지에 따라 다릅니다. 예를 들어 3.0 의 값을 설정하면, Activations 히트 맵 모드 사용 시 히트 맵의 빨간색이 ML 디폼된 메시에 적용되는 3.0 cm 이상의 보정치를 나타내게 됩니다. 비교 기준 히트 맵 모드를 사용하는 경우 3.0 의 값을 설정하면 빨간색은 비교 기준 메시와 ML 디폼된 메시 간의 오차가 3cm 이상임을 나타냅니다. |
| 비교 기준 선형보간(Ground Truth Lerp) | 히트 맵 사용 시 ML 디폼된 메시 또는 비교 기준 메시의 영향이나 선형보간 인수를 설정합니다. 예를 들어, 0.0 이라는 값은 ML 디폼된 메시를 전적으로 선호하는 반면, 1.0 이라는 값은 비교 기준 메시를 전적으로 선호합니다. 그 사이의 값을 사용하면 히트 맵을 두 메시의 인플루언스에서 인수로 설정할 수 있습니다. |
| 모프 타깃 그리기(Draw Morph Targets) | ML 디포머 모델을 트레이닝한 후 이 프로퍼티를 활성화하여 뷰포트에서 스켈레탈 메시 모프 타깃의 디버그 그리기를 볼 수 있습니다. 이 프로퍼티는 생성된 모프 타깃의 밀도가 얼마나 낮은지 관찰하는 데 도움이 됩니다. 이 프로퍼티는 ML 디포머 모델을 트레이닝한 후, 동일한 에디터 세션에서 트레이닝 직후나 이미 트레이닝된 ML 디포머 에셋을 연 경우에만 사용할 수 있습니다. |
| 모프 타깃 수(Morph Target Number) | 여기에서는 생성된 모프 타깃의 인덱스 값을 설정할 수 있습니다. 해당 모프 타깃은 뷰포트에서 렌더링됩니다. 이 프로퍼티는 ML 디포머 모델을 트레이닝한 직후 동일한 에디터 세션에서만 사용할 수 있습니다. |
| 활성 모프 수(Num Active Morphs) | ML 디포머 LOD별로 캐릭터에 생성된 활성 모프 타깃 수입니다. |
| PIE에서 디버그 액터 하이라이트(Highlight Debug Actors in PIE) | 활성화하면 액터 바운드의 디버그 그리기가 뷰포트에서 렌더링됩니다. 활성화된 경우에도 이 디버그 그리기는 활성 PIE 세션 중에만 렌더링됩니다. |
| 바운드 컬러 디버그(Debug Bounds Color) | PIE 프로퍼티에서 디버그 액터 하이라이트가 활성화된 경우, 여기에서 디버그 그리기의 컬러를 설정할 수 있습니다. |
| 선형 스킨 적용 액터 그리기(Draw Linear Skinned Actor) | 활성화하면 선형 스킨 적용 메시가 뷰포트에 표시됩니다. |
| ML 디폼된 액터 그리기(Draw ML Deformed Actor) | 활성화하면 ML 디폼된 메시가 뷰포트에 표시됩니다. |
| 비교 기준 액터 그리기(Draw Ground Truth Actor) | 활성화하면 비교 기준 메시가 뷰포트에 표시됩니다. |
| ML 비교 액터 그리기(Draw ML Compare Actors) | 활성화하면 모든 ML 비교 메시가 뷰포트에 표시됩니다. 이 프로퍼티는 비교 액터 프로퍼티에서 ML 디포머 에셋을 추가 및 설정한 후에만 액세스할 수 있습니다. |
| 마스크 시각화 모드(Mask Viz Mode) | 여기에서 메시 마스크의 시각화 모드를 설정할 수 있습니다. 각 본, 커브, 본 그룹, 커브 그룹은 메시에 특정 마스크 영역을 갖습니다. 이 마스크는 생성된 모프 타깃이 활성 상태일 수 있는 영역을 정의합니다. 원하지 않는 영역의 디포메이션을 필터로 걸러내는 데 사용할 수 있습니다. 예를 들어 왼쪽 팔을 회전시킬 때 오른쪽 팔이 디폼되지 않도록 해야 할 수 있습니다. 이 경우 왼쪽 팔의 마스크를 왼쪽 팔 영역 주변의 버텍스만 포함하도록 구성하여 이를 강제할 수 있습니다. 프로퍼티의 드롭다운 메뉴에서 마스크 시각화 모드를 다음 옵션 중에서 선택할 수 있습니다.
|
| CPU 퍼포먼스(CPU Performance) | CPU의 ML 디포머 컴포넌트 업데이트에 소요된 평균, 최소, 최대 시간입니다. 모델의 최근 100개 프레임으로 측정되며, 단위는 마이크로초(µs)입니다. |
| 예상 메모리 사용량(Estimated Memory Usage) | 여기에서 모델의 메인 시스템 메모리 및 GPU 전용 메모리 사용량을 메가바이트(mb) 단위로 확인할 수 있습니다. 뉴럴 모프 모델 사용 시 메인 시스템 메모리 사용량에는 보통 신경망이 포함됩니다. Num Neurons Per Layer, Num Hidden Layers, Num Morph Targets 와 같은 프로퍼티가 이 값에 영향을 미칩니다. 모델의 모드(Mode) 를 Global 로 설정해도 더 많은 시스템 메모리가 사용됩니다. GPU 메모리는 주로 시스템이 생성하는 압축된 모프 타깃에 사용됩니다. Num Morph Targets, Delta Zero Threshold, 압축 레벨(Compression Level), 반복작업 수(Num Iterations), Max Num LODs 와 같은 프로퍼티가 이 값에 영향을 미칩니다. |
| 예상 에셋 크기(Estimated Asset Sizes) | 여기에서는 쿠킹된 모델과 쿠킹되지 않은 모델의 예상 크기를 메가바이트(mb) 단위로 확인할 수 있습니다. 쿠킹되지 않은 모델의 예상 크기는 압축되지 않은 버텍스 델타가 포함되어 있으므로, 쿠킹된 모델의 크기보다 훨씬 더 큽니다. |
디테일 패널
이 섹션에는 여러 ML 디포머 모델에서 나타나는 일반적인 ML 디포머 에디터의 디테일 패널 프로퍼티 목록과 그 기능에 대한 설명이 나와 있습니다. 디테일 패널에는 런타임 시 모델에 영향을 미치는 입력, 트레이닝 세팅, 압축 세팅 등의 세팅이 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| 스켈레탈 메시(Skeletal Mesh) | 트레이닝 중인 캐릭터의 선형 스킨 적용 스켈레탈 메시 에셋을 설정합니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| 트레이닝 입력 애님(Training Input Anims) | 선택한 ML 디포머 모델을 트레이닝하는 데 사용되는 트레이닝 입력 목록을 설정합니다. 각 목록에는 메시 포즈가 포함된 애니메이션 시퀀스와 메시 디포메이션 데이터가 포함된 지오메트리 캐시 에셋으로 이루어진 한 쌍이 있어야 합니다. 각 쌍의 두 에셋은 모두 동일한 프레임 레이트로 실행되어야 하며, 프레임 수가 동일해야 하고, 각 에셋의 각 프레임에 동일한 포즈가 포함되어야 합니다. 각 에셋의 메시에도 동일한 수의 버텍스가 포함되어야 합니다. 스켈레탈 메시의 일부만 포함된 지오메트리 캐시로 모델을 트레이닝하는 것이 가능합니다. 예를 들어 머리가 아닌 바디에서만 메시 디포메이션을 트레이닝할 수 있습니다. 새 입력 인덱스를 생성하려면 추가(+) 를 클릭합니다. 입력(Input) 인덱스를 생성한 후 각 인덱스의 세팅을 확장하여 다음 프로퍼티에 액세스할 수 있습니다.
ML 디포머 모델을 트레이닝하려면 최소 하나의 트레이닝 입력 인덱스가 필요합니다. 예를 들어 특정 포즈가 제대로 디폼되지 않는 것이 확인되는 경우 트레이닝 입력을 추가하여 메시 디포메이션 결과를 한층 개선할 수 있습니다. 이 포즈 주변의 타기팅된 데이터가 포함된 추가 데이터로 결과를 개선하는 것이 가능합니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Target Alignment Transform | 여기에서 트랜스폼 값을 설정하여 지오메트리 캐시 에셋의 배치를 스켈레탈 메시에 맞춰 조정할 수 있습니다. 지오메트리 캐시 에셋이 애니메이션 시퀀스 포즈와 올바르게 정렬되지 않는 것이 확인되는 경우 이 프로퍼티를 사용합니다. 지오메트리 캐시 메시의 버텍스가 애니메이션 시퀀스 메시의 버텍스에 오버랩되지 않는 경우 이 프로퍼티를 사용하여 스케일 및 회전을 조정하는 것이 좋습니다. 트레이닝 프로세스의 목표는 디포메이션 발생 시 메시의 각 버텍스 간 거리를 계산하는 것이므로, 올바르게 정렬된 버텍스는 좋은 결과를 만들어 내는 데 필수적입니다. 시각화 디테일 패널의 메시 간격 세팅은 여전히 선형 스킨 적용 메시와 지오메트리 캐시를 분리한다는 점에 유의하세요. 메시 간격이 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| 네트워크 입력(Network Inputs) | 여기에서 ML 디포머 모델 트레이닝 시 고려될 본과 커브를 설정할 수 있습니다. 캐릭터의 스켈레탈 메시 에셋에서 본이나 커브를 추가하려면 추가(+) 를 클릭하고 본 추가(Add Bone) 또는 커브 추가(Add Curve) 를 선택하여 단일 본이나 커브를 추가하거나, 모든 애니메이션 본 추가(Add All Animated Bones) 또는 모든 애니메이션 커브 추가(Add All Animated Curves) 를 선택하여 캐릭터의 사용 가능한 애니메이션 본 또는 커브를 모두 임포트합니다. 먼저 모든 애니메이션 본 또는 커브를 추가한 다음, 헬퍼 본 제거 등을 통해 줄여 나가는 것이 좋습니다. 추가된 본은 캐릭터의 포즈를 정의하는 데 사용됩니다. 모델은 각 포즈 중 본의 오리엔테이션을 모델이 출력할 보정 디포메이션에 연결합니다. 최상의 결과를 얻으려면 캐릭터의 모든 필수 무브먼트를 계속 캡처하면서도 가능한 한 적은 수의 본을 설정하는 것이 좋습니다. 예를 들면 모든 헬퍼 본은 제외해야 합니다. 모든 애니메이션 본 추가 기능을 사용하는 경우 에디터는 애니메이션 데이터가 포함된 목록에 모든 본을 자동으로 추가합니다. 이 프로세스를 통해 추후 제거할 가능성이 가장 높은 본에 트위스트를 추가할 수 있습니다. 뉴럴 모프 모델을 사용하고 모드를 Local로 설정하는 경우, 목록에 본을 추가한 후 선택한 본을 우클릭하고 본 마스크 편집(Edit Bone Mask) 옵션을 선택하여 해당 본이 본 마스크에 포함되어야 하는 경우에 편집할 수 있는 창을 열 수 있습니다. 기본적으로 본 마스크 내부의 본에 스킨을 입힌 모든 버텍스는 본 마스크에 포함됩니다. 본 마스크에서 본을 편집한 후 본 목록 내에서 우클릭하고 모든 본 마스크 리셋(Reset All Bone Masks) 옵션을 선택하여 모든 본 마스크를 디폴트 세팅으로 설정할 수 있습니다. 추가된 커브는 가중치, 알파, 페이셜 컨트롤 또는 근육 활성화 등 수많은 요소를 나타낼 수 있는 알파 값을 사용하여 모델에 영향을 줄 수 있습니다. 모든 애니메이션 커브 추가 옵션을 사용하면 애니메이션 시퀀스 에셋에 포함되어 있으며 애니메이션 값이 변경된 모든 커브가 추가됩니다. 항목을 선택하고 우클릭한 후 선택 삭제(Delete Selected) 를 선택하여 목록에서 개별 본이나 커브를 제거할 수 있습니다. 목록을 우클릭하고 목록 지우기(Clear List) 옵션을 선택하여 본 목록 또는 커브 목록을 전부 지울 수도 있습니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Max Training Frames | 모델을 트레이닝할 때 사용할 입력 프로퍼티에서 할당된 에셋의 최대 프레임 수를 설정합니다. 이 수를 줄이면 트레이닝 데이터의 더 작은 섹션을 사용하여 모델을 트레이닝할 수 있습니다. 가져온 샘플은 여러 입력 애니메이션에서 번갈아 나옵니다. 먼저 활성화된 것의 샘플부터 가져온 후 다음 샘플을 가져오는 식으로 작동하며, 최대 트레이닝 프레임 수에 도달하거나 샘플링할 프레임이 남지 않을 때까지 계속됩니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Delta Cutoff Lengths | 트레이닝 중에 고려될 델타 값의 최대 길이를 설정합니다. 지정된 값보다 긴 모든 델타 값은 무시되며, 길이가 0으로 설정됩니다. 이 프로퍼티는 매우 긴 델타 값으로 인한 문제를 줄이는 데 유용합니다. ML 디포머 에디터의 모드가 트레이닝 으로 설정된 경우, 시각화 패널의 델타 그리기 프로퍼티를 활성화하여 뷰포트에서 델타 길이의 디버그 렌더를 볼 수 있습니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| 배치 크기(Batch Size) | ML 디포머 모델 트레이닝 시 배치별 프레임 수를 설정합니다. 값이 클수록 트레이닝 중 더 많은 GPU 메모리를 사용하지만, 트레이닝 프로세스에 걸리는 시간을 줄일 수 있습니다. 배치 크기는 결과물의 퀄리티에도 영향을 줄 수 있습니다. 반복작업 수는 배치 크기가 함께 퀄리티에 영향을 줍니다. 배치 크기를 절반으로 줄일 경우, 동일한 퀄리티를 얻으려면 반복작업 수를 두 배로 늘려야 합니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| 학습 속도(Learning Rate) | ML 디포머 모델 트레이닝 중 최적화 프로세스의 초기 스텝 크기를 설정합니다. 값이 클수록 트레이닝 중에 결과물을 더 빨리 제공할 수 있지만, 중요한 데이터를 간과하여 덜 최적화된 결과를 제공할 수도 있습니다. 값이 작을수록 고퀄리티의 결과물을 제공할 수 있지만, 트레이닝에 무한한 시간이 걸릴 수도 있습니다. 목표는 지나치게 긴 트레이닝 시간이 필요하지 않으면서 트레이닝 프로세스 도중 충분한 데이터를 캡처하는 최적의 값을 찾아내는 것입니다. 큰 값으로 시작하여 점점 줄이면서 프로젝트의 요구사항에 맞게 허용 가능한 손실 수준을 달성하는 것이 좋습니다. 각 ML 디포머 모델은 동일한 값으로도 다양한 결과를 제공하므로, 모델마다 다르게 접근할 것을 권장합니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Max Num LODs | ML 디포머 LOD를 생성하는 데 사용될 스켈레탈 메시 LOD 레벨의 최대 수를 설정합니다. 값이 ML 디포머는 사용 가능한 스켈레탈 메시 LOD에 대한 ML 디포머 LOD만 생성하므로, 이 프로퍼티의 값이 |
ML 디포머 모델
ML 디포머 프레임워크는 런타임 시 트레이닝된 ML 디포머 모델을 사용하여 스킨 적용 메시 디포메이션 선택을 구동합니다. 모델마다 특정 사용 사례에 맞는 강점이 있습니다.
최근접 이웃 모델
최근접 이웃 모델은 클로딩과 같은 복잡한 메시 및 오브젝트의 디포메이션에 가장 잘 작동하도록 설계되었습니다. 이 모델은 여전히 개발 실험단계로 간주되므로, 기능과 안정성이 중요한 정식 버전에서는 사용하지 않는 것이 좋습니다.
레퍼런스
다음은 최근접 이웃 모델의 프로퍼티와 그 기능을 설명한 목록입니다.
| 프로퍼티 | 설명 |
|---|---|
| Import Dim | 네트워크 입력 치수를 설정합니다. |
| Hidden Layers Dim | 네트워크 내 숨겨진 레이어의 치수를 설정합니다. 숨겨진 레이어를 설정하려면 추가(+)를 클릭한 다음, 숨기려는 레이어의 값으로 인덱스 값을 설정합니다. 이 프로퍼티는 비워 둘 수 없습니다. |
| Output Dim | 네트워크 출력 치수를 설정합니다. |
| Num Epochs | 트레이닝 세트를 통해 반복작업되는 최대 주기를 설정합니다. |
| Early Stop Epochs | 정확도가 개선되지 않는 경우 트레이닝을 중지할 에포크의 수를 설정합니다. |
| Include Normals | 활성화하면 모델이 트레이닝 프로세스 중에 모프 타깃의 노멀을 포함합니다. 이 프로퍼티를 활성화하면 노멀을 재계산하는 것보다 높은 퍼포먼스 결과를 얻을 수 있지만, 그 대가로 메시 디포메이션 결과의 퀄리티가 저하되고 저장된 모프 타깃으로 인해 메모리 비용이 증가할 가능성이 있습니다. |
| Delta Zero Threshold | 여기에서 모프 타깃 델타 값의 컷오프를 결정하는 값을 설정할 수 있습니다. 이 한계치보다 작거나 같은 델타 값은 무시되고 이 프로퍼티의 함수 값을 설정하는 것은 ML 디포머 에셋 사용 시 프로젝트의 런타임 퍼포먼스 및 메모리에 가장 큰 영향을 미치는 요인 중 하나입니다. |
| 압축 레벨(Compression Level) | 생성된 모프 타깃의 압축 레벨을 설정합니다. 값이 클수록 더 많은 압축이 적용되지만 메시에 비주얼 아티팩트가 발생할 수 있습니다. 값이 작을수록 더 적은 압축이 적용되어 고퀄리티의 결과물을 만들어 내지만 더 많은 메모리가 필요합니다. 최적의 결과를 위해서는 압축 레벨 프로퍼티를 미세조정하기 전에 먼저 프로젝트의 Delta Zero Threshold 를 적절하게 설정하는 것이 좋습니다. |
| Mask Channel | 델타 마스크 배수를 나타내는 채널 데이터를 설정합니다. 이 프로퍼티를 사용하여 특정 영역에서 ML 디포머에 대한 영향을 분산시킬 수 있습니다. 예를 들면, 캐릭터의 목이나 어깨 등 움직임이 많은 조인트의 이음새를 타기팅하는 것이 있습니다. 페인팅된 버텍스 컬러 값은 해당 버텍스에 적용된 ML 디포머 델타의 가중치 배수처럼 사용됩니다. 프로퍼티의 드롭다운 메뉴에서 마스크 채널을 다음 채널 중에서 선택할 수 있습니다.
이 프로퍼티는 동일한 세팅으로 전체 메시를 트레이닝할 때보다는 고유 세팅으로 메시 디포메이션을 개선하고 싶은 메시의 특정 영역에서 트레이닝 프로세스를 타기팅할 때 유용할 수 있습니다. |
| Invert Mask Channel | Mask Channel 프로퍼티가 특정 버텍스 컬러 마스크 채널을 사용하도록 설정된 경우 이 프로퍼티를 활성화하여 영향을 반전시킬 수 있습니다. 예를 들어 레드 버텍스 컬러 마스크를 사용하여 메시의 한 영역을 페인팅한 다음 Mask Channel 이 Vertex Color Red 를 사용하도록 설정하고 이 프로퍼티를 활성화하는 경우, 페인팅된 영역에 아무런 변화가 없습니다. |
| Use Dual Quaternion Deltas | 활성화하면 ML 디포머 모델이 듀얼 쿼터니언 델타 값을 사용합니다. 기본적으로 이 모델은 LBS 델타 값을 사용합니다. |
| Decay Factors | 현재 프레임의 델타에 추가된 이전 프레임의 델타 비율을 설정합니다. 값이 클수록 메시의 주름이 더 오래 뭉쳐 있습니다. |
| Nearest Neighbor Offset Weight | 최근접 이웃 델타에 곱해지는 가중치를 설정합니다. 값이 0.0 이면 최근접 이웃 델타가 완전히 제거되는 반면, 값이 1.0 이면 최근접 이웃 델타에 가중치를 완전히 적용합니다. |
| Use RBF | 활성화하면 ML 디포머가 방사형 기저 함수를 사용해 다수의 최근접 이웃을 블렌딩하여 보다 매끄러운 결과를 만들어 낼 수 있습니다. |
| RBFSigma | Use RBF 프로퍼티가 활성화된 경우, 블렌딩할 최근접 이웃의 범위를 포인트 단위로 설정합니다. 값이 클수록 매끄러운 결과를 낳지만, 프로젝트의 퍼포먼스는 저하될 수 있습니다. |
| 섹션(Sections) | 여기에 섹션을 추가하여 캐릭터의 개별 메시 컴포넌트를 위한 최근접 이웃 모델의 트레이닝 프로세스를 세분화할 수 있습니다. 각 섹션에는 원본 스켈레탈 메시의 버텍스 세트가 포함됩니다. 그런 다음 각 섹션마다 별도로 최근접 이웃 검색이 수행됩니다. 예를 들어, 캐릭터 에셋에 셔츠 메시와 바지 메시가 모두 있는 경우, 각 메시에서 개별적으로 최근접 이웃 트레이닝을 수행하기 위해 각 메시를 별도의 섹션으로 정의할 수 있습니다. 추가(+) 를 클릭하여 섹션 인덱스를 추가한 다음, 섹션 프로퍼티를 확장하여 다음 세팅에 액세스할 수 있습니다.
|
| 네트워크 상태(Network State) | 여기에서 네트워크 상태를 확인할 수 있습니다. |
| 네트워크 아키텍처(Network Architecture) | 여기에서 네트워크 아키텍처의 상태를 확인할 수 있습니다. |
| 모프 타깃 상태(Morph Target State) | 여기에서 모프 타깃의 상태를 확인할 수 있습니다. |
| 추론 상태(Inference State) | 여기에서 추론 상태를 확인할 수 있습니다. |
| Use File Cache (Advanced) | 활성화하면 ML 디포머가 컴퓨터의 하드 드라이브에 중간 결과를 캐시합니다. 수동으로 캐시를 지우지 못하면 예상치 못한 결과가 발생할 수 있습니다. |
| File Cache Directory | 컴퓨터 하드 드라이브에 중간 캐시 결과를 저장할 파일 경로를 설정합니다. 저장된 데이터 목록을 새로고침하려면 이 프로퍼티 섹션 하단의 새로고침 버튼을 사용하세요. |
| 캐시된 델타(Cached Deltas) | 여기에서 저장된 중간 캐시 델타를 확인할 수 있습니다. 삭제(Delete) 버튼을 사용하여 이 데이터를 지울 수 있습니다. |
| 캐시된 PCA(Cached PCA) | 여기에서 저장된 중간 캐시의 주요 컴포넌트 분석(Principal Component Analysis, PCA) 데이터를 확인할 수 있습니다. 삭제 버튼을 사용하여 이 데이터를 지울 수 있습니다. |
| 캐시된 네트워크(Cached Network) | 여기에서 저장된 중간 캐시 네트워크 데이터를 확인할 수 있습니다. 삭제 버튼을 사용하여 이 데이터를 지울 수 있습니다. |
| Use Input Multipliers | 활성화하면 ML 디포머가 입력 배수를 사용합니다. 이 프로퍼티는 잘못된 네트워크 입력을 디버깅하는 데 유용합니다. |
| Input Multipliers | Use Input Multipliers 프로퍼티가 활성화된 경우 적용할 입력 배수를 설정할 수 있습니다. 새 입력 배수를 생성하려면 추가(+) 를 클릭한 다음, 모디파이어 값을 설정합니다. |
뉴럴 모프 모델
뉴럴 모프 모델은 사지 및 큼직한 바디 모션과 함께 작동하는 스킨 및 근육의 움직임 계산과 같이 캐릭터 모델 디포메이션에 가장 적합하게 설계된 일반 애플리케이션 ML 디포머 모델입니다.
프로퍼티 레퍼런스
다음은 뉴럴 모프 모델의 프로퍼티와 그 기능을 설명한 목록입니다.
| 프로퍼티 | 설명 |
|---|---|
| 모드(Mode) | ML 디포머의 신경망이 작동할 모드를 설정합니다. 다음 옵션 중에서 선택할 수 있습니다.
이 모드는 개별 조인트 주변의 디포메이션을 학습하는 데 최적화되어 있으며, 최소한의 트레이닝 데이터가 필요합니다. 또한 이 모드는 밀도가 더 낮은 모프 타깃을 생성합니다. 이러한 모프 타깃은 메모리 사용량을 줄이고 GPU에서 더 빠르게 처리될 수 있습니다. Local 모드 사용 시 CPU 퍼포먼스가 더 빨라지는 것도 확인할 수 있습니다. 전체 스켈레톤을 한 번에 평가하는 대신 본을 더 작은 부분으로 세분화하여 평가하기 때문입니다. 이 옵션은 트레이닝 데이터 재구성에 어려움이 있지 않는 한 기본적으로 사용해야 합니다. 각 본 또는 커브는 이 모델에 모프 타깃 세트를 생성합니다. 생성되는 모프 타깃의 총 수는 다음과 같습니다.
끝의
이 모드는 여러 조인트의 조화로운 움직임을 통해 디포메이션을 학습하지만, 더 많은 트레이닝 데이터가 필요합니다. 이 모드는 로컬 모드와 유사하게 작동하지만, 모든 본이 하나의 커다란 본 그룹에 속한 것처럼 작동합니다. 트레이닝 데이터처럼 랜덤화된 포즈에 가장 적합합니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Num Morph Targets | 이 값은 트레이닝 데이터 생성 중에 메시의 모프 타깃이 얼마나 많이 생성될지를 나타냅니다. 값이 클수록 고퀄리티의 결과를 만들어 내지만, 더 많은 메모리와 퍼포먼스가 필요합니다. 이 값은 디포메이션의 퀄리티가 계속 유지되면서 가능한 한 가장 낮은 값으로 설정하는 것을 목표로 하는 것이 좋습니다. 모드를 Local 로 설정한 경우, 이 값은 각 본, 커브, 본 그룹, 커브 그룹에 생성되는 모프 타깃의 수를 나타냅니다. 로컬 모드 사용 시 예상 퀄리티가 계속 유지되면서 가능한 한 가장 낮은 값을 입력하는 것이 좋습니다. 이 값을 모드를 Global 로 설정한 경우, 이 값은 메시에 생성되는 모프 타깃의 총 수를 나타냅니다. 이 값을 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| 반복작업 수(Num Iterations) | 모델을 트레이닝할 반복작업 횟수를 설정합니다. 개발 중인 프로젝트를 테스트하려는 목적의 경우 손실이 계속해서 감소하지 않는 것을 관찰한 경우, 반복작업 수를 늘려도 결과가 계속 개선되지 않을 가능성이 있습니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Num Hidden Layers | 신경망 모델이 갖게 될 숨겨진 레이어의 수를 설정합니다. 값이 클수록 프로젝트의 퍼포먼스가 저하되지만 더 복잡한 메시 디포메이션과 함께 작동할 수 있습니다. Local 모드 사용 시 일반적으로 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Num Neurons Per Layer | 숨겨진 레이어당 유닛/뉴런 수를 설정합니다. 숫자가 클수록 퍼포먼스가 저하되지만 더 복잡한 메시 디포메이션이 가능합니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Regularization Factor | 모델 일반화에 도움이 되는 트레이닝 데이터의 정규화 인수를 설정합니다. 값이 클수록 모프 타깃의 밀도도 낮아지며, 이를 통해 GPU 메모리 사용량을 줄이고 GPU 퍼포먼스를 향상할 수 있습니다. 이 프로퍼티의 디폴트값은 이 프로퍼티와 프로퍼티가 주는 영향은 모델의 스케일에 따라 다릅니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Smoothing Loss Beta | 스무드 L1 손실 함수의 베타 파라미터를 설정합니다. 이 프로퍼티는 생성된 디포메이션의 결과를 스무딩하며, 메시의 스케일에 따라 다릅니다. 값이 낮을수록 적용되는 스무딩이 줄어듭니다. 보통 크기의 캐릭터 메시에는 오차가 이 베타 값보다 크거나 같으면 L1 손실 함수가 대신 사용됩니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| Enable Bone Masks | 모드 프로퍼티가 Local로 설정된 경우, 이 프로퍼티를 활성화하면 스키닝 정보를 기반으로 본별 인플루언스 마스크를 생성하여 본별 사용 및 본 그룹 마스크 사용이 가능합니다. 이 경우, 조인트 주변 영역에 국한된 디포메이션이 적용됩니다. 이 프로퍼티를 활성화하면 국지적인 조인트 디포메이션 퀄리티가 향상되고 GPU 메모리 사용량을 줄일 수 있으며 GPU 퍼포먼스가 개선됩니다. 이 프로퍼티에 변경사항이 적용되면 모델을 다시 트레이닝해야 합니다. |
| 모프 가중치 범위제한(Clamp Morph Weights) | 활성화하면 생성된 모프 타깃 가중치가 트레이닝 중 표시되는 범위로 제한됩니다. 이 프로퍼티는 캐릭터가 트레이닝 중에 보이지 않는 포즈를 취하고 트레이닝 데이터의 대략적으로 근접한 레퍼런스 포즈를 보유하지 않은 경우 모프 타깃 가중치가 트레이닝 중 표시되는 범위 내 값으로 유지되도록 강제하여 이상한 디포메이션을 방지함으로써 디포메이션 결과를 향상할 수 있습니다. |
| Include Normals | 활성화하면 모델이 트레이닝 프로세스 중에 모프 타깃의 노멀을 포함합니다. 이 프로퍼티를 활성화하면 노멀을 재계산하는 것보다 높은 퍼포먼스 결과를 얻을 수 있지만, 그 대가로 메시 디포메이션 결과의 퀄리티가 저하되고 저장된 모프 타깃으로 인해 메모리 비용이 증가할 가능성이 있습니다. |
| Delta Zero Threshold | 여기에서 모프 타깃 델타 값의 컷오프를 결정하는 값을 설정할 수 있습니다. 이 한계치보다 작거나 같은 델타 값은 무시되고 이 프로퍼티의 함수 값을 설정하는 것은 ML 디포머 에셋 사용 시 프로젝트의 런타임 퍼포먼스 및 메모리에 가장 큰 영향을 미치는 요인 중 하나입니다. |
| 압축 레벨(Compression Level) | 생성된 모프 타깃의 압축 레벨을 설정합니다. 값이 클수록 더 많은 압축이 적용되지만 메시에 비주얼 아티팩트가 발생할 수 있습니다. 값이 작을수록 더 적은 압축이 적용되어 고퀄리티의 결과물을 만들어 내지만 더 많은 메모리가 필요합니다. 최적의 결과를 위해서는 압축 레벨 프로퍼티를 미세조정하기 전에 먼저 프로젝트의 Delta Zero Threshold 를 적절하게 설정하는 것이 좋습니다. |
| Mask Channel | 델타 마스크 배수를 나타내는 채널 데이터를 설정합니다. 이 프로퍼티를 사용하여 특정 영역에서 ML 디포머에 대한 영향을 분산시킬 수 있습니다. 예를 들면, 캐릭터의 목이나 어깨 등 움직임이 많은 조인트의 이음새를 타기팅하는 것이 있습니다. 페인팅된 버텍스 컬러 값은 해당 버텍스에 적용된 ML 디포머 델타의 가중치 배수처럼 사용됩니다. 프로퍼티의 드롭다운 메뉴에서 마스크 채널을 다음 채널 중에서 선택할 수 있습니다.
이 프로퍼티는 동일한 세팅으로 전체 메시를 트레이닝할 때보다는 고유 세팅으로 메시 디포메이션을 개선하고 싶은 메시의 특정 영역에서 트레이닝 프로세스를 타기팅할 때 유용할 수 있습니다. |
| Invert Mask Channel | Mask Channel 프로퍼티가 특정 버텍스 컬러 마스크 채널을 사용하도록 설정된 경우 이 프로퍼티를 활성화하여 영향을 반전시킬 수 있습니다. 예를 들어 레드 버텍스 컬러 마스크를 사용하여 메시의 한 영역을 페인팅한 다음 Mask Channel 이 Vertex Color Red 를 사용하도록 설정하고 이 프로퍼티를 활성화하는 경우, 페인팅된 영역에 아무런 변화가 없습니다. |
버텍스 델타
버텍스 델타 모델은 오로지 GPU에 기반한 디포머의 예시입니다. 글로벌 모드에서 뉴럴 모프 모델을 단순화하여 구현한 것이지만, GPU에서 완전히 실행됩니다. 엔진 모프 타깃을 사용하지 않지만, 그렇기 때문에 압축 및 다른 최적화도 사용하지 않으므로 속도가 느리고 더 메모리 집약적입니다. 정식 버전에서 사용해서는 안 되며, GPU에서 신경망을 실행하는 모델의 레퍼런스로만 사용해야 합니다.
참고: 버텍스 델타 ML 디포머 모델은 GPU 기반 예시 모델로, 정식 버전에서는 사용하지 않아야 합니다. 모드(Mode) 프로퍼티를 Global 로 설정한 뉴럴 모프 모델을 사용하면 정식 버전에서 비슷하면서도 더 안정적인 결과를 얻을 수 있습니다.
ML 디포머 디버깅
이 섹션에서는 언리얼 엔진의 ML 디포머 결과 및 퍼포먼스에 대한 디버깅 및 문제 해결 관련 정보를 확인할 수 있습니다.
액터 디버깅
트레이닝 후 캐릭터에 애니메이션 시퀀스를 재생하여 모델을 테스트할 수 있습니다. 이를 통해 트레이닝 데이터와 약간 다를 수도 있는 포즈에서 디포메이션이 어떻게 보이는지 테스트가 가능합니다.
지정된 입력이 트레이닝 중 사용된 값과 많이 다른 경우 ML 디포머가 안 좋은 결과를 만들어 낼 수 있습니다. 따라서 트레이닝 데이터에 다양한 포즈를 포함하는 것이 매우 중요합니다.
실제 프로젝트에서 일반적으로 포즈는 재생되고 있는 단일 애니메이션이 아닌 여러 소스를 사용하여 블렌딩됩니다. 포즈 블렌딩 외에도 절차적 수정을 통해 인버스 키네마틱(Inverse Kinematics, IK) 등을 수행할 수도 있습니다. 따라서 게임 출력을 캡처한 것이 아니라면 단일 애니메이션으로 테스트하는 것이 항상 잘 작동하지는 않을 수도 있습니다.
ML 디포머 에디터에서 액터 디버깅 툴을 사용하면 프로젝트의 전체 애니메이션 시스템에서 ML 디포머 결과를 볼 수 있습니다. 라이브 '에디터에서 플레이(PIE)' 세션에 연결하고 현재 연 ML 디포머 에셋과 동일한 에셋을 사용하는 ML 디포머 컴포넌트를 보유한 캐릭터를 선택함으로써, ML 디포머 에디터는 PIE 세션 내부에서 캐릭터의 포즈를 복사하고 ML 디포머 에디터의 뷰포트 내부에서 디포메이션을 적용합니다.
ML 디포머 에디터에서 PIE 액터 디버깅을 시작하려면 디버깅할 캐릭터에 사용 중인 ML 디포머 에셋을 콘텐츠 브라우저에서 더블클릭하여 엽니다. 그런 다음 PIE 컨트롤에서 재생 버튼을 클릭하여 PIE 세션을 시작합니다.
세션이 시작된 후 ML 디포머 에디터 탭을 클릭합니다. 그러면 PIE 뷰포트 내에 바운딩 박스로 감싸진 채 렌더링된 모든 디버그 가능 액터가 보일 것입니다. 기본적으로 이 바운딩 박스는 보라색이며, 액터 이름은 흰색으로 표시됩니다.
이제 ML 디포머 에셋 에디터 내부에서 툴바의 디버그 액터(Debug Actor) 툴 드롭다운 메뉴를 사용하여 액터 콤보를 선택합니다. 이렇게 하면 이 ML 디포머 에셋을 사용하는 액터 목록이 표시됩니다. 액터가 해당 목록에 없는 경우 드롭다운 메뉴 옆에 있는 오른쪽의 새로고침 버튼을 클릭합니다. 그런 다음 디버깅할 액터를 선택합니다. 또는 F8 을 눌러 목록을 새로고침할 수 있습니다. 선택된 액터는 프로젝트의 레벨 뷰포트에서 기본적으로 녹색 박스와 노란색 이름으로 하이라이트됩니다.
이제 히트 맵과 같은 시각화 패널의 프로퍼티를 사용하여 PIE 중에 캐릭터의 전체 애니메이션 시스템을 통해 ML 디포머의 결과를 디버깅할 수 있습니다.
게임 내부에 라이브 비교 기준이 없으므로 Activations 히트 맵 모드만 작동합니다.
디버깅 세션을 종료하려면 PIE 세션을 중단하거나 드롭다운 메뉴에서 ML 디포머 디버그 액터 툴의 디버그 비활성화(Disable Debug) 를 선택합니다.
언리얼 인사이트
언리얼 인사이트에서 기록된 세션의 GPU 섹션 내 모프 타깃(Morph Target) 항목을 사용하여 ML 디포머 에셋의 퍼포먼스를 검사할 수 있습니다. CPU 퍼포먼스를 확인 및 디버깅하려면 CPU 프로파일러의 MLDeformerComponent 섹션을 사용합니다. GPU 퍼포먼스는 GPU 정보의 모프 타깃 섹션에서 확인할 수 있습니다.
문제 해결하기
이 섹션에서는 언리얼 엔진의 ML 디포머 사용 시 발생할 수 있는 결과 및 퍼포먼스에 대한 문제 해결 관련 정보에 액세스할 수 있습니다.
뉴럴 모프 모델
| 문제 | 잠재적 해결책 |
|---|---|
| 디포메이션 결과가 이상적이지 않음: |
|
| 런타임 메모리 또는 퍼포먼스가 이상적이지 않음: | GPU 퍼포먼스가 낮은 경우 모프 타깃 수를 줄여 보세요. 전체 캐릭터에 생성되는 모프 타깃의 총 수를 Local 모드 사용 시 Num Morph Targets 은 설정한 본/커브/그룹별 값입니다.
|
추가 정보
이 섹션에서는 샘플 콘텐츠 프로젝트, 개발자를 위한 강연 등 추가 ML 디포머 리소스를 참조하여 언리얼 엔진의 ML 디포머 사용법에 대해 자세히 알아볼 수 있습니다.
ML 디포머 구성 가이드
Autodesk Maya에서 랜덤화된 포즈의 Alembic 파일 및 지오메트리 디포메이션 데이터를 생성하는 방법을 비롯해 뉴럴 모프 모델을 사용하여 ML 디포머를 구성하는 방법에 대해 알아보려면 다음 하우투 가이드를 참조하세요.
ML 디포머 샘플 콘텐츠
또한, 머신 러닝(Machine Learning, ML) 디포머 시스템을 사용하는 전신 캐릭터 메시 디포메이션 쇼케이스가 포함된 ML 디포머 샘플(ML Deformer Sample) 프로젝트 를 다운로드할 수 있습니다. 이 샘플 프로젝트에는 컨트롤 릭으로 구동되는 애니메이팅된 캐릭터의 인터랙티브 시네마틱이 포함되어 있으며, 스킨 적용 선형 메시 재생과 ML 디포머에서 생성된 디포메이션을 비교하여 관찰할 수 있습니다. 또한 대체 애니메이션, 컨트롤 릭 편집, 클로딩 및 스킨 비저빌리티 토글을 통해 캐릭터를 조작하고 다양한 ML 디포머 모델의 영향을 살펴봄으로써 메시의 변화를 관찰하고 ML 디포머 시스템과 기능에 대해 자세히 알아볼 수 있습니다.
ML 디포머 샘플 프로젝트는 언리얼 엔진 마켓플레이스의 UE 온라인 러닝 탭을 통해 다운로드할 수 있습니다.
게임 개발자 콘퍼런스 ML 디포머 데모
ML 디포머 시스템에 대해 자세히 알아보고 ML 디포머의 기능을 선보이는 라이브 데모를 보려면 스테이트 오브 언리얼 | GDC 2023 강연을 확인하세요.









