Render.ru

Вращение в local coord. system + анимация

#1
Совсем ничего не понимаю. Есть объект развёрнутый в пространстве. Его нужно крутануть вокруг собственной оси. Выбираю local coordinate system, вращаю. Всё супер. Включаю auto key. повторяю ту-же операцию, крутится по всем осям без разбора :-( Как заставить его вращаться вокруг только одной и при этом локальной оси? Заранее благодарен.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#6
Ради итереса как ты сделал ?

Вобще есть контроллер Local Euiler XYZ но задать его можно только
через скрипт - Discreet сказал что пользоватья им не спортивно ;-)
 
#8
Честно говоря, когда я написал, что всё получилось, я проверял на упрощённой так сказать модели. Все эти Eulier таки работают, но только в том случае, если объект развёрнут в пространстве только по одной оси. XForm не пробовал, времени уже нет. Обязательно проверю. Кончилось, короче тем, что не стал ничего вращать, а сделал совсем по другому, разные булены анимированные подсунул, ну, в общем не так, как задумывалось :-( А вообще обидно, что такая простая на первый взгляд вещь становится настоящим гемороем. Больше всего я прифигел, когда нашёл в хелпах к Максу примерно такую фразу: В Максе реализована офигенная возможность выбрать для себя подходящую систему координат для реализации вращения и масштабирования. К сожалению, это всё не работает в анимации. :) Наверное есть методы, не спорю. Но это примерно то-же, что за хлебом в другой город смотаться. Недоработоча, блин. Спасибо всем, кто отозвался.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#9
Если интересно откопал у себя в архивах скрипт:
хотя наверное уже не стоит привыкать к нему ;)

Well Local Euler is no longer supported in Max 4. Not obviously anyway.
The Euler controller has been changed in Max 4 to work as a local by allowing
you to select the axis calculation order. I don't really understand
how this is supposed to work since once you set the axis order it will
be the same for the entire use of it.


For instance. If you set the axis order to xyz (default) then
it will calculate x, then y then z. So if you rotate the object on
X then the x axis is calcualted first and creates a pseudo explicit key.
But if you rotate z it still has to calculate x and y before it can calcuate
z, creating keys for all axis'. So you're really not working locally
even if you can change the axis order. There are keystroke options
to set explicit keys (check under customize ->keyboard) but I haven't found
that these work the way that they should either. Maybe someone can
shed some light on how this is supposed to work for me.


So after all this you can still apply a local euler. Swami found
that it is still there and accessible through Maxscript. Here's an
excerpt from his post.






From: "Swami Lama [FA]"

Attention Euler Fans!,

If you like the LocalEulerXYZ rotation controller, it's still possible to
have it in r4!...

- Copy/Paste the following lines into the MAXScript Listener window...

for obj in (getCurrentSelection()) do
(
try
(
obj.rotation.controller=(Local_Euler_XYZ())
)
catch()
)

- Select the code.
- Drag-n-drop it to a toolbar.
- RightClick\EditButtonAppearence to give it a logical name.
- DONE!

- Now select an object(s) and click the button!
- Voila! Instant LocalEulerXYZ!


AlgorhythmicallYours,

s*
a.k.a. "codeWarrior()"






Since Discreet eliminated the local euler I'm wondering if there
is a problem with going back and using it since it's not really supported.
It may cause problems elsewhere. Maybe swami might shed some light
on any problems that could be encountered.
 
Сверху