matrix를 사용하여 local의 구속 조건을 재현
3759 단어 maya
이번에는 local의 matrix에서 구속조건을 재현해 보기로 하겠습니다.
지점에서 목표 위치의 위치 및 회전을 로컬 좌표를 사용하여 재현합니다.
구체적인 예가 없으면이 제목은 무엇입니까? ? ? 이므로, 제목을 마련하고 싶습니다.
제목 : "spineD_prx"지점에서 "hand_prx_L"(왼손목)의 위치와 회전 정보를 locator를 사용하여 재현
multMatrix를 사용하여 local 좌표의 matrix 연결
import pymel.core as pm
pm.createNode("multMatrix", n=u"hand_prx_L_spineD_prx_multMat")
transform 노드의 local 좌표를 의미하는 속성은 .matrix입니다.
hand_prx_L에서 거슬러 올라가 shoulder_prx_L까지의 local 좌표를 더하면,
저희와 spineD_prx에 있어서의 hand_prx_L의 위치 관계를 matrix로 취득할 수 있는 것입니다.
아래 그림과 같이 각 transform의 matrix를 multiMatrix의 matrixIn[0]에서 연결해 갑니다.

여기서 중요한 것은 거슬러 올라간 순서대로 .matrixIn에 연결을 한다는 것입니다.
decomposeMatrix로 translate, rotate를 출력하기 쉽게
이전 기사에서 이미 알고 싶습니다.
matrix의 상태로 위치·회전 정보를 출력하기 어렵기 때문에, decomposeMatrix를 이용합니다.
pm.createNode("decomposeMatrix", n=u"hand_prx_L_spineD_prx_decMat")

locator에 연결!
decomposeMatrix에서 아래 그림과 같이 head_pos_L에 연결

결과
hend_pos_L을 보면 어쩐지 관계가없는 곳에있는 것 같습니다. (아래 그림)

이것은 spineD_prx를 지점으로 얻은 matrix의 결과이므로 spineD_prx의 위치가 원점이라면 그렇게 됩니다.
이해할 수 없다면 spineD_pos를 spineD_prx 위치에 준비하고 hand_pos_L을 자녀로 설정하면 눈에 띄지 않습니다. (아래 그림)

joint의 최상위에 해당하는 부분, hipTranslation_prx를 이동합시다.
hand_pos_L은 따라 오지 않습니다. (아래 그림 붉은 부분)

shoulder_prx_L을 돌려 보자.

hand_pos_L도 동기식으로 회전했습니다.
무엇을 사용합니까?
이 메커니즘, 다양한 사용법이 있다고 생각하지만, 나는 이것을 데폼이나 시뮬레이션 요소를 포함한 리그에서 자주 사용하고 있습니다.
왜냐하면 local 좌표계에서 matrix를 사용하는 겉보기 멋있는 소기술을 사용할 수 있기 때문입니다!
... 거짓말, 미안해.
그만큼 귀찮은 소기, 할 수 있다면 사용하고 싶지 않습니다.
이것을 사용하는 주요 요인 중 하나는 특정 조건에서 오류를 제외하기 때문입니다.
예를 들면, 원점으로부터의 리그에의 위상이 큰 경우, Maya의 계산 제도가 떨어지고 파트등이 어긋나는 일이 있습니다. 여러분 경험이 없습니까?
그것을 피하기 위해서입니다.
영상계의 제작 과정에서는 자주 일어나는 것입니다만,
게임 시스템에서는 어떻습니까?
게임이라면 그 전체를 필드 위에서 움직이는 요소는 다르다고 생각하기 때문에 그런 오류에 빠지지 않을까?
특히 우주나 대해원과 같은 광대한 부지에서 애니메이션을 해야 할 경우,
머리카락이 두피에서 어긋나거나 하는 거죠. . .
그런 에러를 회피하기 위해 matrix의 이해가 필요하다니요!
12월 10일에 공개된 Maya2020 도움말에서는
offsetParentMatrix의 input 행렬이 추가된다는 설명이있었습니다.
아마 이번에 기재한 decomposeMatrix를 통하지 않고 직접 matrix로 변환 제어를 할 수 있다는 것일까. 조금 편해질 것 같습니다!
그런 의미에서는 매우 빠듯이 세이프의 기사가 되어 버렸습니다 (땀)
Reference
이 문제에 관하여(matrix를 사용하여 local의 구속 조건을 재현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/YokoU/items/e97e72dccaf5b0d718a9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import pymel.core as pm
pm.createNode("multMatrix", n=u"hand_prx_L_spineD_prx_multMat")
pm.createNode("decomposeMatrix", n=u"hand_prx_L_spineD_prx_decMat")
Reference
이 문제에 관하여(matrix를 사용하여 local의 구속 조건을 재현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YokoU/items/e97e72dccaf5b0d718a9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)