Нужно сделать скрипт который бы поворачивал выделенные кости на определённый угол, но не поворачивал бы ось.
Из разных источников мне удалось собрать несколько вариантов,
но все они вместе с объектом поворачивают и его ось.
------------------------------------------------------
-- Set the given object's rotation to the given values
------------------------------------------------------
$.boneEnable=false
toolMode.coordsys #local
maxops.pivotmode = #objectonly
fn SetObjectRotation obj rx ry rz =
(
-- Reset the object's transformation matrix so that
-- it only includes position and scale information.
-- Doing this clears out any previous object rotation.
local translateMat = transMatrix obj.transform.pos
local scaleMat = scaleMatrix obj.transform.scale
obj.transform = scaleMat * translateMat
-- Perform each axis rotation individually
rotate obj (angleaxis rx [1,0,0])
rotate obj (angleaxis ry [0,1,0])
rotate obj (angleaxis rz [0,0,1])
)
-- Set currently selected Object's rotation to 80 50 100
SetObjectRotation selection[1] 0 0 -90
Важное уточнение: после или до поворота мне все эти кости нужно уменьшить на определённое значение, например так
спасибо за ответ,
но на костях не должно быть модификаторов.
как в последствии от него избавится?
не хочу просто чтобы с стеке у кости болтался модификатор
fn RotatePivotOnly obj rotation= (
local rotValInv=inverse (rotation as quat)
animate off in coordsys local obj.rotation*=RotValInv
obj.objectoffsetrot*=RotValInv
obj.objectoffsetpos*=RotValInv
)
a_z=-90
for obj in $selection do
(
animate off in coordsys local rotate obj (eulerAngles 0 0 -a_z);
RotatePivotOnly obj (eulerAngles 0 0 a_z);
)
igorznag, спасибо
отлично работает на выбранных объектах.
как раз начал копать в направлении углов эйлера
я так понимаю скрипт поворачивает сначала объект, а потом поворачивает обратно его пивот.
Сейчас буду пробывать привязывать регулировку углов к спинерам.
немного не по теме сопутствующий вопрос:
как таким же методом можно сделать realigntochild кости и чтобы ось оставалась на месте
использую код:
$.boneEnable=true
for ra in selection do ra.realignBoneToChild ()
$.boneEnable=false
Оно работает! Отлично! Спасибо.
Я ещё только учусь и мне было бы доволно сложно до этого додуматься так же быстро как мне это нужно.
После использования этого скрипта мне нужно протянуть кость то этого чайлда функцией
for b in selection do b.resetBoneStretch()
правильно ли будет подставить её в конец?
...
$.boneEnable=true
for ra in selection do
(
t=ra.transform
ra.realignBoneToChild();
ra.resetBoneStretch(); --вот эта
AlignPivotTo ra t
)
$.boneEnable=false
для меня это работает.
но правильно ли это с технической точки зрения?
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Антон Шметелько (Tosyk)
Из разных источников мне удалось собрать несколько вариантов,
но все они вместе с объектом поворачивают и его ось.
Варианты:
Важное уточнение: после или до поворота мне все эти кости нужно уменьшить на определённое значение, например так
Пожалуйста подскажите решение.
igorznag
Антон Шметелько (Tosyk)
но на костях не должно быть модификаторов.
как в последствии от него избавится?
не хочу просто чтобы с стеке у кости болтался модификатор
igorznag
Антон Шметелько (Tosyk)
отлично работает на выбранных объектах.
как раз начал копать в направлении углов эйлера
я так понимаю скрипт поворачивает сначала объект, а потом поворачивает обратно его пивот.
Сейчас буду пробывать привязывать регулировку углов к спинерам.
немного не по теме сопутствующий вопрос:
как таким же методом можно сделать realigntochild кости и чтобы ось оставалась на месте
использую код:
я так понимаю RotatePivotOnly уже не применим.
igorznag
Антон Шметелько (Tosyk)
Я ещё только учусь и мне было бы доволно сложно до этого додуматься так же быстро как мне это нужно.
После использования этого скрипта мне нужно протянуть кость то этого чайлда функцией
правильно ли будет подставить её в конец?
для меня это работает.
но правильно ли это с технической точки зрения?