3d форум по Blender

Blender => Риггинг, скиннинг и анимация => Тема начата: Amol от 16 Ноябрь 2022, 09:30:09

Название: Вращение по временной оси
Отправлено: Amol от 16 Ноябрь 2022, 09:30:09
Всем привет.
Имеется модель в STL формате, я ее импортировал, теперь хочу сделать анимацию.
Она состоит из разных объектов, часть из которых мне нужно вращать.
При использовании для вращения ключевых точек, одновременно с вращением меняется и масштаб объекта (то увеличивается, то уменьшается во время вращения), я так и не понял почему.
Я решил этот объект отделить из STL модели, и просто изменением координат и углов задать вращение, теперь с масштабом все нормально, но ось вращения немного смещается, т.е. объект двигается не только по оси вращения но и немного вперед и назад.
Ось (в меню Transform Privote Point) задавал 3D курсором, но почему-то все равно не то.

Поменяв точку привязки все стало нормально, но пришлось менять положение объекта во всех кадрах.
Подскажите, пожалуйста, как сделать так, что бы она вращалась так, как нужно?
Как указать временную ось?
Очень удобно перемещать/вращать объекты при помощи ключевых точек, но как исправить непонятное изменение масштаба объекта?
Название: Re: Вращение по временной оси
Отправлено: Mihanik от 16 Ноябрь 2022, 22:04:13
Думаю что никто не понял чего тебе надо, и чего не получается. Наверное надо пример уже готовой, похожей анимации и тогда кто нибудь скажет как это делается, может даже я скажу.

Как указать временную ось?
Если говорить о анимации, то никак.
Название: Re: Вращение по временной оси
Отправлено: Samovar от 17 Ноябрь 2022, 00:57:26
Насколько мне известно, в Blender давным-давно можно выбирать за систему координат любую вершину, ребро или грань... и трансформировать объект или геометрию его полигональной сетки в данных координатах.
https://docs.blender.org/manual/en/3.3/editors/3dview/controls/orientation.html
Название: Re: Вращение по временной оси
Отправлено: Mihanik от 17 Ноябрь 2022, 10:02:22
Насколько мне известно, в Blender давным-давно можно выбирать за систему координат любую вершину, ребро или грань... и трансформировать объект или геометрию его полигональной сетки в данных координатах.
https://docs.blender.org/manual/en/3.3/editors/3dview/controls/orientation.html
Можно конечно, но анимировать выбор этих осей нельзя. То есть, нельзя с первого по десятый кадр вращать вокруг одного положения курсора а с десятого вращать вокруг другого положения. Анимация запомнит лишь конечные положения но не дуги при этом описываемые, или ключи придется ставить каждый кадр.
 Можно сделать объект дочерним к другому объекту, тогда дочерний сам по себе будет находится в системе координат родителя, и вот координаты родителя уже можно анимировать.
 Просто я не понимаю какую анимацию он хочет получить.
Название: Re: Вращение по временной оси
Отправлено: Samovar от 17 Ноябрь 2022, 21:11:00
Да, чогласен, тогда вариант такой: Делать через ограничители объект дочерним. Ограничители вращать вокруг своих опорных точекк и  анимировать, включая влияние на дочерний объект.
Помнится, в Blender 2.7x было дополнение Dynamic Parent, для упрощения создания подобных анимаций.
https://github.com/romanvolodin/dynamic_parent/releases
Название: Re: Вращение по временной оси
Отправлено: Amol от 18 Ноябрь 2022, 06:35:42
Наверное надо пример уже готовой, похожей анимации и тогда кто нибудь скажет как это делается, может даже я скажу.

Приложил картинку и видео - https://www.veed.io/view/6b839f06-3d62-496e-b8cc-82e72125dc56?panel=share
Суть:
Объект должен вращаться по оси расположения курсора.
Во время настройки все вращается так, как нужно, но во время анимации вращение происходит по непонятной оси, но близкой к нужной.
В первой части вращение реализовано через изменение положения в кадре.
Во второй части вращение осуществляется через ключевую точку (shape key), как видно в процессе движения объект меняет свои размеры при этом сохраняет необходимую ось вращения.
Название: Re: Вращение по временной оси
Отправлено: Mihanik от 18 Ноябрь 2022, 07:22:15
Давай ка, сначала с терминологией, это не точка привязки, это самый настоящий центр объекта , или центр трансформации объекта. Все вращения, перемещения и масштабирования  объекта, которые легко анимируются ключами, происходят именно вокруг него по умолчанию. И всегда имеет смысл расположить его в том месте вокруг которого и надо вращать. В твоём случае и надо его переместить к курсору. (ПКМ->задать центральную точку->центр объекта к 3D-курсору). Это аксиома, с этого всегда надо начинать создание анимации. Что помешало тебе это сделать?
 Что ты намудрил с ключами формы  (shape key) мне не ведомо. Возможно не применён масштаб (Ctrl A->масштаб), это тоже надо делать перед созданием анимации.
 В теории ключами формы тоже можно получить твою анимацию, но как правило к ним прибегают в том случае если надо изменить форму объекта, а городить скости лень.То есть это сложнее.
Название: Re: Вращение по временной оси
Отправлено: Amol от 18 Ноябрь 2022, 09:50:00
Что помешало тебе это сделать?
Терминология принята - спасибо!
В конце концов я так и сделал.
Мне казалось, что есть другой, более удобный способ.
Объект в момент вращения, был в другом месте из-за этого пришлось менять его положение везде.
Подскажите, пожалуйста, каким образом делают анимацию вращения объекта, если у него несколько осей?
Каждый раз меняя центр объекта результат не тот, что нужен.

по поводу масштаба:
В Object Mode при выделенном объекте я нажал CTRL + A (Object - Apply - Scale), но результат вращения с помощью Shape Key не поменялся, все так же меняются размеры.
Прилагаю файл blender.
Название: Re: Вращение по временной оси
Отправлено: Striver от 18 Ноябрь 2022, 13:40:44
Цитировать
Подскажите, пожалуйста, каким образом делают анимацию вращения объекта, если у него несколько осей?
Один из вариантов - крутить в этих местах пустышки (Empty) по нужным осям, а у объекта ставить ограничение привязки к этим пустышкам. Сходу не скажу, что в твоём случае понадобится: CopyRotation, CopyLocation, оба вместе, или что-то ещё...

При этом влияние ограничений можно анимировать, т.е. можно делать так: в кадрах 25-49 объект зависит от Empty1, а в кадрах 50-75 от Empty2
Название: Re: Вращение по временной оси
Отправлено: Mihanik от 18 Ноябрь 2022, 22:08:11
по поводу масштаба:
В Object Mode при выделенном объекте я нажал CTRL + A (Object - Apply - Scale), но результат вращения с помощью Shape Key не поменялся, все так же меняются размеры.
Прилагаю файл blender.
:D Как это не смешно я тоже принял это за изменение масштаба. На самом деле, ключ формы так и работает. этот инструмент для изменения формы а не положения объекта. То есть он запоминает положение всех вершин объекта. и в зависимости от значения ключа эти вершины двигаются по кротчайшему пути, от базы до положения в котором был поставлен ключ.
Чтобы получить чистое вращение надо создавать новый ключ для каждого кадра, ну или хотя бы для каждого там пятого или десятого.
Название: Re: Вращение по временной оси
Отправлено: Mihanik от 19 Ноябрь 2022, 09:59:56
Цитировать
Подскажите, пожалуйста, каким образом делают анимацию вращения объекта, если у него несколько осей?


При этом влияние ограничений можно анимировать, т.е. можно делать так: в кадрах 25-49 объект зависит от Empty1, а в кадрах 50-75 от Empty2
А вот фигушки :D, во всяком случае у меня не получается. Какое бы ограничение не выбрал снижение влияния ограничений приводит к возвращению объекта в исходное положение. то есть значение поворота и положения не сохраняется.
Короче, кто сделает, скажем к примеру, анимацию работы землемерного циркуля,(причём в том числе и по криволинейной траектории) без ручной подгонки, именно вращением вокруг его ножек, от меня огромный респект и уважуха, ибо я всегда  в таких случаях подгонял ручками, это было быстрее.
 Мне видится лишь способ установки в каждую точку нового Empty, но это ещё геморней чем подогнать вращение-перемещение напрямую.
Название: Re: Вращение по временной оси
Отправлено: Striver от 19 Ноябрь 2022, 13:19:36
На респект и уважуху, конечно, не заработал, т.к. криволинейной траектории не сделал, но что-то есть.
Геморрой с ключами на пустышки, конечно, изрядный, тут не поспоришь...
Но у меня уже много лет есть абсолютная уверенность, что вообще любая не совсем тривиальная анимация - это огромный и почти непреодолимый геморрой...
Название: Re: Вращение по временной оси
Отправлено: Striver от 19 Ноябрь 2022, 13:25:31
Блин, форум убил анимацию в гифке...  :(
Выложил на свой сайт
(http://striver00.ru/files/output1.gif)
Название: Re: Вращение по временной оси
Отправлено: Mihanik от 20 Ноябрь 2022, 21:32:11
На респект и уважуху, конечно, не заработал, т.к. криволинейной траектории не сделал, но что-то есть.
Геморрой с ключами на пустышки, конечно, изрядный, тут не поспоришь...
Но у меня уже много лет есть абсолютная уверенность, что вообще любая не совсем тривиальная анимация - это огромный и почти непреодолимый геморрой...
Да мне не жалко респекта и уважухи, всегда пожалуйста :D, но факт что простого и универсального решения нет, все они какие то костыльные.
 Вот тоже собрал, вообще без ограничений. Просто связка родитель-потомок. Одни оси родителя другие потомка. После поворота в осях потомка, в одном кадре опять ставим центр родителя в то место где оно изначально было у потомка.
https://disk.yandex.ru/d/i5u871NYiEA3IA
Название: Re: Вращение по временной оси
Отправлено: Samovar от 21 Ноябрь 2022, 23:13:07
Цитировать
На респект и уважуху, конечно, не заработал, т.к. криволинейной траектории не сделал, но что-то есть.
Прикольно, Striver! Мои уважение и восхищение!  8)
Помню, сам катал квадратное таким образом в blender, здесь на форуме, несколько лет назад... а Николай Николаев даже с помощью математической формулы и драйверов такое запилил, что вообще маегакруто было!... но, так и не смог найти эту тему... возможно, плохо искал...
Название: Re: Вращение по временной оси
Отправлено: Amol от 22 Ноябрь 2022, 08:07:06
На самом деле, ключ формы так и работает. этот инструмент для изменения формы а не положения объекта.
Чтобы получить чистое вращение надо создавать новый ключ для каждого кадра, ну или хотя бы для каждого там пятого или десятого.
Ну тогда все понятно с ним)
Покадрово тоже как-то кривовато выходит, но лучше.
Спасибо!

Цитировать
Один из вариантов - крутить в этих местах пустышки (Empty) по нужным осям, а у объекта ставить ограничение привязки к этим пустышкам. Сходу не скажу, что в твоём случае понадобится: CopyRotation, CopyLocation, оба вместе, или что-то ещё...
При этом влияние ограничений можно анимировать, т.е. можно делать так: в кадрах 25-49 объект зависит от Empty1, а в кадрах 50-75 от Empty2
В общем все тут как-то на мудрено)
Вращение в нескольких осях пока отложил...

Спасибо за помощь и советы.
Буду пока разбираться с этим всем.