본문 바로가기

PMX용 블렌더 튜토리얼

모델에 기본 Bone을 박아서 PMX로 내보내기 - 2

레퍼런스 - Pymeshio(변종) 다운로드 및 사용법 요약

튜토리얼 - 모델에 기본 Bone을 박아서 PMX로 내보내기 - 1

튜토리얼 - 모델에 기본 Bone을 박아서 PMX로 내보내기 - 2

튜토리얼 - 모델에 기본 Bone을 박아서 PMX로 내보내기 - 3

튜토리얼 - 모델에 기본 Bone을 박아서 PMX로 내보내기 - 4


※이것은 블렌더 초보자용 튜토리얼이 아닙니다.

블렌더에 대해 잘 모르시는 분들은 아래 과정을 중간중간 포함하는 PMX 모델만들기 프로젝트라는 개인적인 목표를 세우시고, 다른 여러 커뮤니티와 가이드를 통해서 필요한 것들을 느끼고 공부하면서 천천히 도전해보시길 바랍니다.


2회차는 Bone에 IK를 적용하고, 회전 따라하기, 회전 제한 등의 설정을 적용하고, 왼쪽 본을 오른쪽으로 Mirroring하는 것을 다룹니다.


▲ 이제 leg IK_L을 PMX상의 IK본으로 만들어봅시다. 그렇게 하려면 leg IK_L를 건드릴 필요가 전혀 없고, PMX상에서 그의 타겟이 되는 ankle_L 본에 'Inverse Kinematics' bone constraint를 적용시켜야합니다.

PMX랑 적용방식이 완전히 반대로 되어있죠. 이것때문에 블렌더 애드온 만드는 분들 머리좀 싸맸을 것 같네요. 실제로 이렇게 해야만 블렌더 내부에서 동작 테스트를 해도 PMX와 동일하게 움직입니다.



▲ 타겟을 leg IK_L로 잡고, Use Tail 체크를 풀어서 Use Head로 동작하게 만들고, IK속성을 전염시키는(chain transfer) 징검다리 횟수를 2회로 지정합니다. 2회로 하면, 1회째 knee_L로, 2회째 leg_L까지만 전달되겠죠. IK성능은 이동수치만 100% 받아오도록 합니다.



▲ 다음엔 무릎이 접히는 각도를 앞뒤로만 접히도록 제한해봅시다. bone constraint 패널에서 벗어나 bone 패널로 돌아와서 Inverse Kinematics 파트를 찾습니다. 그리고 Limit를 체크하는데 제일 위에 있는 X에만 체크해도 PMX로 내보낼 때 그냥 회전이 제한된걸로 읽어들입니다.

회전방향이 블렌더와 PMX가 서로 반대이기 때문에 -0.5도부터 +180도라고 입력하면 PMX에서는 -180도부터 +0.5도까지로 제한됩니다.



▲ pose mode에서 leg IK_L 본을 붙잡고 translate(단축키 G)로 테스트해봅니다. 흠, 뭔가 어색한데...

생각해보니까 블렌더에서 Y, Z를 제한을 안했네요. 0~0도까지 Y, Z도 다 제한을 해야 블렌더에서도 테스트할 때 제대로 움직입니다.

바로 전 과정으로 돌아가서 Y랑 Z의 Limit를 모두 체크하고 0도로 완전히 움직이지 않게 제한하고 테스트해보세요.



▲ 이제 눈알 설정을 해보겠습니다. 사시(斜視)를 일부러 하려고 하지 않는한, 대부분 eyes 본을 움직여 시선을 컨트롤합니다. 그래서 좌우 눈이 eyes 본을 따라 움직이도록 하는 작업입니다.

Copy Rotation constraint를 설정하고, 필요한 경우 Influence 수치를 낮춥니다. 0.9라고 설정하면, eyes 본이 10도 움직이면 눈알 본은 9도 움직이게 됩니다.



▲ 다음은 축 제한 설정입니다. PMX상에서의 축 제한은 여기서 그냥 Limit Rotation 제약을 설정해두기만 하면 본의 방향을 토대로 데이터를 알아서 만들어서 가져갑니다.



▲ 팔 비틀림 본이 가장 선두에 있는 본의 회전을 조금씩 따라하는 것을 만듭니다.

위아래 각각 3개 총 6개의 본에 Copy Rotation 제약을 만들고, 타겟을 arm twist_L 혹은 wrist twist_L로 합니다.

대충 가까운건 0.75, 중간은 0.5, 멀리있는건 0.25정도를 넣으면 됩니다.

이렇게 하면 팔이 좀 부드럽게 비틀립니다.

이 본들은 필수는 아닙니다. MMD에서 모션할당도 하면 안되구요.



▲ edit mode로 돌아와서, 나머지 반대편 _R 본들을 만들겁니다.

_L postfix가 붙어있는 모든 본들을 선택합니다.

그 다음 cursor를 0,0,0에 위치시키고(단축키 Shift+C), 피벗포인트를 커서로 변경합니다.



▲ 그리고 Shift+D를 눌러서 duplicate한 다음에, Ctrl+M을 눌러서 mirroring을 합니다.

그리고 w를 눌러서 특수메뉴를 호출한 다음에 Flip Names를 선택하면 _L관련 뭐시기가 알아서 싸악 _R로 바뀝니다.

부모관계부터 constraint 설정까지 전부 다.



2회차는 여기까지 입니다. 수고하셨습니다.

튜토리얼 - 모델에 기본 Bone을 박아서 PMX로 내보내기 - 3