Некорректное вращение вокруг разных осей

Главная Форумы Анимация и ригинг Некорректное вращение вокруг разных осей

Помечено: 

В этой теме 15 ответов, 2 участника, последнее обновление  serge99 2 года/лет, 7 мес. назад.

Просмотр 15 сообщений - с 1 по 15 (из 16 всего)
  • Автор
    Сообщения
  • #6920

    serge99
    Участник

    Привет всем.

    Писал об этом Артёму, теперь спрашиваю здесь. Проблема в том, что невозможно повернуть объект вокруг одной оси, а затем вокруг другой: при добавлении второго констрайнта child of кубик съезжает, set inverse не помогает, попытка анимировать influence тоже. Констрайнт pivot также не помогает. Артём ответил, что child of решает все проблемы, попробуем его.

    Стартуем вер. 2.73а и видим любимый кубик. Ставим 3Д курсор в его вершину с координатами 1,1,1 и добавляем empty/plain axes. Даём этому empty ключ на вращение: i r. Выделяем кубик, щёлкаем справа по иконке с цепью и по add object constraint, выбираем child of, в target ставим empty. Будем вращать вокруг x, поэтому оставим флажки у локейшена y z, а у поворота x. Щёлкаем по set inverse, и кубик прыгает на своё место. Выбираем пустышку, ставим на таймлайне курсор в 20-й кадр и задаём пустышке r x 90 enter. Ставим ей ключ i r. Наблюдаем анимацию вращения кубика вокруг пустышки.

    Ставим 3д курсор в ближайшую верхнюю вершину кубика с координатами 1,-1,3 и добавляем туда аналогичную пустышку, сразу ставим в 20-м кадре ей ключ на вращение i r. Выделяем кубик, щёлкаем по add object constraint и выбираем child of, задаём empty001. Будем вращать вокруг этой пустышки куб по оси y. Оставляем у location флажки у x и z, у rotation флажок у y. Щёлкаем по set inverse, но кубик взлетает кверху. Если influence поставить в 0, то кубик вёрнётся куда надо. Может поставить ключ на influence? Щёлкаем по нему правой кнопкой и ставим ключ. Ставим курсор в 40-й кадр и вращаем empty001 вокруг y на 90, ставим ключ на вращение, ставим influence в 1 и ставим на это ключ. 2-й поворот некорректный из-за анимации influence, если influence не трогать, то при добавлении 2-й пустышки кубик смещается, если поиграть с influence 1-й пустышки (скажем, в 20-м кадре поставить ключ на influence == 1, а в 21-м кадре на influence == 0), то тоже выходит ерунда. В общем, после 1-го поворота невозможно отвязатьяс от 1-й пустышки, чтобы она не влияла на 2-й поворот, а если отвязаться, то 1-й поворот становится неправильным. Попытка закрывать/открывать глаз (enable/disable constraint) и ставить на это ключ тоже не даёт решения. Что я делаю не так?

    Казалось бы, сделай возможность анимировать положение origin, ставь его, куда хочешь, и вращай вокруг него, но нет. А если во время анимации объект 20 раз вращается вокруг разных осей, тогда что, создавать 20 пустышек и настраивать их?

    #6921
    Артем Слаква
    Артем Слаква
    Хранитель

    1) Influence можно анимировать (I)
    2)

    А если во время анимации объект 20 раз вращается вокруг разных осей, тогда что, создавать 20 пустышек и настраивать их?

    Да. Это гораздо удобнее, чем 20 раз менять центр объекта.

    Старайтесь избегать конфликтов между ограничителями. Если первые 20 кадров куб должен крутиться по оси X, то ограничитель, который отвечает за Y не должен никак влиять на куб до 21-го кадра. Их включение/отключение также можно анимировать (I).

    В Blender много чего можно анимировать :)

    #6927

    serge99
    Участник

    Проблема в том, что, когда вращение с пом. child of или pivot заканчивается в 20-м кадре и пустышке в нём ставится ключ, надо отвязать кубик от этой пустышки. Если в 20м кадре пустышке поставить ключ на открытом глазе или infl. == 1, а в 21-м кадре закрыть глаз или обнулить infl., то кубик СМЕЩАЕТСЯ (и вращается) на своё первоначальное место, а надо, чтобы он оставался в том же положении, что и в 20-м кадре. Бесполезно ставить ключи кубику и замыкать его положение и положение пустышки на панели n – всё равно куб смещается.

    #6928

    serge99
    Участник

    Опа, только что, получилось (3 дня убил на метод тыка и читал по этому вопросу на разных языках, что можно сделать child of и анимировать, что хочешь). Надо создать пустышку без всяких констрайнтов и в панельке под 3Д видом выбрать pivot point/active element, тогда можно вращать кубик при выделенной пустышке и ставить ключи кубу и пустышке. А в следующем после поворота кадре пустышку можно переместить и опять вращать вокруг неё. Таким образом, не надо плодить 20 пустышек на 20 вращений. А с пом. магнита можно снапить пустышку по вертексам кубика.

    #6929

    serge99
    Участник

    Немного перепутал: надо создать пустышку без всяких констрайнтов и в панельке под 3Д видом выбрать pivot point/active element, тогда можно вращать ПУСТЫШКУ при выделенном КУБИКЕ, и кубик будет вращаться вокруг неё, и ставить ключи кубу и пустышке. А в следующем после поворота кадре пустышку можно переместить и опять вращать вокруг неё. Таким образом, не надо плодить 20 пустышек на 20 вращений. А с пом. магнита можно снапить пустышку по вертексам кубика.

    #6930

    serge99
    Участник

    Нет, отбой. Это вращение происходит правильно, пока вращаешь пустышку (хотя, непонятно, почему надо вращать пустышку, а не кубик?), а когда смотришь анимацию этого поворота, то кубик вращается не совсем вокруг пустышки, а как-то по-дурацки, как будто influence меньше единицы. Я с этим уже встречался в др. случаях. В общем, кругом ошибки и маразм…

    #6931
    Артем Слаква
    Артем Слаква
    Хранитель

    Я не совсем уверен, поэтому уточню :)
    Вы решили свою проблему или нет?

    #6933

    serge99
    Участник

    Так и не решил (если не считать того, что можно делать новый файл проекта на каждый поворот :-). Очень хотелось бы узнать с примером, где и на что щёлкать, чтобы по правилам повернуть любимый кубик сначала вокруг одного его ребра, а потом вокруг другого. Зачем тут городить child of, если есть pivot? Как сделать, чтобы кубик не возвращался на прежнее место при закрытии глаза на этих констрайнтах не взирая на поставленный ключи? И почему кубик вращался неправильно в последнем описанном случае? Это ошибка, или такая загадочная фича?

    #6940
    Артем Слаква
    Артем Слаква
    Хранитель

    Из всех предложенных здесь вариантов, первый самый простой:

    (в новой вкладке гифка будет немного больше)
    child-of-constraint

    Не нужно анимировать Influence. Просто крутишь пустышки по своим осям. Чтобы куб не прижимался к пустышкам, необходимо нажать Set Inverse на каждом из ограничителей.

    Для каждой пустышки создал по 4 кадра с углом поворота 90 градусов. Сразу на 360 крутить не надо :) Все будет стоять на месте.

    #6941

    serge99
    Участник

    Я же УРЛ с этой картинкой давал в письме. :) У меня применительно к кубику пока что-то так не получилось, и set inverse не помог, попозже ещё попробую.

    Мне на др. форуме показали пример без констрайнтов: надо сделать одну пустышку и в окне аутлайнера подчинить ей кубик. Вращаем пустышку и с ней кубик. Потом сделать 2-ю пустышку, сделать её сыном 1-й пустышки и отцом кубика. С 20-го кадра вращаем 2-ю пустышку и с ней кубик. В начале и конце поворотов ставим ключ r на соотв. пустышку. Тогда повороты получаются правильно, но много мороки с выбором координат для последующих пустышек: надо на 1-м кадре посмотреть, где было ребро кубика, вокруг которого будем вращать с 20-го кадра, и поставить пустышку на это ребро. А если мы 2-й поворот хотим сделать вокруг фиксированной точки в пространстве, тогда как быть? После 20 поворотов вокруг разных осей аниматор начнёт рвать на себе волосы и гоняться за творцами Блендера с топором. :)

    И остаётся непонятным, почему не работает pivot point/active element? Казалось бы, это и должен быть простейший вариант для таких поворотов.

    #6942
    Артем Слаква
    Артем Слаква
    Хранитель

    Я сам начал делать так, как посоветовали Вам на форуме – ничего не вышло. Менять связи между объектами – это геморой. То, что я реализовал на гифке делается за 2 минуты.

    P.S. Я с Вашего письма URL и взял :)
    Смотрите сами, но проблему оно решает, а проще способа я не знаю.

    #6953

    serge99
    Участник

    Вот пример поворотов просто через пустышки и иерархию:
    iqfun.ru/r1.zip
    Всевозможные повороты работают, можно во время поворота перемещать пустышку, и куб за ней последует. Но муторно ставить новую пустышку. И если в аутлайнере надо переместить один объект на другой и они оба одновременно не видны в окне, то непонятно, как подтянуть один объект к другому: окно автоматически не прокручивается, как это делается в нормальных программах…

    Я опять попробовал делать 2 поворота через child of, если оба вокруг оси Х, то это работает, а если 2-й поворот делать вокруг оси Y, то при добавлении 2-й пустышки кубик куда-то скачет, а set inverse и меняние флажков у осей поворотов и перемещений не помогают вернуть его на место. Покажите такой же, как у меня, пример через child of: сначала вращение x -90, а потом y -90. Не пойму, где я что жму не так.

    И ещё я заметил проблему: к одному объекту делались пустышки для поворотов, потом объект переместили и стали перемещать его вместе с другим объектом, выделив оба. И на анимации вначале один объект обгоняет другой, хотя, я ускорения и замедления в графредакторе не трогал. Это что за фишка?

    Вот ещё интересные фишки: запускаем Блендер, щёлкаем, чтобы убрать заставку, и нажимает v. Программа мгновенно завершается. А запоминать проект кто будет?? То же самое, если нажать ctrl-tab. Это я прсто пробовал нажимать клавиши. Уже боишься что-то нажать: а вдруг Блендер отформатирует диск C:? :-)

    И ещё: если на каком-то кадре анимации объект надо передвинуть, то как потом вставить это передвижение во все последующие ключи? Можно ли на таймлайне удалить все ключи левее/правее курсора, или для этого надо лезть в дропшит и выделять все эти ключи?

    #6954

    serge99
    Участник

    И ещё забыл спросить: если надо на каком-то кадре соединить объекты по ctrl-j, то они соединяются с самого начала анимации и она портится. Разве нельзя это соединение/разъединение анимировать?

    #6955

    serge99
    Участник

    Увидел на вкладке свойств объекта (в линейке меню, где материалы) relations/parent. Наверно, там удобнее можно делать иерархию, которую я делал в аутлайнере. Жаль, связи не анимируются.

    #7000

    serge99
    Участник

    Я сейчас ещё раз попробовал констрайнт child of, вот такая схема работает: делаем empty и empty001. Делаем empty001 отцом куба и сыном empty. Тогда можно сделать эти 2 поворота: сначала вращаем empty вместе c empty001 и кубом вокруг одной оси, затем вращаем empty001 с кубом вокруг другой оси. А то, что было написано на тех страницах (сделать куб сыном нескольких пустышек через констрайнты и вращать, как хочешь) не работает, здесь надо делать иерархию.

    На каждый поворот вокруг другой оси надо громоздить эту иерархию: 20 поворотов – иерархия из 20-ти пустышек с кубом! В моём примере r1.blend, где просто создаются предки, это делается менее муторно, чем через child of.

Просмотр 15 сообщений - с 1 по 15 (из 16 всего)

Для ответа в этой теме необходимо авторизоваться.


О сайте

На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.

Контакты

Для связи с администрацией сайта Вы можете воспользоваться следующими контактами:

Email:
info@blender3d.com.ua

Следите за нами

Подписывайтесь на наши страницы в социальных сетях.

На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.

Помимо уроков по Blender, Вы сможете найти готовые 3D-модели и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.