Render.ru

Есть тут аниматоры, которые думают?

IgoTM

Мастер
Рейтинг
202
#1
Давайте разберемся с контролером вращения Euler XYZ.

По мне так там чудовищный глюк, поправьте меня, если я не прав.
Сценарий такой:

Делаем пустышку.
Делаем кубик.
Линкуем кубик к пустышке.
Анимируем врашение кубика, например, вокруг локальной оси Z.
Смотрим: вращается правильно - вокруг Z.
Рвем связь.
Смотрим - вращается неправильно! - Визуально вокруг Y!. Хотя в треках и панели Motion - все конечно указывает на Z.

Согласитесь, что линкование ну никак не должно на это влиять. Получается, что правильной анимации Эйлерова врашения можно добиться только для прилинкованного объекта (или см. дальше).

Поправить это можно Axis Order - на ZYХ, но это же извращение и по хелпу это просто черед расчета, а уж ни как не смена осей. Да и логика где? Поменялись Z и Х, при чем тут Y.

И, естественно, вся эта ботва сказывается на всем, например, собрали кости ноги, применили IK-HI, анимировали прямой кинематикой (т.е. фактически углами костей). Все работает - все отлично. Стоит только самую родительскую кость прилинковать к кому-нибудь, все нафиг выворачивается напрочь. :(
И костям вообще ордер опасно менять, самая первая кость имеет оригинальные локальные оси (включите ей показывать Связи в панеле Дисплэй, что бы увидеть) ее выворачивает тут же.

Что скажете? Неужели никому это не мешает? Никто странности не стал замечать при использовании Эйлеров?

P.S. Пожалуйста, никто, не обижайтесь на сабджект, правильнее было бы написать "которые любят копать поглубже" - но это длинно, двусмыслено и не нагло(необходимо для посещаемости :)).
 

IgoTM

Мастер
Рейтинг
202
#2
Всем спасибо, ногами пинать не надо.

Как говорить - не пожалуешься, не разберешься :)
Все теперь понятно...

Для таких же балбесов(если таковые найдуться :)) как и я, объясняю:

Для Эйлерова контролера вращения - Оси врашения - это всегда оси родительского объекта, без наличия онного, - оси мирового пространства.
Отсюды и выверты, так как оси вращения отвечают за ориентацию.
Поэтому линкование меняет ее в соответствии с осями объекта к которому линкуемся. Получается что объект с контроллером вращения Эйлера собственной ориентации с точки зрения вращенияне - не имеет! Т.е. как бы оси локальные мы видим и вроде направлены они, но это только для перемещения имеет смысл(и масштаба), поворот же отсчитываеться относительно родительских осей.

Спасибо, что не били ногами. Ай эм ламер!!!!!
 

IgoTM

Мастер
Рейтинг
202
#3
А вот и нет - лажа, лажа!!!
Эйлер локальный.

Сори, что я тут сам с собой болтаю. Терпелки не хватило сперва разобрать, а потом еще раз не хватило... :)

Вопрос остаеться в силе. Объясните мне хотя бы Order Axis, т.е. мне то кажеться что я понял что это такое, но работает оно не так как я понял.

Я так понял что для XYZ, за один кадр анимации так и происходит, сперва по Х, потом по Y, потом по Z, если в другом порядке, то окончательный результат будет отличаться, а порой и кординально, так как вращение по одной оси в этом же кадре дает другим осям новую ориентацию.

Но, чего я непойму, так это если я не анимирую например ось Y вообще, то какого бабая для ордера XYZ(видите, она впереди Z) вращение идет наперкосяк для последовательно(одна 30 кадров, затем другая 30) анимированных соот. X и Z, и это если кубик чуть повернуть от параллельной всем мировым осям ориентации (при паралл. все ок.). Т.е. если первое вращение идет вокруг Z - то оно явно не локальное, тогда как затем по X(оно по ордеру первее Y), очень даже локально, совсем.

И что самое интересное в 3-м максе, Эйлеров контроллер ведет себя подругому(что отчасти дало почву для второго поста).

Скажите что-нибудь, а то намоделю свой расколотый череп. :)
Спасибо.
 
#4
Есть аниматоры. Они совсем об этом не думают. Думают о прекрасных женщинах на пустынном пляже где-нибудь на краю Земли, думают о быстрых блестящих машинах, с наслаждением думают о вкусе пивной пены, о чемоданах полных деньгами под кроватью и о многом другом.
..всё также сидя в обнимку с кондиционером в пыльном и душном московском офисе, передвигая ключи и проклиная Эйлера :)
 

IgoTM

Мастер
Рейтинг
202
#5
А за что, если не секрет, они его проклинают? :)

Вы вот шутите, а я тут буквально чувство реальности теряю...

Объект первый поворот(например по Z) совершает относительно оси родителя,
Второй(например по X) уже относительно собственной. Стоит поиграть ордером и вообще полная фигня. Стоит похитрее повернуть родителя и вот уже хрен его знает относительно чъей оси он вертиться первый раз, хотя второй все еще около своей, но это если ордер как раньше, а если другой так оно может и совсем по другому, например сперва относительно своей, а потом уже отн. родителя, но это если родитель не сильно хитро повернут, а то и....
:)

может я совсем, того уже.. и хелп собака - там все так хорошо и понятно написано, только работает нихрена не по написанному....
 
#6
эх... хороший вопрос однако... матчасть я бы сказал...
будем дискутировать:
- вращается эйлер все таки помоему по локальным осям. Другое дело что оси меняются в смысле поворачиваются во время поворота по двум и более осям.
- повернем изначально объект - мы уже имеем поворот по xyz. Т.е если
x=10
y=20
z=30
Это значит повернули объект на 10 по x, потом уже по новой оси повороченной на 20 по y(т.е в повернутой системе координат), и уже совсем вывернутой оси z =30
Мы этого не заметили, просто повернули ротатионом и ок. Почему, потому что по умолчанию axis order - xyz. Теперь мы меняем ему порядок на обратный zyx. Видим что для того чтобы он был расположен также как предыдущий раз z=28.452 y=22.242 x=-1.116
Никакого совпадения нет т.к. чтобы повернуть объект в др.ситему координат требуется там всякие тригонометрические функции.
Резюме: Только первая ось всегда будет совпадать с локальной осью координат. повороты по второй и третьей оси будут уже в повернутой и не будут совпадать с начальной локальной этой осью...
 

IgoTM

Мастер
Рейтинг
202
#7
And
дай мыло пожалуйста, я тебе вышлю примерчик. Я вот тоже как ты объяснил это мыслю, но что-то с максовой реальностью это никак не сходиться...
 
#9
Когда линкуешь - выворачивает, причем не всегда...
Как боротся незнаю
2 совета: сперва линкуй потом анимируй,
в нулевом кадре имей ключи всей линкованой хрени как создавалась и связи рви в этом кадре
Для анимации может этот скрипт поможет
EulerFix.mcr

This scriptdoes something similar to Maya's "Euler Filter" routine that will correct extra or bad interpolation of Euler Rotation keys. Many times in character animation you may see good poses, but inbetween your limbs or bones may flip or twist instead of interpolating nicely. This fixes that.

http://www.comet-cartoons.com/toons/maxscript.cfm
 
Сверху