что делать если в блендере вокруг курсора круг
Простой Blender. Часть 2
КДПВ 2.
Продолжение рассказа о том, что Blender — это несложно, написанный непрофессионалом. Вот начало рассказа.
Техники моделирования
Итак, примитивы и модификаторы. Но сначала — еще немного про UI.
Работа с программой
Upd. По рекомендации Leopotam: нажатия горячих клавиш идут в активную область Blender. В непонятных ситуациях — попробуйте переместить мышку в интересующую вас область и повторить.
Область 3D
Вся работа с геометрией ведется в этой области. Еще раз скрин:
Рисунок 1. Область 3D.
Про панели
Если вам нужно создать объект, повернуть его, сгруппировать с другим, физику назначить (есть и такое, да), не используя меню/горячие клавиши — это налево, в панель работы с объектами. Частью этой панели является панель детальной настройки операции. Там же назначаются точные стартовые параметры примитивов, например. Если хочется что-нибудь потюнить и непонятно где смотреть — загляните сюда.
Если нужно картинку на фон подложить (разную в зависимости от проекции — очень удобно), нормали отобразить, настроить длину отрезка обрезки вьюпорта (вряд ли вам понадобится это сходу) — это направо, и на горячие клавиши это вроде не завязано.
3D курсор
Как я уже упоминал ранее, у Blender есть такая вещь, как 3D курсор. Им можно указать на любую точку в пространстве сцены. Эта точка будет использоваться как origin point для вновь созданных примитивов. Можно передвигать кликами, можно — заданием значения (панель, вызываемая по N):
Рисунок 2. Поля для ввода численных значений требуемых координат 3D курсора.
Аналог в маске отсутствует — там ориджин указывается в момент OnMouseDown и исчезает при OnMouseUp.
Фича не плохая и не хорошая — просто не так, как в максе.
Эти клавиши связаны с курсором и помогают хоть как-то выровнять ситуацию с отсутствующим “align to” (передвинуть объект в центр сцены, например).
Shift-S. Выдает следующее меню:
Здесь selection — выделенный объект, center — центр координат.
Ctrl-Alt-Shift-C. Самое пальцеломное комбо из активно мной используемых:
Origin — это аналог pivot-point в максе, точка объекта, вокруг которой он вращается.
Сочетания этих команд позволяют хоть как-то костылить поведение “align to”. BF, проснись, пальцы бастуют.
Можно завязать точку зрения камеры текущей 3D области, если явно обозначить такое желание в настройках во все той же панели по N:
Я активно пользуюсь этой возможностью — кликать курсором в интересующую меня точку с мгновенным переносом камеры области. К сожалению для меня, начиная с версии 2.74 мгновенного переноса уже нет — нужно каждый раз подтверждать переход клавишей Home. Поэтому я сижу на 2.73. Но это дело привычки. И могли бы и в настройки засунуть.
Создание примитивов
Сюзанна
В максе примитивом со сложной геометрией является чайник. В Blender — голова обезьяны по имени Сюзанна. Находится в Mesh->Monkey:
Рисунок 6. Вообще Сюзанна гораздо более квадрированная, но для первого знакомства я сгладил ее субдивиженом (см. ниже).
Базовые операции над объектами
Кнопка 1 включает/выключает отображение визуальных контроллеров.
Кнопки 2 переключают операцию и контроллер для нее:
Рисунок 8. Контроллеры для перемещения, поворота, и растяжения/сжатия.
Тянем за цветную ось на контроллере — совершаем операцию строго относительно оси данного цвета (цвета осей — внизу слева в области 3D). Тянем за белое кольцо — делаем операцию, не оглядываясь на оси.
Выпадающий список 3 позволяет указать систему координат, в которой делается операция — порой помогает.
Замечу, что вызов операции по горячей клавише срабатывает, даже если объект находится вне вьюпорта. Через UI, понятное дело, так сделать нельзя — не видно контроллеров.
Параметры и модификаторы
Небольшое отступление.
Как вы уже знаете, в Blender нет «главного» окна/вида/etc. Соответственно, для настроек параметров объекта (положение, название, текстуры, примененные модификаторы и так далее) используется область настроек. Она табированная, и первые 4 таба всегда доступны (даже если объектов на сцене нет). Это потому, что они позволяют настроить те вещи, которые есть всегда, пока есть сцена. Это вкладки рендера, мира и собственно текущей сцены (также всегда доступна вкладка текстур, но я сейчас немного о другом).
Как только вы выделяете какой-то объект, в этой области добавляются вкладки, относящиеся к объекту. Они сохраняются даже если снять выделение с объекта. А вот если выделить объект и удалить его — вкладки объекта опять исчезнут:
Рисунок 9. UI области настроек. Слева — постоянные вкладки, справа — объектные
Область настроек
Подробная работа с параметрами объекта ведется с помеченными вкладками:
Рисунок 10. UI области настроек. Самый востребованные вкладки
На скрине я свернул все подгруппы вкладки “Объект” (чтобы не вставлять в текст простыню) — по дефолту некоторые из них развернуты. Числом 5 обозначено поле для ввода имени объекта.
Вкладка модификаторов
Тут находится, фактически, аналог стека модификаторов макса. Но с гораздо более приятным UI, по-моему. Вот Сюзанна, которой довели количество полигонов до 126 000 (модификатор Subdivision surface), затем натянули на шар (модификатор Cast), а потом у результата срезали количество полигонов до неприличных 600 (модификатор Decimate):
Рисунок 11. Участь Сюзанны нелегка. Но с ней и не такое проделывают — погуглите.
Выпадающий список позволяет добавить модификатор, панели под ним — это собственно UI добавленных модификаторов по очереди (самый верхний применяется самым первым). Вот сравнение стеков Blender и макса:
Рисунок 12. Стек Blendera vs. стек макса
Как видно, UI стека модификаторов макса — это “списковая форма” + “детальная инфа для выделенного элемента”, а Blender — “список детальных окошек”. У каждого решения свои плюсы и минусы.
Ну и напоследок
Для понимания, что такое контрол дропа против корейцев в Blender, попробуйте следующее. Запустите Blender, ткните мышкой в 3D область, а затем… Затем уберите руку с мыши и просто нажимайте написанные ниже клавиши. Если собьетесь — рекомендую начать сначала.
Объяснение почти всего произошедшего я уже описал в этой серии.
Трудности и «глюки», возникающие у новичков в программе Blender, и как их преодолеть
Blender это замечательный бесплатный 3d пакет, который делает возможным и доступным осуществление гигантского количества проектов, и, как человек, прошедший путь от абсолютного новичка в 3d до преподавателя данной программы в учебном центре «Специалист» в Москве, я могу поделиться несколькими типами, которые помогут преодолеть несколько несложных, но каверзных моментов, которые хоть и очень просты, но далеко не очевидны, и могут заставить просидеть несколько часов в поиске решения проблемы.
Перевод программы и подсказок
Для того чтобы активировать подсказки, если они не работают, нужно зайти в меню Edit-Preferences-Interface. Поставить галочку напротив Tooltips.
Для активизации перевода подсказок в том же разделе открываем выпадающее меню Translation, ставим русский язык, и галочку напротив Affect Tooltips.
Забагивание области просмотра
Находится эта функция в меню View-Frame selected.
Clipping
устраняется заходом в боковое меню нажатием кнопки N, и во вкладке view в выпадающем меню view, уменьшаем значение Clip Start (Например 0,001)
Нормали
-Нормали это вектор перпендикулярный плоскости полигона, который указывает блендеру куда ему отражать свет. Направлен этот вектор только в одну сторону, то есть если нормаль вашего полигона развернута внутрь объекта, как часто случается в blender, то из за этого у вас будут проблемы на каком-то этапе работы.
Развернуть нормали нам помогут функции Mesh-Normals-Flip (или recalculate outside)
Также мы можем выделить все полигоны объекта (шорткат А) и нажать Recalculate outside чтобы blender автоматически пересчитал все наши полигоны наружу.
За направлением нормалей лучше следить.
Двойные вертексы
Карты нормалей
Проблема в том что карты нормалей, в вышеперечисленных, и не только, программах, запекаются c использованием DirectX, а blender работает с OpenGL. Если говорить простым языком то нам нужно развернуть зеленый канал на карте нормалей. Делается это следующим образом:
Надеюсь, что данный пост поможет людям, осваивающим блендер, проскочить несколько часов поиска решения проблем!
Управление сценой в Blender
Главный регион редактора 3D Viewport для краткости будем называть просто сценой или 3D. Это эмуляция трехмерного мира, в котором размещаются и по большей части редактируются различные объекты.
В стартовом файле на сцене находятся три объекта – куб, камера и лампа.
Лампа является источником света. Без него конечное изображение было бы черным. С помощью камеры настраивается то, что будет видно на финальном изображении, под каким углом и с какого расстояния. В случае анимации могут перемещаться не только объекты, но и камера.
По-умолчанию выделен куб. Это видно по яркому контуру. Для выделения объектов в Blender по-умолчанию используется левая кнопка мыши.
Название выделенного объекта отображается в верхнем левом углу главного региона.
Объекты можно выделять и в редакторе Outliner. Здесь же их можно переименовывать, скрывать видимость, сортировать по коллекциям и др.
Чтобы увидеть, как выглядит готовое изображение, надо нажать F12. Произойдет рендеринг (отрисовка, визуализация) части сцены, видимой из камеры. При этом будет открыто отдельное окно с редактором Image Editor. Чтобы вернуться опять в 3D Viewport, надо нажать Esc.
Вид из камеры также можно получить, нажав 0 на нумпаде. Курсор должен находиться в пределах редактора. Повторное нажатие 0 вернет предыдущий вид. Никакой отрисовки при этом не происходит, лишь изменяется угол обзора сцены.
Курсор и выделение
Кроме перечисленных «материальных» объектов, на сцене имеется 3D-курсор в виде прицела и сетка с красной X и зеленой Y осями. Они не объекты. Сетка служит ориентиром и своего рода линейкой. Она не позволяет потеряться в пространстве и дает приблизительно оценить размер объектов.
Курсор по большей части используется как указатель места, куда надо разместить новый объект, переместить центральную точку объекта. Исходно он находится в центре сцены, на месте пересечения осей X и Y. Чтобы переместить его в другое место, надо в регионе инструментов (он же панель инструментов) выбрать инструмент Cursor. После этого клики левой клавишей мыши будут перемещать 3D-курсор, а не выделять объекты.
Для более быстрого переключения между инструментами используются горячие клавиши:
Вообще комбинация клавиш Shift + Пробел открывает меню, где перечислены все инструменты панели инструментов.
Групповое выделение объектов
С помощью клавиши A клавиатуры выделяются все объекты сцены. Для сброса выделения используется Alt + A.
Для выделения нескольких объектов зажимается клавиша Shift, после чего выполняется клик по второму и последующим объектам. Понятно, что при этом должен быть включен один из инструментов Select, а не Cursor.
Групповое выделение также может быть выполнено путем растягивания рамки, когда зажимается левая кнопка мыши и перемещается указатель. Все объекты, попавшие в область рамки, будут выделены.
По-умолчанию рамка имеет прямоугольную форму. Однако есть другие варианты выделения, доступ к которым открывается, если зажать кнопку на панели инструментов. Переключаться также можно с помощью горячих клавиш.
В случае выбора первого варианта (Tweak) возможность группового выделения с помощью растягивания рамки отключается.
Управление 3D-видом
В Blender управление 3D-пространством, навигация в нем, выполняется с помощью мыши, цифрового блока клавиатуры – нумпада, специальных кнопок интерфейса. Если у клавиатуры нет нумпада, то обычно она поддерживает переключение в этот режим. Другой вариант – в Preferences на вкладке Input установить флажок Emulate Numpad. В этом случае будут задействованы цифровые клавиши основной части клавиатуры.
Управление 3D-видом с помощью цифрового блока клавиатуры
Вид сцены, в котором она находится в данный момент, указывается в верхнем левом углу главного региона 3D Viewport.
Слово User (пользовательский) означает, что вид в точности не соответствует ни одному из вышеперечисленных. Например, вы установили вид сверху, а затем чуть повернули сцену налево.
В режиме Perspective сцена выглядит трехмерной. Так, как нам бы казалось в реальности. При этом истинные размеры и отношения искажаются. Если переключаться туда-сюда в режимы Ortho и Persp, то видно, что в Persp «ближние» к нам квадраты сетки больше, чем дальние. В Ortho пространство проецируется на плоскость путем проведения перпендикуляров из его точек на соответствующую проекцию (верх, право и др.). Размеры при этом не искажаются.
Управление 3D-видом с помощью мыши
Управление 3D-видом с помощью кнопок редактора 3D Viewport
Начиная с Blender 2.80 появилась возможность управлять сценой с помощью кнопок интерфейса.
Кликабельными являются не только четыре серые кнопки, также цветные оси и их обозначения. Если зажать мышь в пределах цветных осей, можно крутить пространство как трекбол.
Сохранение изображения
Сохранение и создание новых проектов в Blender выполняется через меню File. Также используются горячие клавиши: Ctrl + N для создания нового файла и Ctrl + S для сохранения текущего.
При создании нового проекта предлагается выбор из несколько стартовых файлов, адаптированных под разные задачи. В данном курсе мы будем использовать только первый – General, то есть Общий.
Курс с инструкционными картами к части практических работ:
android-приложение, pdf-версия
Некорректное вращение вокруг разных осей
Главная › Форумы › Анимация и ригинг › Некорректное вращение вокруг разных осей
Писал об этом Артёму, теперь спрашиваю здесь. Проблема в том, что невозможно повернуть объект вокруг одной оси, а затем вокруг другой: при добавлении второго констрайнта 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Д видом выбрать 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
Всевозможные повороты работают, можно во время поворота перемещать пустышку, и куб за ней последует. Но муторно ставить новую пустышку. И если в аутлайнере надо переместить один объект на другой и они оба одновременно не видны в окне, то непонятно, как подтянуть один объект к другому: окно автоматически не прокручивается, как это делается в нормальных программах…
И ещё я заметил проблему: к одному объекту делались пустышки для поворотов, потом объект переместили и стали перемещать его вместе с другим объектом, выделив оба. И на анимации вначале один объект обгоняет другой, хотя, я ускорения и замедления в графредакторе не трогал. Это что за фишка?
Вот ещё интересные фишки: запускаем Блендер, щёлкаем, чтобы убрать заставку, и нажимает 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.