굽힘 회전을 aimConstraint 노드에서 가져오기

2462 단어 maya
Maya Advent Calendar 2018 12월 23일의 기사입니다.

내일 24일분의 투고 예약을 끝마쳤습니다!
시간도 있으므로 라이트인 리그의 Tips를 실어 둡니다.

굽힘 회전을 얻는다



3차원 회전은 분해가 가능합니다.
3차원 회전을 그대로 이용하면 여러가지 어려운 문제가 나옵니다.
이 근처를 세세하게 해설하는 역량은 나에게는 없기 때문에,
회전은 굽힘/비틀림으로 분해할 수 있어! 라는 것만으로 둡니다.

자세한 것은, ryusas씨의 maya_rotationDriver 가 참고가 됩니다.
상기는 고도이므로 일단은 회전에서 굽힘 회전만 추출해 봅시다.

장면 구축



다음과 같은 장면을 구축했습니다.


이용하는 것은 이하의 노드만입니다.


노드 이름
설명


src_joint
컨트롤러가 될 노드. 자유로운 3차원 회전. 원점에 작성.

src_jointEnd
src_joint의 아이. TranslateX에 5가 들어 있습니다.

dst_jointBend
src_joint에서 굽힘 회전만 추출한 것. 마찬가지로 원점에 작성.

src_jointBendEnd
src_jointBend의 아이. TranslateX에 5가 들어 있습니다.


aimConstraint 노드 만들기



추출하려면 aimConstraint 노드를 사용합니다.
aimConstraint는 목표물을 쫓는 거동으로 해주는 노드입니다.
aimConstraint의 회전에는 비틀림이 포함되어 있지 않으므로, aimConstraint를 사용하면 바삭바삭하게 실현할 수 있습니다.

그건 그렇고, Maya 메뉴의 aimConstraint 명령은 사용하지 않습니다.
노드 편집기에서 tab 키로 크리에이트하여 만들어 연결해 갑시다.

만든 aimConstraint 노드는 "bendConstraint"라는 이름으로 변경했습니다.

연결 만들기



연결의 전체 이미지는 다음과 같습니다.


SetAttr



bendConstraint.worldUpType.set(4)
bendConstraint.target[0].targetTranslate.set(1,0,0)

연결



src_joint.matrix >> bendConstraint.target[0].targetParentMatrix
bendConstraint.constraintRotate >> dst_jointBend.rotate

결과



이해하기 어렵지만 ....
src_jointBend가 함께 움직이고 있습니다.


다음 단계로



굽힘 회전을 추출할 수 있었으므로, 비틀림 회전도 꺼내고 싶네요.
비틀림은 "원래 회전 - 굽힘 회전 = 비틀림 회전"입니다.
다음 AdventCalender 때에도 ... 꽤 상당히 -!

그럼!

좋은 웹페이지 즐겨찾기