張玉婷
(金肯職業技術學院 人工智能與信息工程學院,江蘇 南京 210000)
隨著三維技術和虛擬現實技術的發展,現實場景的數字化可以更好、更便捷地展示特定的區域、場館、風景。其科技性、藝術性和身臨其境的觀感,可以給人們提供跨越時間和空間的沉浸式體驗。近年來,國內外各大高校一直努力進行硬件、軟件的數字化、智能化、信息化的建設。在以往傳統的校園場景三維建筑動畫的基礎上,融入新的虛擬現實技術,增加體驗效果。本文以金肯職業技術學院為例,介紹基于虛擬現實技術的三維校園漫游系統的設計與實現。
首先確定了應用虛擬現實技術實現三維校園漫游的方案。使用CAD、3ds max制作三維模型,在三維軟件中對建筑物、地形、實體對象進行模型的創建和優化、展開UV,再導出FBX文件到Unreal Engine 4(以下簡稱“UE4”)中進行整合和搭建場景。在其中完成植被、燈光、材質、碰撞等設置。通過藍圖可視化腳本或者C++語言,添加有趣、恰當的交互設計,最后與VR硬件設備進行打包安裝、測試發布,完成虛擬校園的三維漫游系統的設計與制作[1]。
真實場景的數字化還原要有準確的校園各場景建筑物分布信息。金肯學院有南、東、西3個校區,已有的CAD圖紙不完整。通過實地勘測與拍照結合的方式,采集、整理了地形圖和建筑設計圖等數據,繪制了校園內的各教學樓、體育館、圖書館、宿舍區、食堂、辦公樓、實訓樓等區域分布圖,劃分出主干道和建筑小品的區域[2]。
在前期繪制的CAD圖紙的基礎上,通過照片建模的方式,在三維軟件3Ds Max中,1∶1還原各主要建筑物的外觀模型。由于整個場景數字化數據較大,因此在創建過程中,務必要做好模型面數的控制,及時優化、處理錯漏面,最后導出 為FBX格式的文件。
打開UE4,在新建項目中選擇藍圖,選擇第一人稱,創建空白項目。點擊導入命令按鈕,將FBX文件導入引擎中。
第一次導入的時候,通常需要選擇設置選項卡。可以根據系統要求設置“自動創建碰撞體”“創建燈光UV視圖”“合并模型”等項目內容。此外,還可以選擇“新建材質”或者“導入紋理”來決定導入模型時,是否創建材質球和附帶相關的材質素材。
將地形、建筑物等模型依次導入后,UE4會對導入有問題的部分進行提醒,通常要一一查看模型、材質球、紋理貼圖等效果是否需要修改。必要的時候,要返回到三維模型軟件中進行調整。解決問題后,對各個文件進行分類整理,方便以后調取使用。
由于整個校園的建筑外立面設計獨特、風格統一,系統采用了大量拍攝的實景照片,使用Photoshop軟件進行后期處理,Substance Painter軟件繪制紋理,作為建筑的貼圖使用。此外,使用UE4虛幻引擎自帶的材質系統為模型添加外觀效果[3]。
打開UE4虛幻引擎,在內容瀏覽器空白處單擊鼠標右鍵,選擇創建新材質。雙擊材質球,打開UE4的材質編輯器,在界面中空白位置按下數字鍵3,創建一個三維數組。點擊Constant色塊可以設置具體的RGB顏色。按住鼠標左鍵不松手,拖拽連接到基礎顏色的節點上,完成材質顏色的創建。同樣的原理,按住數字鍵1,創建一個一維數組,設置參數在0~1的任意數值,再拖拽到粗糙度或者高光度的節點上,就可以設置相對應的效果。之后返回場景中,將材質球附在模型上,就可以看到實際效果。漫游系統中,可以通過復制已有的材質球,在編輯器中修改其中的某些參數,來得到另一個新的材質。基礎材質如圖1所示。

圖1 基礎材質
在系統中,有些模型需要添加紋理貼圖。可以在材質編輯器界面中,按住U鍵的同時單擊鼠標左鍵,就會創建新的節點紋理坐標。在其中導入處理好的貼圖,將輸出端連接到UV引腳上。在左下角的界面中輸入數量,可以調整貼圖的比例以適應模型的大小。
本系統設置了第一人稱的視角,帶上VR眼鏡之后,仿佛置身于現實場景中。參觀者通過對手柄的控制,實現走、跑、跳躍、轉向、瞬移等運動效果,模擬真實場景中人的基本運動動作。
系統添加了對話系統。當人物走進特定的區域,或者點擊場景中的某個道具,畫面中會出現相關的校園介紹。為了增加參觀者的體驗感,這些內容以動態文字、動畫視頻結合的方式呈現,伴以適合的音樂,提升氛圍感和視覺效果。
系統設計了自動導航,默認情況下順著設計好的路線進行漫游。通過右上角的同步小地圖,體驗者可以一目了然地掌握所在位置。同時,考慮到校區區域范圍大,在制作系統時,設計了通過快捷鍵或者操作VR設備配套的手柄,可以跳轉到不同的校園區域,精準定位到各場景,實現空間的交互。
為了添加趣味性,系統特地增加了一些交互小游戲。比如在漫游到湖心亭的時候,體驗者通過手柄射線點擊UI界面上的按鈕,開啟材質貼圖的樣式和顏色的切換功能,欣賞由“一鍵換裝”帶來的春夏秋冬不同的風景。
高職院校各類實訓室、工作室的建設,也體現學院的成果和特色。系統特意增加了室內漫游的內容,因此系統需要實現360°室外場景自由旋轉查看的功能和用于室內漫游的角色,以及兩種角色相互切換控制權的設置。
在UE4中選擇藍圖類創建Pawn,創建一個能被操控的角色。在編輯界面中,添加組件里面新建彈簧臂組件。以這個點做一個牽制,以彈簧臂組件為父類,添加攝像機組件為子類,彈簧臂就能牽制攝像機進行360°的旋轉查看。接著點擊彈簧臂組件,在細節面板中勾選使用Pawn控制旋轉,彈簧臂會跟著鼠標進行旋轉。
接下來,通過藍圖輸入一些控制邏輯,來實現鼠標輸入的事件。在事件列表界面中,輸入Turn,調取“輸入軸Turn”;再輸入LookUp,調取“輸入軸LookUp”。將“輸入軸Turn”里面的Axis Value連接關聯的“添加控制器Yaw輸入”,其中Yaw設置的是Z軸。將Lookup連接關聯的“添加控制器Pitch輸入”,Pitch對應的是Y軸。設置完成之后,攝像機就可以跟隨鼠標旋轉。接著把藍圖類放置在場景中,調整位置、高度。可以通過調整攝像機的目標臂長度的數值,將視角調整得遠或者近一些。設置完成回到場景,在細節面板中,自動控制玩家選擇“玩家0”。保存文件進行編譯,查看設置效果。如果旋轉生硬,可以在藍圖類中選擇彈簧臂組件,啟動攝像機旋轉延遲。這樣旋轉角度時,就會更加絲滑自然。
接下來繼續創建第二個用于室內場景漫游的角色。在內容瀏覽器中單擊鼠標右鍵,選擇藍圖類,創建一個有碰撞的Actor角色,用來模仿人在場景中真實漫游。
先添加彈簧臂組件和攝像機。攝像機放在彈簧臂組件的子類里面,但彈簧臂長度要改成0,用來模擬人的頭部旋轉查看場景。在右側的編輯面板中,勾選“使用Pawn的控制旋轉”。在設置完Z軸Y軸坐標后,還需要設置角色前后左右的移動。在場景漫游角色的事件圖表界面中,添加“輸入軸Move Forward”和“輸入軸Move Right”,再調出“獲取控制旋轉”,在Return Value右鍵引出“分割結構體引腳”,使用Z軸Yaw創建旋轉體,Return Value中獲取向前向量,再獲取向右向量Add Movement,添加移動輸入。系統已經封裝好能夠讓角色移動的藍圖節點,只要傳入對應的參數即可。設置完成之后,當按下鍵盤W,就會返回數字+1,按下S就會返回數字-1,如果沒有輸入,就會返回數字0。有數值之后,角色就會移動。當按下W鍵,傳入的是+1,移動的方向就會參考向控制器正前方移動;當按下S鍵,傳入的是-1,向前的向量乘以-1,變成向后的向量,就會向后移動。同樣的原理,按下A鍵輸入的是-1,向左移動;按下D鍵輸入的是+1,向右移動。將設置好的Actor角色拖動到場景中編譯測試。如果角色移動速度或快或慢,可以在Character Movement組件中設置最大行走速度,改成適合的數值即可。
最后,設置兩個角色控制權的切換。為了能夠快速地實現功能,可以把這些藍圖寫在關卡藍圖里面。
打開關卡藍圖界面,先創建兩個自定義事件,一個是切換到場景漫游,另一個是切換到360度自由查看。接下來將兩個藍圖類拖拽到關卡藍圖界面。新建“獲取玩家控制器”節點,連接“使用混合設置視圖目標”,引腳連到“切換到場景漫游”,再將“場景漫游角色”連接到New View Target,Bland Time(混合時間)設置成2.0。設置的效果是經過2 s時間,將當前的畫面,混合到新的畫面。Bland Func(混合函數)選擇“VT混合交叉緩動”,就會有緩動效果。
再用同樣的方法,完成從另一個角色的跳轉設置,實現2個鏡頭之間的混合。之后,在事件圖表界面中輸入F鍵、空格鍵和鍵盤,直接跳轉到鍵盤事件,用FlipFlop制作一個流程控制。按下F走A,再按一下走B,再按一下再走A,往復循環的功能。實現由A引出切換到場景漫游,由B切換到360°全景漫游。
為了更好地展示和介紹學院信息,系統在場景中設置了幾處通過屏幕播放視頻的組件。
先提前制作好相關的mp4格式的視頻文件。在內容文件夾里面創建新文件夾存儲相關文件。在空白處單擊鼠標右鍵,在彈出的快捷菜單中選擇Media里面的Media Player。再次單擊鼠標右鍵,在彈出的快捷菜單中選擇創建藍圖類,選擇Actor角色,命名之后雙擊打開編輯界面。在左側的組件中選擇Cube,調整尺寸大小,做成類似顯示屏的模型,用來播放視頻使用,再根據需求設置材質。
在關卡藍圖中,調出Event BeginPlay事件。創建變量,選擇Media Player中的Object Reference對象引用。在默認值中選擇創建的Media Player。再將Media Player拖入編輯區,拖出引腳連接Open Source打開源。在下方選擇需要播放的視頻。再將創建的Actor拖入場景,并編譯保存。此時場景中可以播放視頻畫面,但缺少聲音。這是因為這種播放視頻的原理是將視頻作為材質附在模型上。因此需要再設置聲音。雙擊打開Actor編輯界面,在Cube組件中找出Media Sound組件。在編輯器的Media Player里面找到創建的播放器。再次編譯,視頻畫面和聲音都同步出現了。
本系統使用了三維軟件、虛幻引擎和VR設備,創建了校園的虛擬現實漫游系統,對現實場景數字化構建、虛擬交互體驗,進行了實踐操作。由于相關技術難度較大,更新換代較快,目前國內的研究還需要學習和補充一些國外的技術和思維。隨著技術的發展,還會有更多的虛擬數字化應用,適用于更多不同的領域,拓展時間和空間的范圍[4]。