În această parte a articolului, vom termina să analizăm întrebarea cum să adăugăm un model 3D unității. Această parte a articolului este dedicată stabilirii scalei modelului în Unity3D și Blender. Să ne familiarizăm cu convertoarele de format fbx și cu importatorii / exportatorii fbx.
Exportați modele 3D de la Blender la motoare de jocuri. Partea 1. Exportul de la Blender la modele 3D Unity. Cum să transferați modelul 3D în Unity3D, Unreal Engine, UDK, CryEngine, Amazon Lumberyard.
Exportați modele 3D de la Blender la motoare de jocuri. Unreal Engine, UDK, CryEngine, Amazon Lumberyard, importul de modele Unity3d. Partea 2.
Exportați modele 3D de la Blender la motoare de jocuri. Cum să exportați de la blender la Unity 3d, Unreal Engine, UDK, CryEngine, Amazon Lumberyard. Partea 3. Orientarea modelului 3D în spațiu. Axele locale.
Exportați modele 3D de la Blender pentru motoarele de jocuri. Modele de import în Unity din Blender. Partea 4. Origine, Pivot Point, centrul modelului 3D.
Exportați modele 3D de la Blender la Unity3D, Unreal Engine, UDK, CryEngine, Amazon Lumberyard. Partea 5. Blender exportă texturi și materiale.
Scala în Blender și în Unity3D
Cum să adăugăm un model 3D unității pe care am învățat-o din seria anterioară de articole. Un alt parametru important la exportul modelelor 3D din Blender în format fbx este valoarea factorului de scară model în fereastra de setări de export. De la o versiune la alta, de la construi pentru a construi este importat în modelul de unitate 3D în format FBX preia factorul de scală este egal cu una, așa cum ar trebui să fie (și cum să pună în modelul de export al setărilor în Blender), egal cu 0,01 că prin adăugarea de modele 3D pe scenă în unitate conduce la stabilirea unor valori pentru scara de 100 pentru fiecare axă (Unity 3D de offset parametru FileScale modelul nu sa uitat la etapa ca și în cazul în care a fost mutat acolo din filmul „Jack - cuceritorul giganți“.). Unitatea compensează factorul de scară atunci când exportează (0,01 × 100 = 1), oferind modelului 3D dimensiunea reală.
Figura prezintă în modelul importat Unity3D în format FBX din Blender, pentru care a fost instalat incorect factor de scalare, egală cu 0,01, ceea ce a condus la o scădere a modelului, care la rândul său a fost compensat Unitry3D mijloacele motorului, și anume, scara modelului a fost stabilită la 100Dacă nu cunoașteți răspunsul la întrebarea cum să adăugați un model 3D unității cu scala corectă, atunci există mai multe modalități de a rezolva această problemă. Nu ajută aici nici resetarea descrisă a scalei în Blender, nici modificarea acesteia în cazul acelorași unități de măsură. Și de ce să nu lași modele 3D pe scena în scară Unity egală cu 100, la urma urmei, uneori scala modelului se schimbă chiar și în timpul jocului. Lucru este că scalate obiectele compuse 3D (precum și pentru modele cu diferite factori de scalare) nu funcționează dozare dinamică, ceea ce duce la o creștere a drawcall'ov, astfel încât recurgerea pentru a schimba scara unui model 3D într-un joc (mai ales dinamic atunci când de ceva timp modelul 3D al codului de script scade treptat) este necesar numai în acele cazuri când este necesar.
Dacă întâmpinați o incidență similară cu o scară atunci când exportați și importați un model 3D, atunci puteți remedia această problemă atât în Blender, cât și în Unity3d.
Puteți schimba valoarea parametrului "Scale Factor" în Unity. setând-o la 100. Faceți-o mai bine înainte de a pune aceste modele 3D pe scenă, deoarece acestea vor fi de 100 de ori mai mari pe scenă și va trebui să reduceți scara fiecărui obiect plasat pe scenă manual.
Există, de asemenea, o modalitate automată de a seta factorul Scale pentru modelele 3D importate prin utilizarea unui script.
În dosarul Editor, creați scriptul C # MeshImporterScale și copiați următorul cod în el:
C # script pentru modificarea scalei obiectelor importate în Unity 3D
unde 100F este valoarea factorului Scale pentru modelul 3D importat.
Rețineți că acest script nu modifică factorul de scară al modelelor 3D importate anterior! Acesta va funcționa numai pentru acele modele 3D care vor fi importate în Unity3D după crearea acestui script.
Rezolvarea problemei scalei în Blender
Să vedem cum să adăugăm un model 3D unității cu scala corectă în Blender. Dacă vom rezolva problema în Blender, este de remarcat faptul că scara de expunere pentru întreaga scenă în Blender nu afectează factorul de export, și încă trebuie să pună factorul de scală egală cu o sută.
Se poate lucra, de asemenea, în Blender pe o scară de 1: 100, care nu este foarte convenabil, deci trebuie să găsească un alt mod de a adăuga un model 3D în Unitate pe o scară de la 1 până la 1.
Și puteți merge într-un alt mod și setați factorul de scalare la 100 în opțiunile de export din Blender.
Figura arată setarea scării pentru exportul în Blender.După importarea fișierului FBX în Unity3D, valoarea Scale fișier, după cum era de așteptat, este egală cu numărul.
Figura arată modelul importat în format Unitate 3D în format FBX cu scala de export setată la 100 în Blender.Dar când adăugați un model 3D la scena, trebuie să resetați scara (care în acest caz Unity3D setează automat la 10.000) pe unitate.
Figura arată modelul 3D, când acesta este transferat la scenă, Unity3D stabilește automat scala de compensare la 10.000 de cercuri albastre. Cercul albastru a circulat orașul la o scară normală (1: 1).De asemenea, puteți schimba raportul de export în fișierul export_fbx.py. responsabil pentru exportul către Blender în format FBX6.1ASCII. Acest fișier se află în directorul de instalare Blender, implicit (64-bitnoyOSMSWindows) - în dosarul „Programul FilesBlender FoundationBlender2.75scriptsaddonsio_scene_fbx“. Găsiți linia
Proprietate: «UnitScaleFactor», «dublu», «», 1
Și înlocuiți ultima cifră cu 100, astfel încât sa dovedit:
Proprietate: «UnitScaleFactor», «dublu», «», 100.
Deși meniul de export în Blender nu va fi afectată, iar numărul 100 apare în loc de 1 pentru Scale, dar atunci când exportați o scenă sau un model 3D al Blender în FBX 6.1 format ASCII fișier factorului de scalare în Unity3D este acum egal cu 1.
Dacă nu doriți să urce în scripturi Blender codul pythonic Puteți schimba, de asemenea, valoarea pentru acest parametru deja creat fayleFBX în FBX format ASCII 6.1. În fișierul FBX, găsiți aceeași linie și modificați valoarea la ceea ce aveți nevoie, de exemplu de la 1 la 100.
Pentru un format binar FBX (FBX7.4binary) deschideți în același director fișierul script în fișierul export_fbx_bin.py și găsiți liniile
scale_factor = scene_data.settings.global_scale / units_blender_to_fbx_factor (scenă)
scale_factor = scene_data.settings.global_scale * units_blender_to_fbx_factor (scenă)
și înlocuiți-le cu
scale_factor = 100 * scena_data.settings.global_scale / units_blender_to_fbx_factor (scenă)
scale_factor = 100 * scena_data.settings.global_scale * units_blender_to_fbx_factor (scenă)
În parametrii de export în Blender, aceste modificări nu vor fi reflectate în nici un fel, dar în Scala unității de fișiere va fi egală cu una (1).
În ce format și cum să adăugați un model 3D Unității
Iar la sfârșitul articolului, observăm că puteți alege una dintre cele două versiuni disponibile, care pot exporta modelul 3D: FBX7.4binaryiliFBX6.1ASCII. Prefer prima opțiune și, cu excepția unui bug Unity3D sau Blender, referitoare la File Scale, nu au fost încă probleme întâlnite, sau atunci când exportă o singură plasă, sau atunci când exportul animații, sau atunci când exportul animații cu plasă. Un alt motiv pentru care am FBX 7.4 versiunea binară a fost ales, este faptul că Blender - în general, un pic animal ciudat ca un export în ASCII capabil, și importați un fișier bine exportat în această versiune a FBX - nu. Chukchi nu este un cititor, Chukchi este un scriitor! 🙂
P.S. programe și pluginuri pentru conversia fișierelor FBX:
P.P.S. Specificația formatului FBX