中國傳媒大學(xué)南廣學(xué)院 周 靈 周曉梅 郝 婧
一種基于Unity 3D的場景交互漫游
中國傳媒大學(xué)南廣學(xué)院周靈周曉梅郝婧
本論文闡述了基于Unity3D為虛擬漫游系統(tǒng)開發(fā)平臺,以3D Max軟件來實現(xiàn)模型制作和材質(zhì)賦予,討論并實現(xiàn)了虛擬現(xiàn)實在室內(nèi)虛擬漫游交互系統(tǒng)中的關(guān)鍵性應(yīng)用技術(shù)。在Unity3D中實現(xiàn)了鍵盤操控人物漫游、鼠標(biāo)鍵移動視角、替換材質(zhì)及顯示對話框的相關(guān)技術(shù)。在現(xiàn)實家裝的基礎(chǔ)上,通過模擬仿真構(gòu)建具有沉浸感和交互性的虛擬環(huán)境。虛擬漫游系統(tǒng)不僅能為裝修設(shè)計行業(yè)提供全新的一種規(guī)劃方式,也提供了全新的展現(xiàn)與交互感受。
Unity3D;虛擬建模;場景漫游
虛擬漫游系統(tǒng)是虛擬現(xiàn)實技術(shù)(VR)較為重要的一部分。依據(jù)研究結(jié)果,Unity3D確實是目前虛擬現(xiàn)實系統(tǒng)的最專業(yè)的引擎,用它來開發(fā)的虛擬場景,有著更佳的用戶反饋。
本研究在虛擬場景漫游中實現(xiàn)了鍵盤操控人物漫游、鼠標(biāo)鍵移動視角、替換材質(zhì)及顯示對話框的相關(guān)技術(shù)。在現(xiàn)實家裝的基礎(chǔ)上,通過模擬仿真構(gòu)建具有沉浸感和交互性的虛擬環(huán)境。虛擬漫游系統(tǒng)不僅能為裝修設(shè)計行業(yè)提供全新的一種規(guī)劃方式,也提供了全新的展現(xiàn)與交互感受。
虛擬漫游交互系統(tǒng)根據(jù)應(yīng)用層面,可以分為:僅供參觀者瀏覽的簡單虛擬家裝環(huán)境和以第一人稱為視角,加入一系列碰撞功能,以虛擬現(xiàn)實技術(shù)為基礎(chǔ)建立的虛擬現(xiàn)實漫游系統(tǒng)。在開發(fā)虛擬漫游交互系統(tǒng)的過程中,首先對系統(tǒng)進行需求分析,設(shè)計各種模型可能的交互行為;然后采集建模需要的有關(guān)數(shù)字化信息,利用3D Max制作3D仿真模型,尋找合適的平臺來實現(xiàn)漫游。通過實驗幾款軟件的交互功能做了比較,最終確定使用Unity3D來實現(xiàn)交互式的虛擬漫游系統(tǒng),模擬人物在建筑內(nèi)部行走、參觀建筑內(nèi)家具行為以及為模型更換材質(zhì)等。虛擬漫游交互系統(tǒng)開發(fā)主要分為以下幾個步驟:基礎(chǔ)數(shù)據(jù)的采集、資料的收集與整理、三維模型的建立、三維模型的優(yōu)化、材質(zhì)與貼圖設(shè)計、導(dǎo)入到 Unity3D、結(jié)合Javascript語言進行場景美化及交互式虛擬漫游系統(tǒng)的實現(xiàn)。整體設(shè)計使虛擬場景的全貌與局部、大場景與小細(xì)節(jié)相結(jié)合。本論文的研究重點是虛擬漫游功能在Unity3D 中的設(shè)計與實現(xiàn)。系統(tǒng)總體設(shè)計流程圖如圖1所示。
圖1 系統(tǒng)設(shè)計流程圖
三維場景的設(shè)計與實現(xiàn)主要從三維場景的空間表示、三維物體的模型表示、三維場景的視覺表示、三維模型的輸出和燈光布置五個部分進行分析,通過這幾個部分把需要做的內(nèi)容展現(xiàn)出來。
3.1三維場景的空間表示
虛擬漫游交互系統(tǒng),最初的空間表示開發(fā)分為三個階段:精確建模范圍、整體框架布置和墻體模型構(gòu)建。首先,精確建模范圍主要用到的方法是測量和換算。為了更真實的表現(xiàn)真實世界,精細(xì)建模所表現(xiàn)的細(xì)節(jié)越多越好,綜合程度越低越好,但這會帶來龐大的數(shù)據(jù)量。同時,表現(xiàn)建筑的細(xì)節(jié)的另一有力手段是精細(xì)貼圖,所以模型的精細(xì)程度直接影響整體建筑的真實感。除了建筑模型以外,結(jié)構(gòu)≥0.5m的附屬模型也值得注意,例如窗架、電視墻、圍墻、踢腳線、屋頂結(jié)構(gòu)等。另外,需精細(xì)建模的建筑模型的外形和紋理必須與實際建筑保持一致。
精確模型后,開始布置家裝的整體框架。由于整體框架不算復(fù)雜,這里選擇直接在3D Max三維建模軟件中進行1:1繪制,里面的環(huán)境基本還原實際中的家庭裝修環(huán)境,首先在建立新文件,選擇文件新建命令,打開新建場景對話框,指定要保留的對象的類型。
建模的第三階段是建造分體模型。首先為墻體放置窗戶和門框。首先根據(jù)實際尺寸拉出一個長方形,再選擇基本幾何體的下拉菜單,選擇復(fù)合對象,單擊布爾拾取操作對象B,再單擊長方形,墻體上就扣出了一個符合目標(biāo)要求的窗戶洞??鄢皯舳春?,在幾何體菜單中選擇窗選項,此時有遮蓬式窗、平開窗、固定窗等六種窗戶樣式可以選擇。依據(jù)整體大批需要,這里選擇固定窗。在前視圖中拉出固定窗,修改參數(shù),拖動模型到墻體的窗洞上即可。門扇的制作方法相同??臻g表示圖見圖2。
圖2 空間表示圖
圖3 人物模型動畫
3.2三維物體的模型表示
對于房間內(nèi)部模型的設(shè)計,根據(jù)工藝不同主要是分為四部分,家具類,裝飾類,布藝類和電器類。家具類的搭建基本為大面積的立方體的搭建和細(xì)節(jié)的刻畫;裝飾類的構(gòu)造主要依靠復(fù)雜的幾何圖形及修改器的大量應(yīng)用;布藝類的制造主要依靠可編輯多邊形中點和面的細(xì)致調(diào)整,使布藝品表面有凹凸不平感,其目的是方便貼圖更生動的依附于模型上;電器類的構(gòu)造最為復(fù)雜,一般為五到八個復(fù)雜的小模型實現(xiàn),目的是為了增加模型的真實感。但依據(jù)工藝的分類也不是絕對分類,例如床的模型制作,床頭和床架運用到的是家具類的搭建方法,而床上用品(被罩、枕頭、抱枕)則運用到的是布藝類的建造方法。
3.3三維場景的視覺表示
世界上所有的事物都利用它表面的顏色、光線強度、紋理、折射率和反射率來表現(xiàn)各自的特性。所以三維場景的視覺表示就主要體現(xiàn)在模型賦予的材質(zhì)上,材質(zhì)更貼近實際,貼圖后模型才會更加逼真。利用3Ds Max材質(zhì)球中明暗器基本參數(shù)中的各向異性(phong,strauss,blinn,oren-nayar-blinn)對高光、顏色、反射率、折射率等參數(shù)進行設(shè)置,即可得到質(zhì)感豐富的材質(zhì)。各向異性其實就是人們通常所理解的反光,也叫陰影類型。
在本設(shè)計中,模型的材質(zhì)主要分為瓷器材質(zhì),金屬材質(zhì),玻璃材質(zhì)和木紋材質(zhì)四個部分。瓷器材質(zhì)主要運用于碗碟、洗臉盆、馬桶和裝飾品中;金屬材質(zhì)主要運用于器皿、家具邊角和電器中;玻璃材質(zhì)主要運用于鏡面、茶幾、相框和酒具等透明材質(zhì)的模型中;木紋材質(zhì)主要運用于地板、天花板、床頭柜等木質(zhì)結(jié)構(gòu)的模型中。
3.4三維場景的燈光布置
光有三個基本特性:光強、方向和顏色。光強是指強度與到光源距離的運算關(guān)系按照平方反比定律。即假如點b距離光源的距離為2x,點a距離光源的距離為x,那么點b所接收到的強度就是點a的1/4;方向是指根據(jù)光源與物體的相對位置,光源位置可分為四類:(1)正面光:會產(chǎn)生一個沒有影子的影象,深度和形狀是靠光影的排列表現(xiàn)出來的,會產(chǎn)生平面的二維視覺感受,也稱為平光。(2)45度側(cè)面光:這種光形態(tài)中有豐富的影調(diào),由深度而產(chǎn)生立體的效果。(3)90度側(cè)面光:這種照明通常用于戲劇性的場景,有著明暗的強烈對比,影子修長而具有表現(xiàn)力,物體結(jié)構(gòu)十分明顯,被稱做“質(zhì)感照明”。(4)逆光:光線從被攝對象身后射出,正對攝像機,在明亮的場景下會呈現(xiàn)出被攝對象深色的剪影,這種高反差影象簡單又具有表現(xiàn)力;顏色:包括自然光照明顏色和人工光照明顏色。
本場景中的燈光布置為了更好地表現(xiàn)出場景模型的紋理效果,分別放置了主光和輔光。布置燈光的過程,為防止燈光效果疊加造成混亂,選擇逐步添加燈光,這樣既可以清楚地明白每一盞燈光對場景的作用,也能避免添加多余的燈光而導(dǎo)致不需要的效果和更多的渲染時間。
3.5三維模型的輸出
通過3D Max建立了場景與場景中的模型后,將要把模型導(dǎo)入Unity3D。Unity支持從大多數(shù)3D軟件中導(dǎo)出的模型文件,可讀取的文件類型有.FBX/.dae/.dxf等格式文件;同時還支持.mov/.avi/.asf/. mpg/.mpeg等視頻格式,將以上格式的文件添加到unity工程時,這些文件都將自動導(dǎo)入并轉(zhuǎn)化格式為oggtheora;若導(dǎo)入的文件為.aiff/. wav/.mp3等格式的音頻文件,將在Unity中轉(zhuǎn)化為oggvorbis。本作品中全部為模型文件。先打開渲染場景對話框,設(shè)置文件的輸出尺寸,然后在渲染輸出中選擇文件的保存路徑,為了防止Unity中讀取錯誤,這里要注意路徑中所有文件夾必為英文。選擇輸出格式,設(shè)置為.FBX,然后單擊渲染,即可輸出模型。
場景交互系統(tǒng)的實現(xiàn)體現(xiàn)在人機交互上,而人機交互的實現(xiàn)主要依靠JavaScript語言在Unity3D中實現(xiàn)。主要分為角色動作功能、漫游視角功能、模型碰撞功能、更換貼圖功能四個部分。
4.1角色動作功能的實現(xiàn)
虛擬場景漫游交互系統(tǒng)的漫游功能主要依靠人物模型在場景中行走實現(xiàn),首先導(dǎo)入人物模型.FBX文件,模型自帶擺動動畫,分為行走和休息兩部分。選中對象“Girl01”找到Inspector面板,勾選Import Animation選項,在Clips面板下截取想要表現(xiàn)的模型動畫的片段,這里分別截取了行走動作的動畫和行走停止動作的動畫。接下來需要實現(xiàn)人機互動功能,可以通過鼠標(biāo)或鍵盤控制任務(wù)。在Assets文件下找到code文件夾,新建名為people.js文件為人物模型編寫程序。聲明變量和對象,控制動畫速度,同步渲染時間,在場景中找到名為“Girl01”的對象。
保存人物動畫程序,將此程序文件拖拽到人物模型上,即將這段動畫程序賦給人物模型。試運行工程,按鍵盤WASD可控制人物在場景中進行相對位移,停止操控時人物呈現(xiàn)休息狀態(tài)。人物模型動畫見圖3。
4.2漫游視角功能的實現(xiàn)
漫游視角功能核心內(nèi)容在于攝像機的程序編寫。其功能體現(xiàn)在按 W、A、S、D 鍵,人物向前、左、右、后移動時攝像機跟隨視角變化,看到不同的場景。在此場景中件攝像機置于人物模型頭部,選用Frustum Culling(平接頭體剪裁),可以使超過人物頭頂部分的物體不顯示。攝像機視野角度為45度,選擇透視投影。跟隨距離為5,高度1.2,另外要為物體添加剛體屬性,賦予物體質(zhì)量、阻力和角阻力,再添加重力防止人物發(fā)生碰撞后發(fā)生浮動。
4.3模型碰撞功能的實現(xiàn)
模型之間或模型與墻壁之間使用Box Collider進行碰撞檢測。此設(shè)計中為每個模型、墻體、門框都使用了Box Collider技術(shù)。門框和餐廳處墻體由于是結(jié)構(gòu)復(fù)雜的整體,所以使用基于網(wǎng)格的碰撞檢測,因為若對門框進行Box Collider碰撞檢測,人無法通過。
在Unity3D中集成碰撞檢測模塊,當(dāng)角色靠近被碰撞物體時,系統(tǒng)根據(jù)碰撞檢測算法檢測該物體的高度,如果被碰撞物體的高度低于預(yù)設(shè)高度則人物模型可以通過,反之,模型將會被擋住,如圖4所示碰撞檢測原理圖。
本系統(tǒng)的測試主要是調(diào)試設(shè)計的代碼和功能,對作品進行分模塊的調(diào)試運行,檢驗是否有錯誤發(fā)生;檢測無誤后,方可輸出為.exe文件,以方便用戶瀏覽,并有效避免設(shè)計被二次修改,經(jīng)檢測,本系統(tǒng)能滿足家裝虛擬仿真的需求。未來可以在系統(tǒng)適時更新、虛擬家裝系統(tǒng)的細(xì)節(jié)展示設(shè)計和體感漫游技術(shù)方面做更深入研究。
圖4 碰撞檢測原理圖
[1]卞峰,江漫清,桑永英,等.虛擬現(xiàn)實及其應(yīng)用進展[J].計算機仿真,2007(6):1-4.
[2]江河.虛擬現(xiàn)實結(jié)合交互式多媒體學(xué)習(xí)設(shè)計研究[J].攀枝花學(xué)院報,2010,27(6):21-25.
[3]許微.虛擬現(xiàn)實技術(shù)的國內(nèi)外研究現(xiàn)狀與發(fā)展[J].現(xiàn)代商貿(mào)工業(yè),2009(2):279-280.
[4]林深華,范志尚,蔣建兵等.基于Android平臺Unity3D游戲設(shè)計與實現(xiàn)[J].企業(yè)科技與發(fā)展,2013(10):40.
[5]倪樂波,戚鵬,遇麗娜,等.Unity3d虛擬展示技術(shù)的研究與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2010(12):54-55.
周靈(1984—),江蘇常州人,博士研究生,講師,主要研究方向:數(shù)字媒體技術(shù)、教育技術(shù)。
江蘇高校哲學(xué)社會科學(xué)研究項目“嬗變與重構(gòu):媒介融合時代大學(xué)生媒介素養(yǎng)培養(yǎng)模式研究”(2015SJD324); 2016年中國傳媒大學(xué)南廣學(xué)院校級科研培育項目“翻轉(zhuǎn)課堂理念下的教學(xué)模式改革實踐研究”(2016KYPY052);江蘇省高校自然科學(xué)研究項目“云存儲在校園媒體資產(chǎn)管理系統(tǒng)中的關(guān)鍵技術(shù)研究”(14KJD520011)。