표정 포즈 편집은 Expression Editor에서 가장 중요한 부분이자 복잡한 편집 오퍼레이션입니다.
표정 편집 입력은 다른 모드와 유사하게 수행됩니다. 올바른 DNA가 로드되었는지 확인한 다음, 홈 화면의 편집 모드 섹션에 있는 버튼을 누르는 식입니다.
Expressions Graph
이 그래프에서 각 노드는 표정을 나타내며, 해당 종속성은 표정이 어떻게 적용되는지 또는 하나 이상의 표정에 대한 수정 작업이 이후 어떻게 적용되는지 보여줍니다.
노드의 이름과 그래프의 토폴로지는 고정되어 있으며, 릭 정의를 나타냅니다.
Expressions Graph는 탭 뷰입니다. 워크플로의 다양한 지점에서 새 탭을 추가하거나 탭 탐색을 잠가 워크플로를 지원할 수 있습니다. 전체 릭의 개괄적 뷰 탭은 언제든지 맨 왼쪽에서 확인할 수 있습니다.
그래프가 수행하는 기능은 두 가지입니다. 하나는 표정 종속성과 해당 상태에 대한 정보를 표시하여 훌륭한 디버깅 툴이나 메타휴먼 릭에 익숙해지는 학습용 툴이 될 수 있고, 또 표정 편집 내용을 종속 표정에 전파하거나 전파하지 않는 등의 주요 오퍼레이션에 대한 컨텍스트를 설정할 수 있습니다.
씬 어셈블리
다른 모드와 마찬가지로 포즈를 편집하려면 먼저 씬을 어셈블해야 합니다.
이렇게 하면 Maya 씬에서 완벽하게 작동하는 릭이 생성됩니다. 다른 모드와 달리 어셈블리에서는 LOD 0 편집만 지원되며, 기본적으로 자동 설정됩니다.
애니메이션 로드하기
애니메이션, 캡처, 핸드 키 또는 특정 표정으로 릭을 인위적으로 제어하여 비헤이비어를 검사하고 개입이 필요한지 확인하는 시작점으로 삼는 것을 적극 권장합니다.
애니메이션이 포함된 FBX 파일은 페이스보드 릭에 로드하거나 릭 로직 채널에 직접 로드할 수 있습니다. 이러한 애니메이션은 상단에 있는 버튼을 사용하여 로드할 수 있으며, 각 명령은 페이스보드를 연결/해제하고 적절한 채널에 애니메이션을 로드하도록 씬을 환경설정합니다.
애니메이션을 로드할 때에는 애니메이션 파일에 어떤 것이 포함되어야 하는지와 관련된 다음과 같은 몇 가지 요구 사항이 있습니다.
페이스보드에 애니메이션을 로드하려면 FBX 파일은 표정 포즈 편집 모드에서 어셈블된 씬에 존재하는 페이스보드 컨트롤의 해당 채널에 있어야 합니다.
릭 로직 원본 애니메이션을 로드하려면 FBX 파일에 키 지정 가능한 모든 원본 컨트롤 어트리뷰트(예: CTRL_expressions.browDownL 및 이와 유사한 이름의 어트리뷰트)가 포함된 오브젝트 CTRL_expressions가 포함되어 있어야 합니다.
프레임 분석
컨트롤이 수동으로 포즈를 취했든 채널에 애니메이션이 로드되었든, 이제 릭을 분석하여 어떤 노드가 활성화되어 현재 프레임의 포즈에 기여하고 있는지 표시할 수 있습니다.
'Analyze Frame' 버튼을 클릭하면 포즈 측면에서 릭의 활동을 나타내는 히트 맵을 표시하도록 그래프가 업데이트되며, 노드 스와치 컬러가 따뜻하고 강렬할수록 활동성이 높음을 나타냅니다.
프레임에 가장 중요한 기여를 한 노드가 포착되면, 이제 우클릭 클릭 메뉴에서 선택한 Preview Selected Node를 켜서 결과를 단독 표시할 수 있습니다. 이렇게 하면 뷰포트가 선택 내 마지막 노드의 전체 기여도로 설정됩니다. 이 세팅은 사용자 개인설정에 저장됩니다.
표정에 편집이 필요한 것으로 확인되면 기존 그래프 뷰에서 작업하거나, 종속성을 선택한 다음 'Isolate Selected Node'를 사용하여 노드 수가 줄어든 새 탭을 생성할 수 있습니다.
활성 표정 편집
Expression Editor 툴키트의 대부분은 타깃 표정을 메시와 조인트 모두에서 캘리브레이션하는 데 사용됩니다.
조인트는 메시와 일치시킬 수 있고 LOD 0은 다른 모든 LOD로 매끄럽게 축소할 수 있으므로, 표정 편집 모드에서는 LOD 0 변경사항만 작동합니다. 다른 LOD를 자동으로 표시하여 가져올 수도 있지만, 편집 작업은 의도적으로 최고 해상도 LOD로 제한됩니다.
표정을 편집하려면 노드를 선택하고 초록색 원이 있는 버튼을 누릅니다. 또는 노드를 두 번 클릭하면 사용자가 해당 노드의 표정을 편집할 수 있습니다.
유효한 선택 항목이 있으면 버튼의 상태와 모양이 변경되고, 나머지 상단 툴바는 비활성화됩니다.
현재 활성화된 탭을 제외한 모든 탭이 비활성화됩니다. 상단 툴바도 비활성화되고 편집 모드 버튼이 빨간색으로 바뀝니다.
현재 탭에서는 노드 잠금을 설정하여 편집(델타 전파)의 영향을 받는 표정을 선택할 수 있습니다. 이 작업은 현재 편집한 노드의 다운스트림에 있는 각 노드의 자물쇠 아이콘으로 수행할 수 있습니다.
노드의 잠금 상태는 글로벌 상태입니다. 즉, 그래프 탭을 어떻게 변경하든 모든 탭에 영향을 미칩니다. 노드의 잠금 상태는 조건부이기도 하며, 다른 노드의 업스트림 노드가 모두 잠겨 있다면 해당 다운스트림 노드는 델타를 수신하지 못합니다.
지오메트리와 조인트 아웃라이너가 표시되고 세로 툴바가 표시되어 활성화됩니다.
각 명령에 대한 전체 설명은 UX 개요의 유틸리티 툴바 섹션에서 확인할 수 있습니다.
업스트림 표정 프리뷰
표정에 대한 활성 편집의 또 다른 핵심 요소는 바로 프리뷰 슬라이더입니다.
이 슬라이더를 사용하면 업스트림 표정이 조합에서 블렌딩되는 방식을 프리뷰할 수 있습니다. 표정에 업스트림 표정이 두 개 미만인 경우에는 글로벌 슬라이더만 사용할 수 있습니다.
이 세트 상단의 글로벌 슬라이더는 다른 모든 슬라이더를 동시에 블렌딩합니다. 이것은 사실상 뉴트럴 포즈와 현재 편집된 표정을 블렌딩하는 것과 같습니다.
연속 슬라이더는 대신 업스트림 표정의 블렌드를 각각 제어합니다(있는 경우). 이 단계는 표정 캘리브레이션 이후 가장 중요한 예술적/퀄리티 검사 단계 중 하나로, 더 간단한 업스트림 표정이 잘 결합되는지를 프리뷰할 수 있기 때문입니다.
다운스트림 표정 프리뷰
프리뷰 슬라이더는 업스트림 표정을 프리뷰하여 미리 보고 활성 편집된 조합으로 잘 결합되는지 검증하는 데 유용하지만, 변경사항을 전파할 수 있는 다운스트림 표정에는 아무 기능도 하지 않습니다.
변경사항을 커밋하기 전에 다운스트림 노드를 검사하는 것은 프리뷰 메시의 몫입니다.
프리뷰 메시를 생성하는 경우 3개의 버튼을 사용할 수 있습니다.
이 세 버튼은 각각 다음과 같은 작업을 수행합니다.
표정 그래프에서 선택한 모든 노드에 대한 프리뷰 메시를 생성합니다.
활성 편집된 표정의 다운스트림에서 잠금 해제된 모든 노드의 프리뷰 메시를 생성합니다.
위의 둘 중 하나 또는 둘 모두에 의해 생성된 메시를 삭제합니다.
단계를 통한 표정 편집
표정을 편집하는 경우, 단계 표정 슬라이더에 표정을 편집할 수 있는 포인트가 생깁니다. 왼쪽 또는 오른쪽을 클릭하면 각 단계로 이동하며, 조인트가 빨간색으로 바뀌면 해당 단계를 편집할 수 있습니다. 그런 다음 슬라이더를 사용하여 편집을 완료했을 때 어떻게 보일지 확인합니다.
다운스트림 변경사항 커밋(델타 전파)
표정의 기능 및 결합 방식에 매우 익숙한 숙련 테크니컬 아티스트가 아닌 한 고급 델타 전파는 사용하지 않는 것을 권장합니다. 이것은 모든 의도와 목적 측면에서 Expression Editor의 '전문가 모드'입니다.
델타 전파 모드는 두 가지가 있습니다. 이 비헤이비어는 세팅(Settings) 및 개인설정(Preferences) 메뉴의 옵션으로 제어됩니다.
디폴트 델타 전파 - 편집 내용은 모든 잠금 해제 및 비활성화 상태의 노드(즉, 하나 이상의 업스트림 노드가 잠금 해제된 노드)에 완전히 전파되며, 이는 활성 편집이 완료된 후에만 수행됩니다. 편집을 종료하려면 상단 툴바의 원형 버튼을 누르거나 다른 노드를 더블클릭하세요.
고급 델타 전파 - 편집 내용이 변경 시점에서 잠금 해제 및 비활성화되지 않은 노드 전체로 부분 전파되며, 노드의 잠금 상태를 변경한 후 추가 편집을 진행하면 활성 편집 모드에서 나갈 필요 없이 새 선택 항목으로 전파됩니다. 이렇게 하면 편집 모드를 변경하지 않고도 편집하는 동안 복잡한 선택 항목에 대해 세밀한 조정을 전파할 수 있습니다. 하지만 '플로'가 커질수록 검사 및 유효성 검사가 어려운 변경사항이 발생합니다.
표정에 대한 변경사항, 업스트림 종속성으로 블렌딩된 방식, 변경사항이 다운스트림으로 전파되는 방식이 모두 만족스러운 경우에는 상단 툴바의 원형 버튼을 클릭하거나 현재 활성 노드를 더블클릭하여 활성 편집 모드를 종료할 수 있습니다. 그러면 버텍스에 대한 델타 전파가 마무리됩니다.
표정의 활성 편집을 종료하면 씬에 변경사항이 커밋되지만, 버텍스에만 적용됩니다. 릭은 애니메이션의 완벽한 프리뷰 기능을 제공하지만, 해당 정보는 전적으로 '모프 타깃'에 저장됩니다. 조인트는 위치가 변경되지 않으며 LOD 0에서만 사용할 수 있습니다. 조인트 일치는 버텍스 편집을 따라야 하는 별도의 단계로 디자인되어 있습니다.
첫 번째 표정을 활성 편집하는 동안 다른 노드를 더블클릭하면 첫 번째 표정에 대한 현재 활동이 종료되고, 변경사항이 커밋되며, 더블클릭한 [다른] 표정에 대한 활성 편집을 시작합니다.
표정 편집 툴바에서 MLJM을 처음 실행하는 경우 ML 모델을 로드해야 하므로, 머신 사양에 따라 몇 분 정도가 소요될 수 있습니다. 세션의 후속 사용은 즉시 이루어집니다.
조인트 일치는 다음 섹션에서 훨씬 더 자세히 설명하지만, 여기서는 표정을 편집하는 동안 표정 레벨에서 최소한의 일부 조인트 일치를 수행할 수 있다는 점에 주목합니다. 단, 툴바에서 제공되는 머신 러닝 기반 조인트 일치(Machine Learning Based Joint Matching, MLJM)으로 제한됩니다.
씬 레벨 조인트 일치
조인트 일치는 '아트' 측면이 아니라 최적화 프로세스처럼 체계적으로 접근하는 것이 권장됩니다. 창의적 기여도와 유사도 일치가 표정 편집 단계에서 버텍스에 대해 최적으로 수행된다면, 조인트 일치는 모프 타깃이 기여하는 디스플레이스먼트를 최소화하여 조인트 트랜스포메이션만으로 최대한 많은 정보와 정확도를 표현합니다.
이것은 대부분의 경우 조인트 일치 패스를 실행하면 자동으로 수행되지만, 검사 자체는 적극 권장되며 처음 몇 단계에서는 일부 수정이 필요합니다.
LOD 0(조인트 및 버텍스 애니메이션)과 조인트 전용 애니메이션 간의 차이를 최소화하는 데는 조인트와 버텍스 간의 거리를 최소화할 필요가 없습니다. 사실 이러한 표정은 종종 비생산적인 경우가 많습니다.
최소화는 조인트 전용 LOD(또는 버텍스 애니메이션이 없는 LOD 0)의 볼륨을 LOD의 전체 디테일에 최대한 가깝게 맞추는 것을 목표로 해야 합니다.
좋은 결과에서, 버텍스 하나 이상에 영향을 미치는 조인트와 조인트 하나 이상에 영향을 받는 버텍스는 뉴트럴 포즈에서 근처에 위치한 버텍스와 거의 정렬되지 않습니다.
표면 조인트가 버텍스에 가까이 위치하는 것은 뉴트럴 포즈에서만 가능하며, 표정에는 제대로 적용되지 않습니다.
조인트 일치는 단순한 프레임 레이트와 관련된 최적화에 불과한 것이 아니라 그 이상입니다. 조인트 애니메이션은 선형 보간에서 불가능한 방식으로 보간을 수행합니다. 시네마틱 세팅에서 LOD 0만 사용하는 경우에도 조인트 일치는 수행하는 것을 권장합니다. 모프 타깃은 모션을 매우 풍부하게 만들 수 있지만, 미묘함과 최소한의 디스플레이스먼트를 목표로 해야 합니다.
조인트 일치의 포맷은 NLS와 ML 두 가지가 있습니다.
비선형 솔버 조인트 일치(NLS Joint Matching, NLSJM)는 다양한 조인트 세트에서 작동할 수 있는 분석 기반의 정립된 프로세스이며, ML 조인트 일치는 에픽게임즈의 데이터베이스로 학습된 실험단계의 데이터 기반 머신 러닝 접근 방식입니다.
ML 조인트 일치(ML Joint Matching, MLJM)는 비교적 일반적인 신체 비율을 가진 인물의 경우 한 번의 패스로 빠르게 작동합니다. 하지만 타깃 메시가 일반적인 인체 형태에서 벗어나면 퍼포먼스가 저하됩니다. 보통은 시험 삼아 한번' 실행하여 결과물을 검사해 보기에 좋은 기능입니다.
MLJM을 실행한 후에도 NLS 프리셋을 일부 실행하여 헤드 회전과 관련된 조인트처럼 MLJM이 배치하지 않는 조인트를 처리해야 할 수 있습니다. 자세한 내용은 관련된 알려진 문제점에서 확인할 수 있습니다.
대신 NLSJM은 특정 조인트 세트에 영향을 미치는 여러 패스로 실행됩니다.
NLS 조인트 일치
NLSJM은 '패스'로 실행됩니다. 패스는 알고리즘 실행으로 위치를 변경할 수 있도록 하는 조인트 세트입니다. 각 패스는 표정을 나타내는 메시에서 찾은 볼륨과 일치하도록 조인트를 배치합니다. 가장 효과적이라고 판단되는 프리셋의 전체 목록을 순차적으로 명명한 목록을 편의상 및 지침용으로 제공합니다.
조인트 일치 패스를 실행하려면 실행할 패스를 선택하고 'Run' 버튼을 클릭하기만 하면 됩니다.
프리셋 선택은 NLSJM에만 영향을 미치며 MLJM에는 아무런 영향을 미치지 않습니다.
조인트 일치는 수동 보정을 통한 인터리브가 가능하며, 다음 편집 권장 사항 섹션에서는 일반적으로 성공하는 특정 순서에 대한 지침을 제공합니다.
프리셋 실행은 프리셋과 프리셋에 포함된 조인트 수에 따라 몇 초~몇 분 정도의 시간이 걸릴 수 있습니다.
일부 NLSJM 패스는 최소한으로라도 항상 필요하며, MLJM 실행 후에도 실행할 가치가 있습니다(MLJM 섹션의 권장 사항 참고).
ML 조인트 일치
MLJM은 실험단계 기능입니다.
MLJM은 머신 러닝 조인트 배치 시스템으로, 메타휴먼 크리에이터에서 사용하는 데이터베이스와 동일한 에픽게임즈 데이터베이스의 캐릭터로 트레이닝했습니다.
Expression Editor 툴바에서처럼 개별 표정에 대해 작동하거나 그래프 대부분의 표정에 대해 한꺼번에 작동할 수 있습니다.
ML 조인트 일치 조인트 제외
Expression Editor는 MLJM이 다음 조인트에 영향을 미치지 않도록 명시적으로 방지합니다.
|
|
|
일반적으로 최종 사용자와는 관련이 없지만, 라이브러리를 직접 사용하고 Expression Editor의 특정 구현 디테일을 무시하는 경우에는 중요할 수 있습니다.
MLJM은 일부 표정에 영향을 미치지 않으므로(위 목록 참고), 일부 NLSJM을 실행해야 하는 이유가 더 커집니다.
DNA 업데이트
메모리의 DNA는 씬의 콘텐츠로 덮어쓰기 됩니다.
씬을 업데이트하지 않는 조인트 일치와 이 업데이트 간의 인터랙션에 유의해야 합니다.
표정 편집 작업을 시작하거나 돌아가기 전, 조인트 일치 후에는 항상 DNA를 다시 로드하는 것을 권장합니다.
이 명령은 표정의 씬, 메시 및 조인트 관련 상태를 분석한 다음 모든 표정을 메모리에 있는 DNA로 다시 인코딩합니다. 이 명령은 사용이 권장되지 않는 임시 파일을 저장하며, 저장 오퍼레이션은 구성하지 않습니다(저장 명령은 이 명령 오른쪽에 있음).
DNA 저장
DNA를 있는 그대로 메모리에 파일로 저장합니다. 그 외에 다른 계산은 수행되지 않으며, 저장하려는 변경사항이 모두 메모리의 DNA에 반영되었는지 확인하는 것은 사용자의 몫입니다.
사용자가 워크플로와 각 포인트에서 어떤 효과를 볼 수 있는지 익숙해질 때까지는, 추가 오퍼레이션을 수행하기 전에 먼저 DNA 파일을 저장하고 다시 로드하는 것을 권장합니다.
다음 단계
데이터 저장 및 익스포트하기
메타휴먼 크리에이터와 언리얼 엔진에서 사용할 수 있도록 수정된 메타휴먼 헤드 DNA를 준비하는 방법을 살펴봅니다.