Why skin weights is broken in the Unreal?

Why skin weights is broken in the Unreal?

Problem

대부분의 게임엔진은 최적화 이슈로 인해서 기본적으로 Max Influences 개수를 제한한다.
여기서 Influence 란 Vertex 를 Skin Deformation 하는데 사용되는 Joint(또는 Bone)를 의미한다.

최근 Unreal Engine 을 영상제작에 사용하는 사례가 늘고 있는데, 영상은 실시간으로 애니메이션이 재생되는 것이 아니기 때문에 Joint 를 몇개를 사용할지, Max Influences 는 몇개로 할지에 있어서 비교적 자유롭다.

Max Influences 개수가 엔진에서 제한하는 개수를 초과할 시 위 이미지와 같은 문제가 발생하는 것이다.
(일정 수치 이하의 Weight 값을 가지는 Influences 가 제외되는 듯…)

Solving

이 문제를 해결하기 위해서 아래와 같이 두가지 방법이 있을 수 있다.

Bind Skin Options in DCC

Joints 로 Mesh 를 Bind 할 때, Max Influences 의 개수를 엔진의 Default 에 맞추고, Maintain max influences 옵션을 체크해서 Max Influences 가 변경되지 않도록 설정한다.

Unreal Engine Project Settings

Edit > Project Settings… 메뉴를 선택해서 Project Settings 창을 연다.

Rendering > Skinning 에서 Use Unlimited Bone Influences 옵션을 체크한다.
그리고, Unreal Engine 을 재시작 한다.

Conclusion

Skin Weighs 깨지는 문제가 해결되었다.

예제는 영상제작에 사용되는 캐릭터였기 때문에, Unreal Engine 의 Project Settings 를 변경하는 방법으로 해결하였다.


Index