摘 要:當下功能強大的三維建模軟件如3ds Max、Maya等,能制作精美的三維模型,而后導入三維模型到Unity3D開發(fā)引擎中構建各種形態(tài)的、美觀的三維游戲或虛擬場景,但三維模型往往在開發(fā)引擎中會出現(xiàn)多種問題,如無法添加貼圖、找不到導入模型、大小不符合規(guī)范、渲染時無陰影等。文章著重研究三維建模軟件導出FBX格式三維模型和導入Unity3D開發(fā)引擎過程中出現(xiàn)的問題,以及這些問題的解決方法,方便后期游戲開發(fā)或虛擬現(xiàn)實中應用三維模型,增強Unity3D項目的吸引力。
關鍵詞:Unity3D;三維模型;導出問題與解決
中圖分類號:TP391 文獻標識碼:A 文章編號:2096-4706(2024)20-0023-04
A Solution to Testing of 3D Model Export Problems and Construction of Model Scenes Based on Unity3D
LIN Sumei, SHI Yuemei
(School of Artificial Intelligence and Big Data, Chengdu College of Arts and Sciences, Chengdu 610401, China)
Abstract: At present, good 3D modeling software such as 3ds Max, Maya and so on, could produce beautiful 3D models, and import the 3D model into the Unity3D development engine to build various forms and beautiful 3D games or virtual scenes. However, the 3D models often present a variety of problems in development engines, such as unable to add a map, can not find the import model, the size does not meet the specification, rendering without shadow, and so on. This paper focuses on the problems arising in the process of exporting the 3D model with FBX format by 3D modeling software and importing the Unity3D development engine, and the solutions to the problems. It is convenient to apply 3D models in later game development or Virtual Reality and enhance the attractiveness of Unity3D projects.
Keywords: Unity3D; 3D model; problem export and solution
0 引 言
當下市場商用中使用較多的建模軟件是3ds Max、Maya或C4D、LightWare等,通過它們易懂的軟件界面、強大的功能,可制作出各式各樣模型。盡管如此,也會有導出問題。此文著重研究從三維軟件導出的.FB三維模型,在Unity3D游戲開發(fā)引擎中檢驗三維模型導出是否有問題,并處理規(guī)范化模型,構建虛擬現(xiàn)實場景,方便后期游戲開發(fā)或制作虛擬現(xiàn)實項目[1-3]。
1 Unity3D開發(fā)引擎平臺
本案例選用當下比較流行的游戲開發(fā)工具是Unity3D游戲開發(fā)引擎,是由Unity Technologies公司開發(fā)的一款集建筑可視化、三維游戲等多源的、可交互的軟件開發(fā)引擎。Unity意為“團結”,核心是告訴開發(fā)者,游戲開發(fā)項目是需要團隊相互協(xié)作完成。故此案例選用游戲項目團隊中美工組前期完成的三維模型,再由開發(fā)組接受三維模型,繼續(xù)完成游戲項目。雙擊桌面unity3D軟件圖標,登錄用戶名后,可打開Unity3D游戲開發(fā)引擎。Unity擁有強大的3D場景界面視窗,在一些簡易的游戲編創(chuàng)過程中,開發(fā)者甚至可以通過其進行可視化的游戲設計與編輯。Unity由菜單欄、工具欄以及五大視圖所構成,界面構成親和科學,可供游戲開發(fā)者在較短的時間內掌握相應的基礎操作方法[4]。
Unity的基本界面布局共包括菜單欄、工具欄及五個主要的視圖操作窗口。五個主要的視圖操作窗口分別為Hierarchy(層級視圖)、Project(項目視圖)、Inspector(審查器視圖)、Scene(場景視圖)與Game(游戲視圖)[5-6]。
俗話說“工欲善其事,必先利其器”。Unity3D游戲開發(fā)引擎是開發(fā)VR游戲最重要的工具之一。如果想要制作一套時裝,同時出現(xiàn)剪刀與扳手兩種工具,通常會毫不猶豫地選擇剪刀,這就是需要的工具,如果選擇使用扳手,那么它將毫無幫助。正如想要制作一款有魅力的游戲,想要的工具就可以是Unity3D開發(fā)引擎。Unity3D開發(fā)引擎中自帶有Unity資源商店,英文全稱為Unity Assets Store,資源商店中為用戶提供了豐富的下載資源,如人物模型、動畫、粒子特效、音樂特效及功能腳本等,也提供了形態(tài)各異的三維模型、動畫。開發(fā)者點擊Unity3D開發(fā)引擎界面“窗口”菜單,選擇“資源商店”,在工作區(qū)可見資源商店,再單擊“Seach Online”可在瀏覽器中打開資源商店。如在搜索框中搜索“Hamster 3D”,通過關鍵詞Hamster和3D可搜索三維地鼠模型,資源商店提供相應的資源,開發(fā)者可根據(jù)當前需求進行下載與導入相應資源。但Unity資源商店雖資源豐富,缺少靈活性,為適應生產實際,開發(fā)者還是需要獨立地創(chuàng)建模型,尤其是中高級模型[7-10]。
2 開發(fā)引擎中三維模型
在Unity中復雜世界X是由大量簡單物體組成,需要從最基礎的物體開始添加。在Unity場景中可以創(chuàng)建3D幾何物體對象,如球體、立方體、圓柱體、水平面、膠囊體等,可以使用基本幾何體去構建物品或場景模型等。在Unity3D開發(fā)引擎界面層級視圖,點擊創(chuàng)建按鈕,選擇3D對象,選擇對應三維模型,可創(chuàng)建不同的基本幾何體。如可創(chuàng)建兩個球體、一個圓柱體構建啞鈴。
3 FBX格式的三維模型
三維模型選用可愛造型的三維地鼠模型和地鼠場景模型,前期已經在3ds Max軟件中制作完成,并導出為.FBX模型,如圖1所示。
Unity游戲引擎支持的模型文件不一定全部是FBX格式的3D模型。答案是Unity這款具有超強通用性的游戲引擎,除了支持.fbx格式文件外,還能支持大部分三維動畫制作的文件。目前,Unity支持多種主流的3D模型文件格式導入:有通用的模型文件,如.fbx、.obj格式和原始模型文件,如.max、.mb、.blend等。其中第二種方式需要在電腦安裝模型軟件。通常選用fbx格式的模型文件,原因是它具有節(jié)省資源,文件小的特點,且它靈活性高,可減少項目工程的復雜程度。
4 導入Unity3D引擎
資源導入Unity3D引擎的方法有多種,這里介紹兩種:一種是以Unity資源包導入,一種是以文件夾/文件的形式直接導入。
第一種以Unity資源包導入Unity3D開發(fā)引擎。首先準備好資源包(文件擴展名為.unitypackage),點擊Unity3D開發(fā)引擎界面的資源菜單,選擇“導入”,在彈出對話框中找到對應的資源包,即導入。獲取資源包的方法,可以在Unity資源商店里面下載和導入;也可以準備好Unity工程項目,點擊Assets文件,點擊“資源”菜單,點擊“導出”,選擇存放資源包的位置,點擊確認,可生成當前Unity3D工程項目的資源包(文件擴展名為unitypackage)。
第二種,右擊Unity3D開發(fā)引擎界面項目視圖下Assets文件夾,選擇新建文件夾Moles,用于專門存儲三維地鼠模型,將FBX三維模型文件直接拖入該文件夾內,即導入三維模型,并在Unity3D引擎中可見三維模型縮略圖,如圖2所示。
5 規(guī)范化配置模型
導入模型后,通常需要對三維模型進行規(guī)范化配置操作。規(guī)范化操作至少包括對三維模型設置縮放系數(shù)、網(wǎng)格壓縮、生成光照貼圖等。縮放系數(shù),是建立在以立方體(長寬高為1米)為對比三維模型,對照生活中相似事物,設定縮放系數(shù),使三維地鼠模型符合現(xiàn)實生活,方便后期構建虛擬世界中場景模型。設置三維地鼠模型的Model選項下,縮放系數(shù)為10。
規(guī)范配置操作1:設置模型資源的Model面板屬性中Scale Factor屬性、Mesh Compression屬性、Generate LightMap屬性。
Scale Factor屬性,中文名稱為縮放系數(shù):用于矯正不同軟件、不同單位創(chuàng)建的模型資源的大小。即修改Scale Factor屬性參數(shù)值,使3D模型大小貼近生活,提升用戶的VR體驗指數(shù)。不能直接到Unity的SCence視圖中直接修改模型的大小,否則可能影響模型的整體參數(shù)如重力、大小等方面。
Unity游戲引擎中物理系統(tǒng)默認游戲世界中一個單位等于1米。也就是說如果在Unity中新建一個Cube(立方體),立方體的長寬高都是1米。Unity默認的系統(tǒng)單位為“米”,為操作方便,在三維軟件中應盡量也使用“米”作為單位。各種三維軟件系統(tǒng)在設置成米制情況下與Unity系統(tǒng)單位的比例關系如表1所示。
三維軟件中制作3D模型單位不是米,卻也能成功地導入Unity中,原因是模型能否成功地導入Unity與模型文件格式有關,與三維軟件使用的單位無關,但三維軟件中使用的單位與Unity中不一致時,會導致導入Unity后的模型大小與現(xiàn)實生活中的大小有出入,或者看不見模型。那出現(xiàn)這種狀況時,可以在Unity中以Cube立方體為長寬1米的參考物體大小,結合生活常識,去設定整個場景大小。具體配置場景大小步驟如下:
1)拖動Ground模型到Scence視圖中,創(chuàng)建立方體Cube。
2)比較立方體Cube與Gound模型的大小,以Cube為長寬為1米的大小,結合
生活常識,估算Gound模型的大小為30×30平方米。
3)點擊在Unity中Project視圖中Moles文件夾內的Gound模型,
在審查器Inspector屬性查看器中設置Scale Factor屬性的參數(shù)值為40。此時場景模型大小符合現(xiàn)實。
Model面板中第二屬性是Mesh Compression,中文名稱是網(wǎng)格壓縮,用于壓縮模型,減少項目文件大小。該設置有四個選項,優(yōu)先選擇該項。
Model面板中第三屬性是Generate LightMap,中文名稱為生成光照貼圖UV通道,勾選后將產生光照貼圖所用的第二UV通道,適用于光照烘焙中靜態(tài)物體產生光照貼圖。
以上屬性參數(shù)值設置完成后,需要點擊APPLY應用,剛剛設置的參數(shù)值才會有效,見圖4。至少是以上三項都做踏實,才能達到對三維地鼠模型規(guī)范化處理。
6 檢查三維模型問題
導入模型后,需要對模型添加材質,本次案例中有四個三維地鼠模型,分別對其添加材質。新建四種材質,并設置其Main Maps組件下Albedo參數(shù)添加貼圖,材質圖如圖3所示。將這四種材質分別給對應的三維地鼠模型,效果圖如圖4所示。從圖4可知,黃色地鼠模型貼不上材質。
檢查在場景中的地鼠模型對象,發(fā)現(xiàn)地鼠模型被重復導出,或有空對象(如圖5所示),導致材質不知道給哪個地鼠模型,故黃色地鼠模型貼不上。
導入地鼠場景模型后,場景模型也是不符合現(xiàn)實實際生活,需要重塑場景。
7 解決方案
7.1 處理三維地鼠模型
針對以上從建模軟件中三維模型重復導出、導出多個空對象等問題,可對場景中地鼠模型對象進行處理:右擊每一個地鼠模型對象,選擇對其完全解壓縮,為其所有子對象“解綁”,即可單獨刪除(Delete)空對象,或移除重復導出對象。效果圖如圖6所示。
在打地鼠游戲中,出現(xiàn)一些游戲對象物體是被反復使用的,如樹木、狗、花以及不同造型的地鼠對象物體,那么這些反復被使用的物體,在Unity游戲引擎中通常被創(chuàng)建為預制體,也就是Prefabs。在打地鼠游戲中,以創(chuàng)建和應用地鼠預制體為例對如何創(chuàng)建預制體以及如何使用預制體進行講解。
首先按照之前導入3D模型資源的方法,導入地鼠模型;分離地鼠模型材質,以防止模型材質貼圖丟失;將地鼠模型拖入到Scene視圖中,調整好大小、位置,此時可發(fā)現(xiàn)在Hierarchy視圖下多了一個名為Hamster的游戲對象,這就是剛剛拖入Scene視圖中的地鼠模型;在Project視圖中Assets資源文件下,創(chuàng)建文件夾,名為Prefabs,將Hierarchy視圖下Hamster的游戲對象拖入到該文件夾內,此時可發(fā)現(xiàn)Prefabs文件夾內多了一個預制體。將刪除掉在Scene視圖中的地鼠模型,可發(fā)現(xiàn)在Prefabs文件夾內預制體還在。將地鼠模型預制體拖動至Scene視圖中,可見復制的地鼠對象的字體顏色變成藍色,說明這是一個預制體實例,按Ctrl+D復制地鼠模型。類似地創(chuàng)建其他5種不同造型的地鼠模型預制體,在場景中共建立12個地鼠模型預制體。
給地鼠模型添加網(wǎng)格碰撞體,方便后期使用,如地鼠模型與其他物體進行碰撞,產生碰撞效果或地鼠落在地面上不會穿越等。
7.2 處理地鼠場景模型
導入及配置3D模型后,需要對模型進行重新整合,是它符合現(xiàn)實規(guī)律,重新塑造生活功能區(qū),讓用戶在打地鼠VR游戲中能有身臨其境的感受。
重塑生活功能區(qū)的準備工作有:分離場景材質球,準備工作:分離材質,方便對場景材質的屬性進行修改。點擊地鼠場景模型,在Inspector屬性查看器中點擊Materials材質屬性面板,在Location屬性中,選擇Use External Materials(Legacy),點擊Apply。此時分離整個場景中模型的材質成功,可以在Moles文件夾下自動生成Materials文件夾,點擊可查看場景中所有材質球。準備工作做好了,可以重塑場景中生活區(qū),貼近生活,增強用戶的VR體驗效果。重塑技巧通常需要使用如下幾個技巧:
1)樹木是集群生長。
2)生活功能區(qū)挨著住宅,飼養(yǎng)區(qū)遠離住宅區(qū)。
3)以Cube的長寬為1米,調整地鼠和地鼠洞大小至合適。
4)適當?shù)脑黾邮^,豐富充實場景。
根據(jù)生活經驗與重塑生活區(qū)的技巧,將整個游戲場景分為以下幾部分,分別是種植區(qū)、飼養(yǎng)區(qū)、生活功能區(qū)、樹木集群、主游戲區(qū),如圖7所示。
8 結 論
本文以三維地鼠模型為例,介紹Unity3D開發(fā)引擎平臺、導入三維模型、配置2d71f5805322000dc7328c0fc3f20662bc0eca9b16c87e20aa59c3c400f896c0三維模型、檢查三維模型問題、處理三維模型等環(huán)節(jié)關鍵技術和技巧,實現(xiàn)了從導入三維模型到獲取規(guī)范化三維模型的流程過程,便于后期游戲開發(fā)或構建虛擬現(xiàn)實世界,也更好地優(yōu)化系統(tǒng)運行流暢度和執(zhí)行效率。
參考文獻:
[1] 段永良,劉敏.一款學習型游戲設計與制作 [J].工業(yè)控制計算機,2024,37(1):111-114.
[2] 張鈺,李佳靜,朱向陽,等.ASSISTments平臺:一款優(yōu)秀的智能導學系統(tǒng) [J].現(xiàn)代教育技術,2018,28(5):102-108.
[3] 吳亞峰,于復興,索依娜.Unity 3D游戲開發(fā)標準教程 [M].北京:人民郵電出版社,2016:1-3.
[4] 許怡.虛擬現(xiàn)實技術發(fā)展下的數(shù)字媒體藝術設計研究 [J].鞋類工藝與設計,2023,3(19):48-50.
[5] 梁靜,王敏,趙甜甜.基于虛擬現(xiàn)實技術的三維漫游系統(tǒng)設計與開發(fā)研究 [J].鞋類工藝與設計,2023,3(23):187-189.
[6] 許欣然,顧鳳梅.一種基于3ds Max和Unity3D的虛擬校園系統(tǒng) [J].中國科技信息,2023(14):74-76.
[7] 曲蘊慧,白新國.基于3DMax及Unity3D的博物虛擬展示系統(tǒng)設計與實現(xiàn) [J].微型電腦應用,2022,38(4):1-3.
[8] 吳保文,楊柏軍.基于3ds Max與Unity 3D的虛擬展廳圖片更新的實現(xiàn) [J].文山學院學報,2016,29(6):56-58.
[9] 宣雨松.Unity3D游戲開發(fā) [M].北京:人民郵電出版社,2012.
[10] 王宇琛,黃蓋先,艾鴻.基于虛擬現(xiàn)實技術的3D智慧校園設計與實現(xiàn) [J].智能計算機與應用,2015,5(2):89-92.
作者簡介:林蘇美(1987—),女,漢族,四川成都人,講師,碩士研究生,研究方向:數(shù)字媒體技術。