Секрети експорту з Blender до Unity
Секрети експорту з Blender до Unity
Автор: admin від 5-04-2015, 13:19, подивилося: 2076
Бонусний урок з текстур у Unity3d
Теорія про систему координат (правосторонньої та лівосторонньої)
Насправді це найважливіша частина, я зіткнувся з рядом проблем у роботі фізики 3d моделі через неправильний експорт. І так давайте спочатку познайомимося із системою координат правосторонньої та лівосторонньої.
Blenderвикористовуєправосторонню систему координатз віссю Z, спрямованої вгору. Таку систему координат використовують майже всіСАПР. Дивіться рисунок:

Unity3dяк майже будь-який інший ігровий движок використовує лівосторонню систему координат. Коли Y спрямований вгору, X - убік, Z-вперед. Дивимося малюнок:

Теорія правильного створення 3d моделей у blender
Для початку треба вивчити структуру папок та файлів нашої 3д моделі в Blender.Refence— папка в якій можуть зберігатися допоміжні креслення, малюнки, які допомагають побудувати 3д модельTextures- папка в якій повинні зберігатися текстури.Flags_snow.blend- наша 3d модель у форматі blender

Тепер для правильного експорту 3d моделі, ми повинні для себе усвідомити, що Z+ це буде напрямок у грі коли об'єкт рухається вперед, (Z-) – напрямок коли об'єкт рухається назад. (X+-) це напрямки повороту вбік — але цеUnity, яка використовуєлівосторонню систему координат. А вправосторонній системі координат(Blender, 3ds max) Y+ це буде напрямок коли об'єкт дивиться вперед і (X+-) це напрямки вбік. Це означає, що об'єкт повинен стояти в сцені так, як на малюнку, інакше чекайтепроблем із фізикою:

Всі параметри обертання повинні стояти на 0 для подальшої роботи та для правильної генерації Меша (Mesh), треба встановити Scale за замовчуванням. Для цього ми зробимо наступні дії у Blender.
1)Виділимо всі об'єкти в сцені (клавіша A) 2)Object>Apply>Rotate & Scale.
Тепер всі параметри обертання прийняті та встановлені на0. А параметримасштабування (Scale)встановлені за умовчанням(1). Дивимося малюнок:

Експорт із правильною орієнтацією моделі
Тепер можемо робити «Правильний експорт» із правосторонньої системи координат до лівосторонньої системи координат.
1) Виділимо всі об'єкти (клавіша A) 2) Тиснемо послідовністьR>X>-90. 3)Object>Apply>Rotate.4 ) Тиснемо послідовністьR>X>90.
Обов'язково робіть у цій послідовності. Далі експортуємо модель доUnity.File>Export>FBXз такими налаштуваннями:

Швидкий експорт файлів з Blender до Unity3d.
Після експорту моделі: 1) Ідемо в папку з цією моделлю і копіюємо папкуTextures (папку з текстурами)та нашFBX файл.

2) Вставляємо в папкуAssetsнашого проект. Це дозволить Unity імпортувати модель прямо з текстурами, які були налаштовані уBlender.

Чому кількість вершин по-різному відображається в Unity та Blender?
Як бачимо малюнку кількість вершин (verts) на об'єкті в Unity3d показує 28. Дивимося малюнок:

А кількість вершин у Blender = 8
Пов'язано це з тим, що в Unity3d підраховується кількість вершин самої фігури та кількість вершин у UV розгортці:

Пристворенні швів, одна грань поділяється на 2 грані, а за математикою 1 грань складається з 2 вершин, отже з 2ух граней буде 4 вершини. Для прикладу скористаємосяSmart UV Projectрозгорткою та встановимо максимальнийAngle Limit.


Як правильно зіставити масштаби моделі у Blender та Unity.
Усі одиниці виміру, що у Blender що у Unity за замовчуванням має одиницю виміруUnits.1 Units= 1 Meter. Тому розробники радять приймати 1 юніт ігрового простору за 1 реальний метр, і краще цього дотримуватися (хоча б щоб з фізикою менше возитися). Blender використовуєтьсяUnits.
Дивимося на малюнок:
Побачимо параметрDimension(Вимірювання або розмір). на малюнку ми бачимоDimensionза X, Y, Z = 1,1,1; отже ця фігура куб з розмірами 1х1х1 метр. Експортуємо до Unity та переходимо на вкладку Inspector

дивимося на параметрScale Factor, якщо у васUnityверсії менше 5, то за промовчаннямScale Factorбуде 0.01, виправимо цей параметр на 1, якщо у вас>Unity5тоScale Factorза замовчуванням буде 1.