Экспорт 3D моделей из Blender в игровые движки. Как экспортировать из blender в Unity 3d, Unreal Engine, UDK, CryEngine, Amazon Lumberyard. Часть 3. Ориентация 3D модели в пространстве. Локальные оси.

Данная часть статьи является инструкцией по тому, как экспортировать из Blender в Unity 3D модели. В данной части статьи я продолжу рассказывать про особенности экспорта 3D моделей из Blender и импорт 3D моделей в Unity3D, Unreal Engine и другие игровые движки. В данной части статьи-уроке будет рассказано про ориентацию 3D модели в 3D пространстве, про локальные оси 3D модели и про глобальные оси 3D модели.

Экспорт 3D моделей из Blender в игровые движки. Часть 1. Экспорт из Blender в Unity 3D моделей. Как перенести 3d модель в Unity3D, Unreal Engine, UDK, CryEngine, Amazon Lumberyard.

Экспорт 3D моделей из Blender в игровые движки. Unreal Engine, UDK, CryEngine, Amazon Lumberyard, Unity3d импорт моделей. Часть 2.

Экспорт 3D моделей из Blender для игровых движков. Импорт моделей в Unity из Blender. Часть 4. Origin, Pivot Point, центр 3D модели.

Экспорт 3D моделей из Blender в Unity3D, Unreal Engine, UDK, CryEngine, Amazon Lumberyard. Часть 5. Blender экспорт текстуры и материалов.

Экспорт 3D моделей из Blender в игровые движки. Часть 6. Как добавить 3d модель в unity, Unreal Engine, UDK, CryEngine, Amazon Lumberyard.

 

Как экспортировать из blender в unity 3D: ориентация 3D модели в пространстве. Локальные оси.

Еще одним важным параметром, особенно для нестатичных и/или анимированных моделей является направление осей (системы координат), в которой будет экспортирован персонаж. Проблема экспорта из Blender’а в Unity3D не раз упоминалась в статьях на данном сайте (и еще не раз я сошлюсь на эту статью).
Повторю здесь то, что уже было сказано в статье Быстрый старт из мейкхьюмен в юнити и других статьях на сайте. В Blender’е направленной вверх осью, так же как и в Unreal Engine 4, является ось z, а осью, определяющей направление «лица» модели (forward, перед), является ось минус игрек (-y). В UE4 передом 3D модели считается положительная направляющая оси x. В свою очередь, в Unity вертикальной осью является ось y, а «передом» модели — ось z.
Таким образом, для правильного экспорта 3D модели для Unity в Blender’е модель должна смотреть лицом в направлении оси -y (минус у), а «тыковкой-маковкой» — в направлении положительной оси z.

Как экспортировать из blender в Unity 3d, Unreal Engine, UDK, CryEngine, Amazon Lumberyard. Но не все так просто, поскольку поворачивая 3D модель (или несколько 3D моделей) в режиме объекта, вы изменяете направление его локальных осей, так что подобные трансформации 3D модели, должны завершаться сбросом углов поворота модели на значения по умолчанию.

как экспортировать из blender в unity, экспорт 3D модели в формате fbx, как экспортировать из blender в unity, unity импорт моделей, экспорт их blender в UDK, blender unity3d, fbx в unity3D, модель в Unity3d, blender fbx import
На рисунке показана 3D модель и направление ее локальных осей до сброса значений поворота и после.

Чтобы сбросить углы поворота модели и совместить локальные оси 3D модели (или оси сразу нескольких 3D моделей) с глобальными осями координат, выберите 3D модель в режиме объекта и нажмите сочетание клавиш Ctrl+A, после чего в открывшемся меню Apply выберите «Rotation«. Как вы могли заметить, в данном меню, помимо сброса поворота модели и всего остального, присутствует ещё и пункт сброса масштаба модели. Да, после масштабирования 3D модели на сцене в режиме объекта значение параметров масштабирования также необходимо сбросить на значения по умолчанию, выбрав в упомянутом выше меню «Scale«, но для того чтобы сохранить нам нервы и время разработчики добавили пункт меню “Rotation & Scale”, который позволяет сбросить сразу как значения для масштаба 3D модели, так и для поворота.
Однако и этого мало, поскольку в Blender’е существует небольшой баг с поворотом модели при экспорте. Допустим, вы проделали описанные выше действия и сориентировали 3D модель так, что ее «перед» смотрит в сторону отрицательной оси y, а «верх» — в сторону z. Предположим, что вы сбросили значения для поворота и масштаба на значения по умолчанию. Если сейчас вы экспортируете 3D модель и откроете ее в Unity (независимо от того, какие оси вы выставите в меню экспорта), то в окне ассетов, «раскрыв» импортированного персонажа, вы увидите, что его меш  повернут на 90 градусов.

На рисунке показана 3D модель, импортированная в Unity3D с настройками Blender по умолчанию, т.е. сброшенными значениями для поворота.

На рисунке показана 3D модель, импортированная в Unity3D с настройками Blender по умолчанию, т.е. сброшенными значениями для поворота.

Вы решаетесь добавить 3D модель на сцену. Поместив персонажа на сцену, вы не заметите ничего особенного, пока не включите отображение локальных осей импортированного персонажа, которые, как оказывается не совпадают с глобальными осями и, когда приходит время двигать 3D модель в локальных координатах, вы видите, что модель двигается совсем не туда, куда вы задумали.

Вы смотрите значения поворота/вращения объекта в инспекторе. Ага! Вон оно — 3D модель самостоятельно развернулась при переносе ее на сцену, игровой движок Unity3D самостоятельно «докрутил» модель, чтобы она была правильно ориентирована. Вы сбрасываете значения поворота на нулевые значения, будучи уверены, что все встанет на свои места, но после сброса значений 3D модель вообще приняла горизонтальное положение, уткнувшись лицом в пол.

На рисунке ниже показана 3D модель девушки, ориентированная в редакторе Blender для трех различных игровых движков.

как экспортировать из blender в unity, экспорт 3D модели в формате fbx, как экспортировать из blender в unity, unity импорт моделей, экспорт их blender в UDK, blender unity3d, fbx в unity3D, модель в Unity3d, blender fbx import
На рисунке показана 3D модель персонажа в Blender’е с отображенными глобальными осями (слева вверху) и локальными осями 3D модели, ориентированной согласно используемым в игровых движках системам координат:Blender – справа вверху, Unreal Engine – слева внизу, Unity3D – справа внизу

Ниже на рисунке ниже показана эта же 3D модель в окне проекта Project, импортированная в Unity3D с различными направлениями локальных осей.

На рисунке показаны импортированные в Unity 3D модели и подготовленные для трех разных движков сверху вниз: Blender, Unreal Engine 4 и Unity.

На рисунке показаны импортированные в Unity 3D модели и подготовленные для трех разных движков сверху вниз: Blender, Unreal Engine 4 и Unity.

Как можно заметить, после импорта 3D модели повернуты на соответствующие направлению локальных осей углы. Давайте посмотрим, как они будут выглядеть после добавления их на сцену в Unity.

Поместив персонажа на сцену, вы не заметите ничего особенного, пока не включите отображение локальных осей импортированного персонажа, которые, как оказывается, не совпадают с глобальными осями в Unity 3D.

как экспортировать из blender в unity, экспорт 3D модели в формате fbx, как экспортировать из blender в unity, unity импорт моделей, экспорт их blender в UDK, blender unity3d, fbx в unity3D, модель в Unity3d, blender fbx import
На рисунке показаны импортированные 3D модели с разной ориентацией локальных осей в Unity3D: слева вверху – так выглядят 3D модели, когда их добавляют на сцену; справа вверху показаны локальные оси добавленных на сцену 3D моделей;  слева внизу – после обнуления значений для поворота, которые автоматически добавляет Unity3D при добавлении моделей на сцену; справа внизу показаны направления локальных осей после обнуления значений поворота, т.е. действительное положение 3D моделей и направление их локальных осей.

Так как экспортировать из blender в Unity 3d, Unreal Engine, UDK, CryEngine, Amazon Lumberyard? Как было сказано выше, вылечить это можно путем создания пустышки, в которую следует перетащить модель персонажа в окне Иерархии в Unity, но это можно считать костылем, ведь хочется правильно экспортировать 3D модель, чтобы не было дополнительной пустышки.

Почему модель импортируется с перевернутыми осями? Мы же все сделали правильно… Или нет? Не совсем. Давайте посмотрим в параметры экспорта, возможно, здесь что-то не то?
В настройках осей для экспортируемой модели по умолчанию стоит Forward: -y, Top: z, т.е. оси перевернуты и Blender предлагает в качестве “переда/лица” модели использовать отрицательное направление оси игрек, а в качестве «верха» — ось зэд, что нас никак не устраивает (правильное назначение осей для Unity приведено выше). Значит необходимо изменить их на систему координат Unity. Выставляем в настройках для осей нужные параметры и экспортируем модель. Вуаля! Нет, не «Вуаля!» — изменение осей ни на что не влияет! Изменяя параметры осей в меню экспорта, мне так и не удалось изменить направление осей экспортированной и импортированной в Unity 3D модели.

Чтобы понять, как экспортировать из blender в Unity 3d, и правильно перенести 3D модель в Unity3D и другие игровые движки, нужно немного немного потанцевать с бубном. На время забудем о локальных координатах в Blender и сориентируем 3D модель, как показано на рисунке выше: вертикально (z – верх, —z низ модели) и лицом в направлении оси y. Теперь выберите 3D модель Правой Кнопкой Мыши и в виде справа (клавиша 3 на дополнительной цифровой клавиатуре) поверните ее вокруг оси x по часовой стрелке на 90 градусов, для чего нажмите клавишу ‘R‘, зажмите клавишу Ctrl для поворота с шагом и перемещайте мышь, пока под  активным окном (в котором вы поворачиваете 3D модель) значение угла поворота не достигнет значения в 90 градусов и нажмите Левую Кнопку Мыши. Теперь сбросьте значения поворота и масштаба модели на значения по умолчанию (Ctrl+A и выберите  «Rotation and Scale«) и поверните модель в исходное положение (на минус 90 градусов вокруг оси x) и можете смело экспортировать 3D модель для использования в Unity3D.

как экспортировать из blender в unity, экспорт 3D модели в формате fbx, как экспортировать из blender в unity, unity импорт моделей, экспорт их blender в UDK, blender unity3d, fbx в unity3D, модель в Unity3d, blender fbx import
На рисунке показана первая (поворот) и вторая стадия (сброс значений поворота и масштаба) подготовки 3D модели к экспорту.

Описанный выше процесс дополнительной подготовки модели для экспорта в Unity также может быть выполнен посредством использования комбинации горячих клавиш и их сочетаний, а именно: R->X->90->Enter->Ctrl+A-> Выберите Rotation and Scale-> R->X->-90, т.е. нажмите клавишу ‘R’, затем клавишу ‘X’, затем клавишу ‘9’ и ‘0’, после чего нажмите клавишу ‘Enter’. Теперь нажмите сочетание клавиш Ctrl+A и выберите  «Rotation and Scale«. Далее нажмите клавишу ‘R’, затем клавишу ‘X’, затем клавишу ‘’, ‘9’ и ‘0’, после чего нажмите клавишу ‘Enter’.

как экспортировать из blender в unity, экспорт 3D модели в формате fbx, как экспортировать из blender в unity, unity импорт моделей, экспорт их blender в UDK, blender unity3d, fbx в unity3D, модель в Unity3d, blender fbx import
На рисунке показана финальная стадия подготовки 3D модели к экспорту для игрового движка Unity3D: возврат модели в оригинальное положение

Вот и подошла к концу очередная часть уроков о том, Как экспортировать из blender в Unity 3d, Unreal Engine, UDK, CryEngine, Amazon Lumberyard.

Автор: Максим Голдобин
goldmaxval@gmail.com

Добавить комментарий