Меню

Blender не работает поворот

Просто точно повернуть объект, как?

Пусть ось вращения задана 3Д координатами двух её точек. Надо повернуть вокруг этой оси какой-нибудь предмет (хотя бы родной кубик) на заданный угол.

Развитие темы: надо сделать анимацию поворота объекта вокруг одной такой оси в пространстве, затем вокруг другой оси, также заданной координатами двух её точек, и т.д. Мне на другом форуме один профи сказал, что можно обойтись на все такие повороты одной пустышкой. Но объяснил он себе самому, через кватернионы, а мне хочется иметь простую методику для анимации любого числа таких поворотов.

Можно ли так расположить вьюпорт, чтобы смотреть вдоль такой оси вращения, т.е. чтобы она была перпендикулярна плоскости вьюпорта?

Спасибо, если будет ответ/урок на youtube. 🙂

Справа от твоего поста ответы на все эти вопросы.

Т.е. надо просто купить книгу по инструментам моделирования?

Это уже сами смотрите. Если интересует только этот вопрос, то смысла мало. А если вы моделируете в Blender и сталкиваете с подобными проблемами регулярно, то знание элементарных основ не повредит точно.

Я может плохо понял проблему, но чтобы что-то повернуть, достаточно 3D-курсора и кватернионы тут не нужны. И как говорил профи, можно набросать пустышек и с помощью ограничителя вращать объект то вокруг одной пустышки, то вокруг другой. Кстати, подобное я когда-то показывал на этом форуме.

Так это же я и спрашивал… Только в общем случае этот рецепт не подходит. В том примере кубик подъезжает ко 2-й пустышке, как надо, а куда эту 2-ю пустышку выставить, если вращение будет не вокруг глобальных осей координат и не на угол 90*n?

Вот ответ того профи по фамилии Falseowl: https://render.ru/xen/threads/voprosy-otvety.122556/page-46#post-1204778 Насколько я понял, он кантует кубик вокруг разных рёбер, используя только одну пустышку. Вот это меня и интересовало: как повернуть вокруг одной оси, а потом вокруг другой и т.д. не городя огород из множества пустышек. Только я не понял, как он компенсировал повороты куба и пустышки, чтобы другие повороты также делать с пом. той же пустышки. И будут ли возникать холостые технические кадры в анимации?

Почему-то авторы Блендера не смогли сделать, чтобы в анимационных ключах запоминались координаты оси вращения, тогда и проблемы бы этой не было…

Вам уже на двух форумах разжевали проблему, а вы говорите, что авторы Blender что-то там не сделали. Может это вы что-то там не поняли?

Мне нечего добавить. Вам осталось сложить 2 + 2 и сделать свою анимацию.

На одном форуме говорили не о том, а на другом автор ответа уяснил решение, но для себя (через кватернионы), там ничего похожего на разжёвывание нет. Причём, здесь автор ещё и не мог понять (или делал вид), что значит повернуть кубик вокруг заданной оси и говорил о каком-то 3Д курсоре. И утверждал, что это просто, хотя на другом форуме автор ответа написал, что это не просто.

Источник

Трудности и «глюки», возникающие у новичков в программе Blender, и как их преодолеть

Blender это замечательный бесплатный 3d пакет, который делает возможным и доступным осуществление гигантского количества проектов, и, как человек, прошедший путь от абсолютного новичка в 3d до преподавателя данной программы в учебном центре «Специалист» в Москве, я могу поделиться несколькими типами, которые помогут преодолеть несколько несложных, но каверзных моментов, которые хоть и очень просты, но далеко не очевидны, и могут заставить просидеть несколько часов в поиске решения проблемы.

Перевод программы и подсказок

Перевод программы и подсказок — Blender, как и почти все программы является англоязычной, но в настройках (preferences) мы можем сделать его интерфейс русскоязычным. Переводить его полностью на русский язык я бы не советовал, т.к. названия всех терминов и команд почти необходимо знать на английском языке для дальнейшего развития, и, так или иначе, много из них заимствовано великим и могучим русским языком и используется всеми и повсеместно (нормали, фейсы, вертексы и т.д.). А вот перевод подсказок действительно может упростить процесс входа в программу и снять много вопросов в процессе их появления. Окошко с подсказкой возникает при наведении курсора мыши на любой элемент blender.

Для того чтобы активировать подсказки, если они не работают, нужно зайти в меню Edit-Preferences-Interface. Поставить галочку напротив Tooltips.

Для активизации перевода подсказок в том же разделе открываем выпадающее меню Translation, ставим русский язык, и галочку напротив Affect Tooltips.

Забагивание области просмотра

Следующая проблема с которой я постоянно сталкивался это забагивание области просмотра — при попытке панорамировать вид\приблизиться\отдалиться от объекта, blender упорно отказывается это делать, точнее делает это очень медленно . Тут помогает функция Frame, которая перезахватывает выбранный объект во вьюпорте и данная проблема устраняется.

Находится эта функция в меню View-Frame selected.

Clipping

Некст проблема это clipping — при попытке работать с объектом на близком расстоянии область обрезает часть нашего объекта, и мешает нам работать.

устраняется заходом в боковое меню нажатием кнопки N, и во вкладке view в выпадающем меню view, уменьшаем значение Clip Start (Например 0,001)

Нормали

Следующая проблема это нормали — будь то незнание того — что это? или незнание того — как их привести в правильное положение. Проблемы с нормалями возникают например при попытке запечь карты деформации, во время скульптинга, при попытке нажать Shade smooth и тд.

-Нормали это вектор перпендикулярный плоскости полигона, который указывает блендеру куда ему отражать свет. Направлен этот вектор только в одну сторону, то есть если нормаль вашего полигона развернута внутрь объекта, как часто случается в blender, то из за этого у вас будут проблемы на каком-то этапе работы.

Читайте также:  Lenovo не работает колонка

    Как мы можем видеть на данном изображении — все нормали объекта, кроме трех выделенных, повернуты наружу, а три выделенные — внутрь. При обычном режиме затенения Shade flat — этого не видно, но если я включу режим затенения shade smooth, то результат будет совсем иным.

    Проверить направление нормалей своего объекта я могу перейдя в edit mode, и в выпадающем меню overlays поставить галочку напротив Face orientation . Тогда все нормали повернутые наружу будут отображаться синим цветом, а направленные внутрь — красным. В этом же меню Overlays я могу включить отображение нормалей как векторов.

    Развернуть нормали нам помогут функции Mesh-Normals-Flip (или recalculate outside)

    Flip — развернет выделенные полигоны.

    Также мы можем выделить все полигоны объекта (шорткат А) и нажать Recalculate outside чтобы blender автоматически пересчитал все наши полигоны наружу.

    За направлением нормалей лучше следить.

    Двойные вертексы

    Двойные вертексы — часто в процессе моделирования и оперирования командой Extrude могут создаться вертексы, которые стоят друг в друге и будут портить нашу топологию, это может нам аукнуться на этапах UV развертки, создания рига и тд. Чтобы избежать этого, на промежуточных этапах работы можно выделять всю свою модель в режиме работы с вершинами и нажимать Mesh-clean up-merge by distance. Двойные вертексы будут объединяться.

    Карты нормалей

    Карты нормалей запеченные в других программах (substance painter, Zbrush) дают странный результат в Blender .

    Проблема в том что карты нормалей, в вышеперечисленных, и не только, программах, запекаются c использованием DirectX, а blender работает с OpenGL. Если говорить простым языком то нам нужно развернуть зеленый канал на карте нормалей. Делается это следующим образом:

Надеюсь, что данный пост поможет людям, осваивающим блендер, проскочить несколько часов поиска решения проблем!

Источник

Поворот вокруг своей оси (blender)

Глупый вопрос, но всёравно задаю его.
Как повернуть объект вокруг своей оси?
(либо я чтото не понимаю..либо координаты blender не как следует сохраняет либо ещё что)
Задаю вопрос, т.к. многое в проге делал сам, И как полагается..не уверен в том, что всё работает на 100% правильно.
( делал парсинг obj файлов, создание индексов, удаление дублирования и тд. )
И вот. Открываю Blender. делаю модель мартышки из множества материалов (да и модель сферы тоже делал, которая расположена глобально по 0,0,0 в блендере).Делаю экспорт obj. И любуюсь, на то, что модель крутится вокруг 0 0 0 координаты.
А мне нужно чтоб она крутилась вокруг своей оси) Да я и понять не могу, почему модель крутится вокруг нулевой координаты. (ведь когда я в блендере создаю модель, то размещаю её по нулевой координате) . Ведь в программе модели будут иметь первоначально такиеже координате, как и в 3д редакторе? или нет?

Вот немного инфы о коде.
1) Сначала создаю матрицы перспективы.
2) Создаю матрицу вида.
2) Делаю матрицу модели еденичной.
5) Создаю матрицу модели
6) Перемножаю матрицы. модели на видовую. Далее на матрицу перспективы.
7) Данные в шейдер передаю. рисую.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Не удается реализовать поворот елки вокруг своей оси по x и по у
У меня такая проблема, в OpenGL я почти ничего не понимаю, но ёлку реализовать получилось(не с.

Вращение планеты вокруг солнца, и вокруг своей оси
У меня есть Солнце, которое находиться в координатах(0.0.0), и нужно вращать планеты, как по.

Вращать сферу вокруг центра координат, и одновременно вращать ее вокруг своей оси
Всем привет! Долблюсь о стену второй день ( Суть в том, что мне необходимо вращать сферу вокруг.

Поворот объекта вокруг оси
Здравствуйте. Знаю что подобная тема уже поднималась на форуме, но интересующий меня ответ я не.

Решение

Охохо)
Спасибо за ответ!
(попробовал ручками позицию модели в блендере перенести) и теперь , объект ровно по центру, и крутится вокруг своей оси.

Сейчас буду методом тыка, пробовать методы экспортирования модели в блендере,с различными настройками.
Как обнаружится, корректная, отпишу в эту тему.

Вы не планируете использовать библиотеку OpenGL Mathematics (GLM) для работы с матрицами?

Что вы используете для создания окна? GLFW? GLUT? SFML? У меня есть пример загрузки текстурированной модели из Blender’а написанный на Python + GLFW. Я может переведу, допустим, под GLUT, или SDL2. Что вы используете?

А использую я , сам не знаю что. Единственное как делал OpenGL приложение , это тупо запускал android studio и в нём, на джаве, потихоньку помаленьку, пробую приложение делать.
А там, через GLSurfaceView создаю «окно для приложения» и кодю. не задумывался вообще, что именно окно рисует.

Насчёт библиотеки GLM.
Не планирую использовать. Т.к. пока не понимаю для чего она мне может понадобиться) ,ну и второе, я c++ не знаю.(не нравится на нём что-то делать).
Пока на java пишу, а там через класс Matrix можно делать преобразования. ( чтож делать. пока придётся этим пользоваться)

Насчёт загрузки текстурированной модели. А у меня уже готова она)
А за примеры, спасибо. Но мне они не принесут столько «полезности», сколько могбы из них почерпнуть..более начитанный человек. Я не знаю не Python ни C++ .
Мне лучше, когда в кратце объясняются общие принципы.
Наподобие:
1) Чтоб нарисовать фигуру, мы должны указать координаты всех треугольников, из которых состоит фигура.
2) С каждым пикселем, на этой фигуре, можно будет сделать всё что угодно.
3) Уменьшаем количество дублирований вершин. т.к. «меньше данных» лучше, для пересылки из памяти в память gpu + требуется меньше памяти для хранения «рабочих данных.
и тд.
А во) когда это писал, вспомнил. Что есть одна фундаментальная вещь, которую не понимаю.
Что такое ТЕКСТУРНЫЙ СЛОТ? ..как работать с ним знаю. Как грузить в него данные, в курсе.
А ЧТО ЭТО? так и не пойму. (везде упоминают. текстурный слот. это. это. и ничего по существу)

Источник

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

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

  • В этой теме 15 ответов, 2 участника, последнее обновление 6 лет, 6 месяцев назад сделано 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 пустышек и настраивать их?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Adblock
detector