Итак. Создаю шестерню, анимирую её поворот на 360 градусов(обычными ключами и rotation)
Затем создаю копию(или instance, неважно), поворачиваю её на 45 градусов и ожидаю что новая шестерёнка будет вращаться в своей плоскости(в по локальной оси z). Однако она вращается по оси world z(как и первая шестеренка), а не по локальной своей оси z
вот фронтальный вид
Подозреваю что дело в настройках pivot point, но сколько не крутил его настройки ничего не изменилось. Или может я в других настройках поставил галочку где-то и забыл? Непонятно
В любом случае буду благодарен за любые конструктивные советы
Spark так себе ответ, совсем анимацию не трогали до этого? Анимации без разницы КАК вы двигаете объект. Он создает ключи в конце и в начале движения. Т.е. если вы дрожащей рукой по всему экрану провели объектом во всех осях, в анимации он переместится из одной точки в другую по прямой.
supseng Вообще вы затронули не простой вопрос, очевидная локальная анимация с пол пинка не заводится. Вот google советует сменить контроллер на TCB вместо Euler XYZ , но, может и лучше есть решения, надо гуглить. Что-то вроде "3ds max animation local rotation"
supseng Point Cache используйте. Модификатор!Берёте своё шестерёнку,анимируете поворот какой вам нужен.Вешаете на него модификатор Point Cash.Там жмёте record - указываете файл куда сохранить.Всё! Удаляете свою анимацию,удаляете Point Cash.Поворачиваете свою шестерёнку как хотите.Вешаете на неё модификатор Point Cash - указываете файл и шестерёнка крутится вокруг своей оси.Всё!
Вот вам решение, всё очень просто. Анимируем шестерёнку поворот на 360 в плоскости. Создаем в центре пустой объект сплайн или point, например, чтоб не рендерился. Линкуем шестеренку к сплайну. Поворачиваем сплайн в пространстве.
Меняем порядок указания осей: Закладка Motion - Parameters - Rotation - Axis Order - выбираем такой порядок осей, чтобы ось Z (вокруг которой вращается объект) шла бы первой - ZXY. Снова запустив проигрыватель анимации мы видим, что объект вращается именно так, как и требовалось.
Цитата alexfmos:
Вот вам решение, всё очень просто. Анимируем шестерёнку поворот на 360 в плоскости. Создаем в центре пустой объект сплайн или point, например, чтоб не рендерился. Линкуем шестеренку к сплайну. Поворачиваем сплайн в пространстве.
Спасибо. Тоже не самое очевидное решение, но гораздо проще чем я нашел
"Меняем порядок указания осей: Закладка Motion - Parameters - Rotation - Axis Order - выбираем такой порядок осей, чтобы ось Z (вокруг которой вращается объект) шла бы первой - ZXY. Снова запустив проигрыватель анимации мы видим, что объект вращается именно так, как и требовалось."
Цитата sdru:
supseng Point Cache используйте. Модификатор!Берёте своё шестерёнку,анимируете поворот какой вам нужен.Вешаете на него модификатор Point Cash.Там жмёте record - указываете файл куда сохранить.Всё! Удаляете свою анимацию,удаляете Point Cash.Поворачиваете свою шестерёнку как хотите.Вешаете на неё модификатор Point Cash - указываете файл и шестерёнка крутится вокруг своей оси.Всё!
Этот способ по какой-то причине не сработал.
Всем спасибо. Я рассчитывал хотя бы на один вариант, а получил аж 2.
Самое удивительно что с этой проблемой я не сталкивался раньше