Получение положения и поворота в родительском пространстве

У меня мало костей.

Bone001:

введите здесь описание изображения

Bone002:

введите здесь описание изображения

Выровнены в одном направлении. Bone001 имеет вращение (как в мировом, так и в родительском пространстве). Bone002 имеет тот же поворот, что и Bone001 в мировом пространстве, а его поворот в родительском пространстве (Boone001) равен 0.

Я хочу получить положение и поворот Bone002 в родительском пространстве (которое должно быть 0).

Я пробовал (согласно официальной документации):

--each and every returns the same World space pos (as $Bone002.transform.pos)
(in coordsys parent $Bone002.transform.pos)
(in coordsys local $Bone002.transform.pos)
(in coordsys $Bone001 $Bone002.transform.pos)
$Bone002.transform.pos *= inverse $Bone002.transform

Но каждый из них возвращает позицию Bone002 Мирового пространства (а не позицию Родительского пространства). То же самое для вращения.


person PolGraphic    schedule 30.07.2016    source источник


Ответы (1)


Вы были близки с последним, чтобы получить преобразование в пространстве другого объекта, умножьте на обратное преобразование этого объекта. Вот это будет:

obj.transform.pos * inverse obj.parent.transform
person Swordslayer    schedule 30.07.2016