Автор Тема: Вращение по временной оси  (Прочитано 2434 раз)

Оффлайн Amol

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

Поменяв точку привязки все стало нормально, но пришлось менять положение объекта во всех кадрах.
Подскажите, пожалуйста, как сделать так, что бы она вращалась так, как нужно?
Как указать временную ось?
Очень удобно перемещать/вращать объекты при помощи ключевых точек, но как исправить непонятное изменение масштаба объекта?

Оффлайн Mihanik

  • Житель
Re: Вращение по временной оси
« Ответ #1 : 16 Ноябрь 2022, 21:04:13 »
Думаю что никто не понял чего тебе надо, и чего не получается. Наверное надо пример уже готовой, похожей анимации и тогда кто нибудь скажет как это делается, может даже я скажу.

Как указать временную ось?
Если говорить о анимации, то никак.

Оффлайн Samovar

  • Житель
Re: Вращение по временной оси
« Ответ #2 : 16 Ноябрь 2022, 23:57:26 »
Насколько мне известно, в Blender давным-давно можно выбирать за систему координат любую вершину, ребро или грань... и трансформировать объект или геометрию его полигональной сетки в данных координатах.
https://docs.blender.org/manual/en/3.3/editors/3dview/controls/orientation.html

Оффлайн Mihanik

  • Житель
Re: Вращение по временной оси
« Ответ #3 : 17 Ноябрь 2022, 09:02:22 »
Насколько мне известно, в Blender давным-давно можно выбирать за систему координат любую вершину, ребро или грань... и трансформировать объект или геометрию его полигональной сетки в данных координатах.
https://docs.blender.org/manual/en/3.3/editors/3dview/controls/orientation.html
Можно конечно, но анимировать выбор этих осей нельзя. То есть, нельзя с первого по десятый кадр вращать вокруг одного положения курсора а с десятого вращать вокруг другого положения. Анимация запомнит лишь конечные положения но не дуги при этом описываемые, или ключи придется ставить каждый кадр.
 Можно сделать объект дочерним к другому объекту, тогда дочерний сам по себе будет находится в системе координат родителя, и вот координаты родителя уже можно анимировать.
 Просто я не понимаю какую анимацию он хочет получить.
« Последнее редактирование: 17 Ноябрь 2022, 09:24:49 от Mihanik »

Оффлайн Samovar

  • Житель
Re: Вращение по временной оси
« Ответ #4 : 17 Ноябрь 2022, 20:11:00 »
Да, чогласен, тогда вариант такой: Делать через ограничители объект дочерним. Ограничители вращать вокруг своих опорных точекк и  анимировать, включая влияние на дочерний объект.
Помнится, в Blender 2.7x было дополнение Dynamic Parent, для упрощения создания подобных анимаций.
https://github.com/romanvolodin/dynamic_parent/releases

Оффлайн Amol

  • Житель
Re: Вращение по временной оси
« Ответ #5 : 18 Ноябрь 2022, 05:35:42 »
Наверное надо пример уже готовой, похожей анимации и тогда кто нибудь скажет как это делается, может даже я скажу.

Приложил картинку и видео - https://www.veed.io/view/6b839f06-3d62-496e-b8cc-82e72125dc56?panel=share
Суть:
Объект должен вращаться по оси расположения курсора.
Во время настройки все вращается так, как нужно, но во время анимации вращение происходит по непонятной оси, но близкой к нужной.
В первой части вращение реализовано через изменение положения в кадре.
Во второй части вращение осуществляется через ключевую точку (shape key), как видно в процессе движения объект меняет свои размеры при этом сохраняет необходимую ось вращения.

Оффлайн Mihanik

  • Житель
Re: Вращение по временной оси
« Ответ #6 : 18 Ноябрь 2022, 06:22:15 »
Давай ка, сначала с терминологией, это не точка привязки, это самый настоящий центр объекта , или центр трансформации объекта. Все вращения, перемещения и масштабирования  объекта, которые легко анимируются ключами, происходят именно вокруг него по умолчанию. И всегда имеет смысл расположить его в том месте вокруг которого и надо вращать. В твоём случае и надо его переместить к курсору. (ПКМ->задать центральную точку->центр объекта к 3D-курсору). Это аксиома, с этого всегда надо начинать создание анимации. Что помешало тебе это сделать?
 Что ты намудрил с ключами формы  (shape key) мне не ведомо. Возможно не применён масштаб (Ctrl A->масштаб), это тоже надо делать перед созданием анимации.
 В теории ключами формы тоже можно получить твою анимацию, но как правило к ним прибегают в том случае если надо изменить форму объекта, а городить скости лень.То есть это сложнее.

Оффлайн Amol

  • Житель
Re: Вращение по временной оси
« Ответ #7 : 18 Ноябрь 2022, 08:50:00 »
Что помешало тебе это сделать?
Терминология принята - спасибо!
В конце концов я так и сделал.
Мне казалось, что есть другой, более удобный способ.
Объект в момент вращения, был в другом месте из-за этого пришлось менять его положение везде.
Подскажите, пожалуйста, каким образом делают анимацию вращения объекта, если у него несколько осей?
Каждый раз меняя центр объекта результат не тот, что нужен.

по поводу масштаба:
В Object Mode при выделенном объекте я нажал CTRL + A (Object - Apply - Scale), но результат вращения с помощью Shape Key не поменялся, все так же меняются размеры.
Прилагаю файл blender.

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: Вращение по временной оси
« Ответ #8 : 18 Ноябрь 2022, 12:40:44 »
Цитировать
Подскажите, пожалуйста, каким образом делают анимацию вращения объекта, если у него несколько осей?
Один из вариантов - крутить в этих местах пустышки (Empty) по нужным осям, а у объекта ставить ограничение привязки к этим пустышкам. Сходу не скажу, что в твоём случае понадобится: CopyRotation, CopyLocation, оба вместе, или что-то ещё...

При этом влияние ограничений можно анимировать, т.е. можно делать так: в кадрах 25-49 объект зависит от Empty1, а в кадрах 50-75 от Empty2

Оффлайн Mihanik

  • Житель
Re: Вращение по временной оси
« Ответ #9 : 18 Ноябрь 2022, 21:08:11 »
по поводу масштаба:
В Object Mode при выделенном объекте я нажал CTRL + A (Object - Apply - Scale), но результат вращения с помощью Shape Key не поменялся, все так же меняются размеры.
Прилагаю файл blender.
:D Как это не смешно я тоже принял это за изменение масштаба. На самом деле, ключ формы так и работает. этот инструмент для изменения формы а не положения объекта. То есть он запоминает положение всех вершин объекта. и в зависимости от значения ключа эти вершины двигаются по кротчайшему пути, от базы до положения в котором был поставлен ключ.
Чтобы получить чистое вращение надо создавать новый ключ для каждого кадра, ну или хотя бы для каждого там пятого или десятого.

Оффлайн Mihanik

  • Житель
Re: Вращение по временной оси
« Ответ #10 : 19 Ноябрь 2022, 08:59:56 »
Цитировать
Подскажите, пожалуйста, каким образом делают анимацию вращения объекта, если у него несколько осей?


При этом влияние ограничений можно анимировать, т.е. можно делать так: в кадрах 25-49 объект зависит от Empty1, а в кадрах 50-75 от Empty2
А вот фигушки :D, во всяком случае у меня не получается. Какое бы ограничение не выбрал снижение влияния ограничений приводит к возвращению объекта в исходное положение. то есть значение поворота и положения не сохраняется.
Короче, кто сделает, скажем к примеру, анимацию работы землемерного циркуля,(причём в том числе и по криволинейной траектории) без ручной подгонки, именно вращением вокруг его ножек, от меня огромный респект и уважуха, ибо я всегда  в таких случаях подгонял ручками, это было быстрее.
 Мне видится лишь способ установки в каждую точку нового Empty, но это ещё геморней чем подогнать вращение-перемещение напрямую.

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: Вращение по временной оси
« Ответ #11 : 19 Ноябрь 2022, 12:19:36 »
На респект и уважуху, конечно, не заработал, т.к. криволинейной траектории не сделал, но что-то есть.
Геморрой с ключами на пустышки, конечно, изрядный, тут не поспоришь...
Но у меня уже много лет есть абсолютная уверенность, что вообще любая не совсем тривиальная анимация - это огромный и почти непреодолимый геморрой...

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: Вращение по временной оси
« Ответ #12 : 19 Ноябрь 2022, 12:25:31 »
Блин, форум убил анимацию в гифке...  :(
Выложил на свой сайт

Оффлайн Mihanik

  • Житель
Re: Вращение по временной оси
« Ответ #13 : 20 Ноябрь 2022, 20:32:11 »
На респект и уважуху, конечно, не заработал, т.к. криволинейной траектории не сделал, но что-то есть.
Геморрой с ключами на пустышки, конечно, изрядный, тут не поспоришь...
Но у меня уже много лет есть абсолютная уверенность, что вообще любая не совсем тривиальная анимация - это огромный и почти непреодолимый геморрой...
Да мне не жалко респекта и уважухи, всегда пожалуйста :D, но факт что простого и универсального решения нет, все они какие то костыльные.
 Вот тоже собрал, вообще без ограничений. Просто связка родитель-потомок. Одни оси родителя другие потомка. После поворота в осях потомка, в одном кадре опять ставим центр родителя в то место где оно изначально было у потомка.
https://disk.yandex.ru/d/i5u871NYiEA3IA

Оффлайн Samovar

  • Житель
Re: Вращение по временной оси
« Ответ #14 : 21 Ноябрь 2022, 22:13:07 »
Цитировать
На респект и уважуху, конечно, не заработал, т.к. криволинейной траектории не сделал, но что-то есть.
Прикольно, Striver! Мои уважение и восхищение!  8)
Помню, сам катал квадратное таким образом в blender, здесь на форуме, несколько лет назад... а Николай Николаев даже с помощью математической формулы и драйверов такое запилил, что вообще маегакруто было!... но, так и не смог найти эту тему... возможно, плохо искал...