Движение по нескольким кривым

Главная Форумы Анимация и ригинг Движение по нескольким кривым

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

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

    ratinod
    Участник

    Здравствуйте!
    Столкнулся с небольшим затруднением.
    Задача такая – есть плоскость и две кривые(Path или\и Bezier). Требуется сделать так, чтобы плоскость могла “подхватывать” проигрывание движения (без поворотов) по кривым в нужный момент времени (К примеру с 0 по 30 кадр, плоскость движется за счет назначение ключевых кадров. Затем 20 кадров плоскость движется по кривой_1. Дальше 5 кадров плоскость движется за счет назначения ключевых кадров и наконец 20 кадров по кривой_2)
    Как должно быть
    Есть несколько способов движения объекта по кривой:
    1) Указать в плоскости Object -> Relations -> Parent кривую
    При этом плоскость устанавливается в начальную позицию кривой и все манипуляции нужно производить уже от неё.
    -Но этот вариант отпадает т.к. используется только 1 кривая.
    2) Добавить модификатор “Curve” плоскости.
    -Исключаем из-за искажения плоскости.
    3) Добавить ограничение(constraints) “Clamp To”.
    – Отпадает, т.к. плоскость привязывается к кривой намертво…
    4) Добавить ограничение(constraints) “Follow Path”
    – Если кривая только одна, то это хороший работающий вариант (хотя все равно присутствует начальная привязка к началу кривой, но в отличии от “Clamp To” не мёртвая). Но если использовать несколько таких ограничителей (для каждой кривой), то они соединяются друг с другом и плоскость двигается совершенно не так и не там.

    Других способов движения объекта по кривой мною найдено не было.
    (А хотелось бы. Например модификатор, работающий как ограничитель “Follow Path”, но который не привязывает плоскость к кривой, а только двигает её по пути, изображенной ею, с заданными параметрами “начала кадра” и “конца кадра” движения.)

    Я пока нашел только 2 решения этой проблемы:
    1) Пользоваться ограничителем “Follow Path”, при этом подменяя плоскость её копией каждый раз, кода нужно произвести движение по следующей кривой. (очень муторный вариант)
    2) Каким то образом преобразовать движение по ограничителю “Follow Path” так, чтобы он появился в Graph Editor не в виде кривой “NurbsPath”, а в виде кривых движения самой плоскости по осям X Y и Z. Но как этого добиться я без понятия. (В ограничителях же нет кнопки “применить анимацию движения на сам объект” :) )

    Подскажите пожалуйста, как решить эту проблему. Может быть всё намного проще чем я думаю и есть более простой способ решить эту задачу. Надеюсь на вашу помощь.

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

    В целом, Вы перебрали почти все (если не все) возможные варианты. Я так сразу ничего нового и не припомню, но можно попробовать сделать следующее:

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

    Но все уйдет мин 15 конечно, но зато она проследует весь путь кривой.

    Если придумается позже более человечный способ – дам знать :)

    #7127

    ratinod
    Участник

    Преобразование кривой в меш и смещение плоскости по полученным вершинам вполне хороший действенный способ (а учитывая в наличии инструмента “Automatic keyframe” 15 минут превратятся в 5 :) ). И даже скорость проигрывания анимации можно отрегулировать в “Dope Sheet”.
    К примеру, нужно сделать так, чтобы плоскость двигалась по 4-м одинакового вида кривым, но начиная с разных мест. Создаётся анимация движения по одной кривой. При её копировании через “Dope Sheet” (для создания остальных 3-х движений) создаётся движение плоскости в том же(!) самом месте. Чтобы это исправить, нужно скорректировать положение кривых в “Graph Editor” (предварительно отключив авто привязку к сетке, иначе вся кривая будет испорчена). Заморочено, но вполне реализуемо получаться.
    Однако возникает другой вопрос – как скопировать такую анимацию для другого объекта например на другой сцене (Scene), в том же файле. И как вообще можно сохранить такую анимацию на будущее, если потребуется её использовать повторно, но в другом месте?

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

    П.С: С метками темы я немного напортачил, всё слитно получилось :\

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

    Можно еще попробовать сделать так, как я делал в уроке про риггинг гусениц танка. Использовать движение одного объекта по кривой, он, естественно, будет искажаться, а затем его скрыть и привязать к нему другой объект. В итоге он (второй) будет следовать по пути первого, но без искажения.

    P.S. Метки поправил :) Их через запятую писать надо.

    #7129

    ratinod
    Участник

    Ваш урок про риггинг гусениц танка немного про другое и как всегда – 1 объект одна кривая.
    Но упоминание про скрытие объектов натолкнуло меня на еще одну модель реализации “движения по нескольким кривым”.
    primer
    Как это работает:
    Имеется: “главная” плоскость; две кривые; две вспомогательные плоскости.
    К каждой кривой приписывается по одной вспомогательной плоскости с помощью ограничителя “Clamp To”.
    В “главной” плоскости для каждой вспомогательной плоскости создаётся ограничитель “Copy Location”.
    А дальше с помощью ключей анимации на “видимость\ не видимость” ограничителя “Copy Location” и передвижения как вспомогательных плоскостей так и главной плоскости, создаётся как бы правильное передвижение по нескольким кривым. (Само собой вспомогательные плоскости выключаются для рендера)
    Скорость проигрывания регулируется через «Dope Sheet».
    Переносимость на другие объекты\ в другие сцены очень хорошая (вспомогательная плоскость с кривой великолепно копируется).
    В общем пока это самый оптимальный найденный вариант. :)

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

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


О сайте

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

Контакты

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

Email:
info@blender3d.com.ua

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

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

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

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