Render.ru

о координатных системах

#1
Во время моделирования можно трансформировать объект относительно локальных координат другого объекта, не затрагивая оного. А можно ли санимировать такую трансформацию, кроме как расставляя ключи в каждом фрейме?
 
#2
сделай объект, относительно которого тебе нужна трансформация, папой и ставь ключи на параметры SRT у анимируемого объекта.
 
#3
Получается несовсем тоже самое: вступает в силу порядок трансформации, т.е. если оси папы и дитя не совпадают, то только по последней оси в порядке ребенок трансформируется относительно папиной оси, остальные оси папу не замечают.
 
#5
ну, видимо надо сделать Null, ему Match Transform и затем припарентить объект к этому нулю....
я в XSI человек новый, возможно существуюи и более простые решения, какие-нибудь операции над pivot, например.
 
#7
Проще действительно некуда. Но попробуйте после всех, описанных выше, операций повернуть объект по оси Z на неровное кол-во градусов, а затем повращайте по оси X. Вокруг чьей оси вращается объект? То-то...
С уважением beginer.
 
#8
Неправда ваша дяденька. Все работает. Я думаю, что тонкость в том, что надо branch-select null вместе с объектом. Только что проделал это - все работает. Можа я че-то недопонял...
 
#9
у тебя какая версия кси ?

вобще всё работает как надо... просто надо анимировать папу (в режиме Бранч) когда надо трансформации относительно папиного центра
 
#10
Работает, если использовать keyframe анимацию. А нужно задавать вращения по expression. Насколько я понимаю, это можно сделать в параметрах global или local transform. И вот тут-то не работает. Если же у Вас работает, пришлите сценку, если можно.
 
#11
выслал сцену... два нуля в иерархии анимированы экспрешенами, каждый из них вокруг своих осейвращаетсяв результате чайлд вокруг своих и папкиных
 
#12
Спасибо за сцену. Я наверное неправильно объяснил суть вопроса.
В сцене действительно все вращается, но нужно, чтобы объект вращался вокруг статической системы координат по отношению к глобальной, или даже вокруг глобальных осей. Т.е. какое бы положение не занимали локальные оси объекта, вращение должно происходить вокруг глобальных. А это не получается (получается только для одной оси, по умолчанию Z).
 
#13
создай нуль-папу в глобальном центре с глобальной ориентацией и его вращай... вся система будет вращаться вокруг глобальных осей...

(может я совсем не въезжаю про что ты говоришь ?: )
 
#14
Так вот вокруг глобальных осей, у меня по крайней мере, вращается неправильно (или правильно, если так и должно быть).
Я делаю следущее:
создаю нуль; открываю глобал трансформ (kine/global) окно; и там (а не на главной панели) дергаю слайдер у rotz, поворачивая немного нуль по оси z (глобальной); и слайдером у rotx вращаю нуль по оси x, и вот тут получается, что нуль вращается вокруг локальной оси x, а не глобальной.
Что я делаю не так?
 
#15
Ты делаешь не так с самого начала :0))

Возьми null, parent свой объект к нему, branch select null > Ctrl-K и дергай за слайдеры. Вращение будет вокруг global coordinat.

Если без нуля, то ты прав и вращение идет local. Поэтому пользуй вращение во вьюпорте...

********************************************************************************
Разговаривать с другим мужчиной в туалете можно только, если вы оба в
одной и той же ситуации; оба отливаете или оба стоите в очереди. Во всех
других случаях, весь разговор должен состоять только из кивка головой.
 
#16
Глобально только по Z, по остальным локально...
Но все равно спасибо.
 
#17
попадает Энштейн на "тот свет" а Бог ему говорит:
-(Б)"ты праведник и имеешь право на желание, чего ты желаешь ?"
-(Э)"покажи мне формулу жизни"
Бог рисует на доске длиииннную формулу... Энштейн пробегает по ней взглядом и вскрикивает "Да у тебя же здесь ОШИБКА!"
Бог краснея отвечает: "Я знаю : )"

============================================
действительно если пользоваться слайдерами всё работает не совсем по логике... я думаю это происходит от того что слайдеры всёравно должны ставить объект в начальное положение когда на них выставить 0 0 0 ...

но когда вращаешь объект в режиме глобал с помощью курсора - всё ок

сам скриптингом не увлекаюсь.. и разбираюсь в этом мало, но осмелюсь предположить что выход именно тут...
------------------------------------------------------------
это команда при изменении слайдером:
SetValue "null1.kine.global.rotx", 45.6

а эта строка - вращение курсором:
Rotate , -154.125, 0, 0, siRelative, siGlobal, siObj, siXYZ
------------------------------------------------------------

думаю можно сделать в кастом параметр сете слайдер, который будет после каждого своего изменения будет посылать приращение по соотв. глобальной оси и обнуляться... если получится сделать на досуге, вышлю сцену
 
Сверху