Mutable Character Customization은 언리얼 엔진 5.5버전부터 지원되는 플러그인으로,
런타임 중 동적으로 스켈레탈 메시를 수정할 수 있다.
🚀 mutable vs. const 키워드
- const : 변수 및 객체를 수정할 수 없다.
- mutable : 클래스 멤버 변수에 사용되며, const 함수에서도 수정 가능하다.
class Example { const int ConstValue; // const 함수에서 수정 불가 mutable int MutableValue; // const 함수에서도 수정 가능 public: void ConstFunction() const { // ConstValue++; // 컴파일 에러 MutableValue++; // 가능 } };
프로젝트 세팅 → 플러그인 → Mutable 플러그인을 활성화해야한다.
이 플러그인은 언리얼 엔진 5.5 버전 이상부터 지원된다.
Customizable Object는 스켈레탈 메쉬의 런타임 파라미터를 사전에 정의하는 객체다.
셰이더 컴파일되는 Master Material과 비슷하다.
Customizable Object로 생성할 수 있는 인스턴스로, 런타임 파라미터 변경이 가능하다.
Master Material로 만들어진 Material Instance과 비슷하다.
CO에 정의한 런타임 파라미터인 Pants, Shirt, Shoes, SkinTone 값을 수정하면, COI의 뷰포트에 반영되는 것을 볼 수 있다.
( ※ Shirt가 몸을 뚫고 나오는 현상은 Mesh Morph 노드로 개선할 수 있다. )
Customizable Object Instance를 Skeletal Mesh Component에 적용하기 위한 연결고리다.
캐릭터에 Customizable Skeletal Component 추가
캐릭터 메쉬가 런타임 중에 변경될 수 있도록, Customizable Skeletal Component를 어태치하고 COI와 Component Name 정보를 입력했다.
COI Parameter 수정 함수
런타임 중 COI Parameter를 변경할 수 있는 함수들도 만들었다.
런타임 중에 COI Parameter 수정을 통해 캐릭터 메쉬가 잘 수정된다.