Q. Neck이 있는데, 목 Bone은 왜 만드는가?
A. 애니메이터가 머리를 돌렸을 때, 그에 따라 Neck도 돌려주어야 한다.
하지만, 매번 Neck까지 애니메이션을 하는 것이 귀찮은 것이 사실이다.
그러나 Neck까지 애니메이션 해주지 않으면, Neck과 머리의 폴리곤이 돌아가는 양이 많은 차이가 난다.
특히 머리가 앞뒤로 움직이게 되면 왜곡은 더 심해진다.
그렇기 때문에 무조건 Neck을 움직여주긴 해야 한다.
목 Bone은 머리가 움직이는 것에 따라 자동으로 목이 움직이도록 하기 위해 만드는 것이다.
Q. 굳이 만들 필요는 없는 것인가?
A. Additional Skeleton은 굳이 만들 필요가 없는 것이고, 목 Bone도 Additional Skeleton이다.
그러므로 필수적인 것은 아니다.
목 Bone을 안 만든다면, 매번 Neck을 애니메이션 해주면 된다.
하지만 목 Bone을 만들 수 있다면 만들어주는 것이 편하다.
Q. 목 Bone을 만드려면 뭐부터 해야하는가?
A. 언제나처럼 Point를 생성하는게 시작이다.
Q. Point는 몇개 만드는가?
A. 5개를 생성한다.
Q. 갈수록 Point의 개수가 많아지는 것 같다.
A. 어쩌다보니 그렇게 되어 버렸다.
의도한건 아니지만,,, 계속 하나씩 개수가 늘어나는게 재밌는 것 같다.
Q. 생성한 Point들은 어디에 어떻게 정렬을 하는가?
A. 먼저, Point 3개를 목, 머리, 머리 Nub에 정렬을 시킨다.
나머지 2개는 정렬했던 Point 3개와 모양이 다르게 해주고, 목과 머리 Nub에 정렬해준다.
머리 Nub에 방금 정렬한 Point는 LookAt Constraint의 타겟이 될 것이다.
그리고 목에 방금 정렬한 Point는 LookAt Constraint의 Upnode가 될 것이다.
Q. Upnode가 된다는 것은 무슨 뜻인가?
A. Upnode는 축의 기준이 되는 것이다.
Upnode용으로 Point를 따로 생성한 이유는, LookAt Constraint를 적용하면 축이 Upnode에 맞게 바뀌기 때문이다.
축이 목과 축이 틀어지면 애니메이션을 할 때 튀는 현상이 발생한다.
그렇기 때문에 축을 맞춰주기 위해 Upnode용 Point를 하나 생성해 준 것이다.
Q. 튀는 현상은 무엇을 얘기하는가?
A. 애니메이션의 움직임이 중간에 한번 끊기는 것처럼 보이는 현상을 의미한다.
버퍼링 때문에 동영상이 잠깐 멈췄다가 움직이는 것과 같다고 보면 된다.
Q. Upnode용 Point를 생성하지 않고, 목을 Upnode로 지정하면 안 되는가?
A. 간과하지 말아야 할 것이 있다.
지금 작업하는 모든 Additional Skeleton은 Merge를 할 수 있도록 만들고 있다는 사실을 말이다.
Merge를 해서 정상작동이 되도록 하려면, Biped를 Constraint 타겟으로 하면 안 된다.
Q. 이번에는 Constraint의 타겟이 아닌 Upnode가 아니라서 괜찮지 않은가?
A. Upnode를 선택하는 것도 엄연히 타겟이다.
타겟이라는 것 자체가 대상이라는 뜻이기 때문이다.
그러니 Biped가 아닌 Point를 사용하여 Upnode를 지정해주는 것이다.
Q. Point를 5개 다 정렬했다. 다음으로 할 것은 무엇인가?
A. Point들을 Link 해줘야 한다.
먼저, 처음에 정렬했던 Point 3개를 정렬했던 오브젝트에 맞게 Link를 해준다.
그 다음으로 목에 정렬했던 Upnode용 Point는 목에 Link 해준다.
머리 Nub에 정렬했던 Constraint 타겟용은 머리 Nub에 Link 해준다.
Q. Link 다음은 무엇을 해야 하는가?
A. 목 Bone을 아래에서 위로 생성하고, Neck에 정렬시킨다.
End Bone은 지웠다가 다시 생성해서 정렬시킨다.
정렬을 끝낸 목 Bone은 목에, (목 Bone의) End Bone은 머리에 Link 한다.
Q. Bone까지 작업했는데, 또 생성할 것이 있는가?
A. 이제 더 생성할 것은 없다.
남은 것은 Constraint를 적용시키고, 오브젝트의 이름을 알맞게 바꾸어 레이어 정리를 하는 것이다.
Q. Constraint는 무엇을 어떻게 적용시키는가?
A. 타겟용 Point에 Position Constraint를 적용한다.
그리고 머리에 정렬했던 Point와 머리 Nub에 정렬했던 Point를 타겟으로 지정한다.
Weight 값은 [머리:Nub] 15~20:80~85 정도로 지정해준다.
다음으로 목 Bone에 LookAt Constraint를 적용시킨다.
LookAt Constraint의 Upnode를 Upnode용으로 만들고 정렬했던 Point로 선택한다.
마지막으로 LookAt Constraint의 타겟으로, 타겟용으로 만들어둔 Point를 지정한다.
Q. 끝인가?
A. 아직이다.
위 작업까지 하면 목을 앞뒤로 움직였을 때는 목 Bone이 따라가지만, 목을 양옆으로 돌렸을 때는 따라가지 않는다.
그러므로 목을 양옆으로 돌렸을 때, 목 Bone이 따라서 적절하게 회전하도록 해줘야 한다.
그래서 Orientation Constraint를 추가로 적용시켜줘야 한다.
Q. Orientation Constraint은 어떻게 적용시켜줘야 되는가?
A. LookAt Constraint의 타겟이 되는 Point에 적용시켜줘야 한다.
그리고 Orientation Constraint의 타겟으로는 처음에 목과 머리에 정렬했던 Point를 선택한다.
Point를 두개 선택하는 이유는, 목 Bone이 온전히 머리를 따라 돌아가는게 아니라 목과 머리의 중간 값만큼 회전해야 하기 때문이다.
Q. 더 해야할 작업이 있는가?
A. 오브젝트의 이름을 바꾸고, 레이어 정리를 하면 된다.
Q. Helper가 늘어나면서 구분이 어렵다. 오브젝트의 이름을 미리 바꿔도 되는가?
A. 오히려 먼저 바꾸면 구분이 쉬워서 좋다.
오브젝트의 이름을 바꾸는 것이 실질적인 작업보다는 마무리 작업에 가깝다고 느껴서 끝에서 설명을 한 것뿐이다.
Point와 Bone을 모두 생성하고 오브젝트의 이름을 한번에 바꿔주면 작업을 할 때, 구분이 쉬워서 오히려 좋다.
Q. 마지막으로 할 말이 있는가?
A. 딱히 크게 할 말이 없다.
굳이 해야한다면, 다른 파일에 Merge를 했을 때 Bone Edit Mode를 키고 Bone 길이를 알맞게 수정한 후 [ Realign, Reset Stretch, Reset Scale ] 버튼을 눌르는 것을 잊지말아야 한다는 것 정도일 것 같다.
댓글