뮤터블(Mutable)이 우리 프로젝트에 잘 맞을까요?
많은 프로젝트가 캐릭터 부위 교체 시스템을 사용할 수 있으며, 시간 셰이더 이펙트로 컬러를 표현할 수 있습니다. 이러한 프로젝트에는 뮤터블이 필요하지 않을 수 있습니다. 뮤터블은 고도의 커스터마이징이 필요하고 퍼포먼스가 중요한 게임 사례를 해결하는 데 초점을 맞춘 툴입니다.
뮤터블은 어떤 기능을 제공하나요?
뮤터블은 언리얼 엔진을 위한 완전히 유연한 메시 커스터마이징 시스템으로, 특정 템플릿, 모습, 기능에 강제로 맞추는 사전 정의된 메시나 스켈레톤, 텍스처, 모프를 사용하지 않습니다. 원하는 컨트롤 파라미터와 자유도로 원하는 대로 커스터마이징할 수 있는 메시나 캐릭터를 만들 수 있습니다. 바이페드나 동물뿐 아니라 커스터마이징할 수 있는 나무나 오브젝트도 만들 수 있고, 뮤터블은 사용자가 사용할 수 있는 효율적인 표준 UE 스켈레탈 메시를 생성합니다. 이러한 스켈레탈 메시는 게임 내에서 실시간으로 생성할 수도 있고, 언리얼 에디터에서 프로덕션 단계에서 일반 에셋으로 구울 수도 있습니다. 이렇게 뮤터블을 또 하나의 강력한 아트 파이프라인 툴로 사용할 수 있습니다.
커스터마이징 가능한 캐릭터는 뮤터블 그래프 에디터로 개발됩니다. 뮤터블 에디터는 UE 에디터에 완전히 통합되어 있고 머티리얼 에디터와 매우 비슷합니다. 뮤터블은 C++ 및 블루프린트 API를 둘 다 사용하여 게임 속 캐릭터 커스터마이징을 제어하기도 합니다.
게임에서 사용할 수 있는 캐릭터 라이브러리가 뮤터블에 포함되어 있나요?
아니요. 뮤터블은 캐릭터 라이브러리가 아니며 여전히 아티스트가 게임에 사용할 에셋을 만들어야 합니다. 뮤터블을 사용하면 이러한 에셋을 최적화된 최종 게임 캐릭터에 결합하는 방법을 결정하고 파라미터를 생성하여 커스터마이징할 수 있습니다.
뮤터블은 캐릭터 커스터마이징 시스템의 초기 샘플 프로젝트를 제공하나요?
네, 팹 마켓플레이스에 샘플 프로젝트가 있습니다. 노드 시스템의 기본적인 아이디어는 무엇인가요? 바디에 포함할 부위들을 배열한 후 그 위에 모디파이어를 추가하는 방식 같은 것인가요? 이 노드 시스템의 목적은 사전 정의된 템플릿이 없게 만들어 개발자에게 최대의 유연성을 제공하고, 프로그래머가 아닌 사람도 커스터마이징 가능한 복잡한 캐릭터를 디자인하고 구현할 수 있게 하는 것입니다.
그래프는 베이스 오브젝트 노드이며, 여기에 자손 오브젝트를 계층형으로 어태치할 수 있습니다. 이러한 모든 오브젝트는 메시와 머티리얼을 추가하거나 대체되거나 잘리거나 확장되거나 다른 노드에 의해 오브젝트의 머티리얼이 트랜스폼될 수 있습니다.
표준이 아닌 머티리얼이나 렌더링 파이프라인을 사용하는 경우에도 뮤터블을 사용할 수 있나요?
네, 뮤터블은 머티리얼과 텍스처를 타입과 수량에 상관없이 사용할 수 있습니다. '컬러', '노멀', '메탈릭' 또는 기타 머티리얼 프로퍼티용으로 하드코딩된 기능이 없습니다.
뮤터블은 캐릭터에 어떤 종류의 에셋을 생성하나요? 특별하거나 커스터마이징된 스켈레탈 메시가 있나요? 어떤 단점이나 퍼포먼스 저하가 있나요?
뮤터블은 표준 스켈레탈 메시와 텍스처를 생성합니다. 생성을 마치면 아티스트가 만든 에셋과 동일합니다. 이를 UE 에셋에 구워 뮤터블을 사용하지 않는 프로젝트에 익스포트할 수 있습니다.
스켈레톤의 핵심 구조는 무엇인가요? 예를 들어 UE 마네킹 기반인가요?
뮤터블에는 사전 정의된 스켈레톤이 없습니다. 개발자는 뮤터블 그래프에서 임의의 레퍼런스 스켈레톤으로 레퍼런스 메시를 설정한 다음, 제공된 레퍼런스 스켈레톤 구조로 캐릭터를 생성합니다. 자체 스켈레톤을 사용할 수도 있고, 휴머노이드나 동물, 로봇, 물체를 생성할 수도 있습니다.
뮤터블로 애니메이션을 조정할 수 있나요?
아니요, 뮤터블은 스태틱 오브젝트나 스켈레탈 오브젝트의 메시와 텍스처만 빌드하고 애니메이션은 건드리지 않습니다. 뮤터블은 표준 스켈레톤이 있는 표준 스켈레탈 메시를 생성하므로 완전한 애니메이션 시스템을 사용할 수 있습니다.
뮤터블은 크라우드 시스템을 제공하나요?
네, 뮤터블은 기본적으로 즉시 사용할 수 있는 크라우드(군중) 생성 예시 시스템을 제공합니다. LOD가 지원되는 커스터마이징 기능을 사용하여 인구 수를 채웁니다. 이러한 종류의 시스템은 각 프로젝트에 맞춰 매우 유연하게 설정할 수 있으므로 이 시스템을 예시로 자체 시스템을 생성할 수 있습니다. 자세한 내용은 인구 페이지를 참조하세요.
이 솔루션을 내비게이션 시스템, IK 솔버, 크라우드 시스템에 연결할 수 있나요?
뮤터블은 UE 스켈레톤이 있는 표준 UE 메시를 생성하므로 해당 시스템이 일반 UE 에셋과 정상 작동하면 뮤터블로 생성한 에셋과도 작동할 것입니다.
뮤터블은 동시에 몇 명의 캐릭터를 지원하나요?
뮤터블에 하드 코딩된 한도는 없습니다. 뮤터블은 아티스트가 직접 제작하는 메시와 동일한 일반 UE 메시를 생성하므로, 폴리곤 수나 텍스처 해상도 같은 캐릭터 비용에 따라 타깃 시스템에서 지원하는 만큼 메시를 생성할 수 있습니다. UE의 제한 요인은 메모리나 렌더링 비용보다는 애니메이션 비용입니다.
뮤터블은 런타임 때 고정된 아틀라스를 생성하나요? 아니면 항상 수정할 수 있나요?
원하는 대로 설정할 수 있습니다. 모든 캐릭터 베리에이션이 사용하는 고정된 아틀라스를 사용할 수도 있고, 게임에서 캐릭터에 옷을 입히거나 벗기는 데 따라 바뀌는 가변 아틀라스를 사용할 수도 있습니다. 캐릭터 부위마다 각기 다른 아틀라스나 머티리얼을 사용할 수도 있습니다. 가령 바디, 재킷, 헬멧에 서로 다른 아틀라스를 적용할 수 있습니다.
아예 아틀라스를 사용하지 않고 모든 캐릭터 부위에 독립적으로 사전 정의된 자체 레이아웃, 텍스처, 머티리얼을 사용할 수도 있는데, 이 방식이 적합한 종류의 게임도 있습니다.
데칼 시스템은 얼마나 실시간으로 적용되나요? 데칼 시스템을 사용하는 경우, 추가할 수 있는 커스터마이징 종류에 제한이 있나요?
데칼은 프로덕션 단계에서 텍스처에 구울 수도 있고 실시간으로 설정하거나 업데이트할 수도 있습니다. 아티스트는 데칼 시스템을 아트 파이프라인에서 사용하여 흥미로운 텍스처를 생성하고 굽거나, 플레이어가 게임 내에서 실시간으로 데칼과 문신의 위치를 변경할 수 있습니다. 실시간으로 편집하는 경우, 뮤터블의 상태(State) 기능을 사용하여 데칼만 실시간으로 업데이트하고 캐릭터의 나머지 부위는 업데이트하지 않도록 설정하는 것이 좋습니다.
데칼 시스템은 개발자가 선택한 머티리얼 채널에 투영되어 제약 사항이 거의 없으므로 다양한 결과를 얻을 수 있습니다. 유일한 제약이라면 조직적인 이유가 있을 수 있습니다. 예를 들어, 하나의 프로젝터로 원하는 교체 가능 부위에 영향을 주고 싶다면, 해당 교체 가능 부위는 모두 단일 그룹 노드의 자손이어야 합니다.
뮤터블에 헤어나 클로스 같은 다이내믹 시스템이 포함되나요?
뮤터블은 UE에서 제공하는 것 외에는 다른 다이내믹 시스템을 추가로 제공하지 않습니다. 일부 UE 헤어 및 클로스 시스템이 지원됩니다(이 FAQ의 다른 질문 참조).
뮤터블은 UE로 출시된 헤어 그룸 및 헤어 렌더링 시스템을 지원하나요?
언리얼 엔진의 그룸을 지원합니다.
뮤터블은 모프를 지원하나요?
네, 뮤터블은 소스 스켈레탈 메시에 있는 모프를 읽을 수 있습니다. 이러한 모프를 생성된 메시에 구울지(모프에 소모되는 실시간 비용 없음), 실시간 애니메이션을 위해 표준 UE GPU 모프로 놔둘지는 개발자의 선택입니다.
뮤터블은 캐릭터의 노화를 시뮬레이션할 수 있나요?
네, 모프 및 노멀 맵 텍스처 작업을 사용하여 노화 이펙트를 구현합니다.
뮤터블은 페이셜 애니메이션을 지원하나요?
네, 뮤터블은 본 기반 애니메이션, 실시간 모프, 모프 기반 페이셜 애니메이션을 지원합니다.
뮤터블이 클로스 애니메이션을 처리할 수 있나요?
언리얼 엔진에는 여러 가지 클로스 애니메이션 시스템이 있습니다.
- UE 클로딩 툴: 뮤터블 1.3 이상에서 지원됩니다.
- nVidia Apex 클로스: 뮤터블에서 지원하지 않으며, 앞으로도 지원하지 않습니다. 이 시스템은 뮤터블이 상호작용할 수 없는 바이너리 블롭의 불투명 데이터를 사용합니다.
- 애님 다이내믹스: 이 시스템은 본에 의존하여 메시를 디폼하며, 특별한 요구 사항 없이 지원됩니다. 애님 다이내믹스에 대한 개요는 다이내믹 애니메이션 생성하기를 참조하세요.
- 패널 클로딩: 뮤터블에서 지원하지 않습니다.
뮤터블은 애님 다이내믹스를 지원하나요?
네, 지원합니다.
뮤터블에 의해 생성된 캐릭터에는 피직스 에셋을 어떻게 설정하나요?
뮤터블은 기본적으로 피직스 에셋을 건드리지 않지만, 루트 커스터마이징 가능 오브젝트에 있는 레퍼런스 메시의 바디 에셋을 자동으로 사용하도록 옵션을 활성화할 수 있습니다. C++를 사용하여 UCustomizableObjectInstance::SetReplacePhysicsAssets(true) 를 호출하세요. 아니면 스켈레탈 메시 컴포넌트에서 피직스 에셋 오버라이드(Physics Asset Override) 프로퍼티를 사용할 수도 있습니다.
뮤터블에 특별한 헤어 렌더링 기능이 있나요? 긴 머리나 포니테일을 물리적으로 시뮬레이션할 수 있나요?
아니요, 뮤터블에는 헤어 전용 기능이 없습니다. 뮤터블은 표준 UE 메시, 머티리얼, 텍스처를 사용하고 생성하므로 언리얼 엔진으로 만들 수 있는 모든 헤어 이펙트는 뮤터블 캐릭터에도 통합할 수 있을 것입니다.
뮤터블은 레퍼런스로 제공된 스켈레톤을 따르므로 UE 애님 다이내믹스 본을 유지하며 이를 물리적으로 시뮬레이션된 포니테일에 활용할 수 있습니다.
구운 모프 또는 실시간 모프로 스켈레탈 메시의 높이를 변경할 수 있나요?
굽든 실시간이든 뮤터블 모프에는 언리얼 엔진의 모프 타깃과 같은 제한이 있습니다. 스켈레탈 메시와 함께 모프 타깃을 사용할 때 맞닥뜨리는 제한 중 하나는 입힌 스킨이 깨질 수 있다는 점입니다. 본은 모프 타깃의 영향을 받지 않으므로 모프 적용 후에 메시의 버텍스가 본의 어긋난 위치에 놓이게 되어 원하지 않는 디포메이션이 발생할 수 있습니다. 모프 타깃을 사용하여 캐릭터의 높이를 변경하면 이러한 제한을 만나게 될 것이므로 이런 사용 방법은 권장하지 않습니다. 더 좋은 방법은 본 트랜스폼을 사용하는 것인데, 이 방법은 뮤터블로 생성된 스켈레탈 메시를 전적으로 지원합니다.
뮤터블은 콘텐츠 업데이트와 바이너리의 차이를 어떻게 처리하나요?
게임에서 모든 커스터마이징 가능 오브젝트를 성공적으로 컴파일한 후 뮤터블이 생성하는 모든 데이터(일반적으로 완전한 게임의 경우 수백 MB 정도이며, 게임 내에서 스트리밍 및 캐시 진행)는 게임 프로젝트 안의 한 폴더에 여러 파일로 저장됩니다. 이 폴더와 파일들은 모두 환경설정 옵션을 사용하여 변경할 수 있습니다. 개발자는 이러한 옵션을 사용하여 파일의 최대 크기를 지정할 수 있는데, 개발자가 최대 크기를 크게 설정하면 모든 데이터가 하나의 큰 파일에 저장되고, 이 파일은 콘텐츠가 업데이트될 때마다 수정됩니다.
반대로 최대 크기가 작으며 오브젝트마다 각기 하나의 작은 파일에 저장됩니다. 그러면 수많은 파일이 생성되긴 하지만, 변경 파일만 수정하는 방식으로 콘텐츠 업데이트를 더욱 세련되게 처리합니다. 여기서부터 UE의 pak 시스템이 이어받아 모든 뮤터블 파일들을 하나의 팩 파일로 패키징할 수도 있습니다. 그러면 해당 파일들을 여러 개의 pak 파일에 분할하거나, 아예 pak 파일에 넣지 않을 수도 있습니다.
뮤터블 캐릭터를 검사하거나 디버깅할 수 있나요? 뮤터블 캐릭터가 예상대로 작동하지 않으면 어떻게 하나요?
뮤터블은 에디터 세션이나 게임 도중에 발생하는 오류 메시지를 메시지 로그 또는 출력 로그에 출력합니다. 그래프 에디터는 문제 있는 노드도 하이라이트 처리합니다.
뮤터블 에디터 세션 도중에 프리뷰 뷰포트에서 실시간으로 결과를 확인하는 것 외에, 현재 프리뷰 뷰포트에 표시되는 스켈레탈 메시의 하이퍼링크 섬네일을 확인할 수도 있습니다. 이 섬네일을 더블클릭하면 이 스켈레탈 메시를 보여주는 UE 스켈레탈 메시 에디터 창이 열립니다. 이 창에서 메시, 머티리얼, 텍스처 레이아웃, 메시가 사용하는 텍스처를 검사할 수 있습니다.
뮤터블로 피부에 밀착되는 투명한 옷은 어떻게 구현하나요?
텍스처 블렌딩에 모프를 조합하면 구현할 수 있습니다.