楊軍杰 王小霞



摘要:化學實驗是一門操作性非常強的實驗科學,許多化學實驗存在一定的危險性、不可現實操作性、難以理解性。而虛擬現實實驗直接操作對象是三維模型,并結合文字、聲音的提示,不僅能使學生達到身臨其境的效果也能夠提高學生的學習興趣,而且具有可靠的安全性。因此,基于虛擬現實技術的化學實驗就顯得尤其重要。本研究基于虛擬現實技術,結合硬件設備HTC Vive和Unity3D三維引擎,進行化學教學資源的開發與實現,以期優化教學效果提高學生學習的積極性,同時也希望豐富化學實驗教學方式。
關鍵詞:虛擬現實技術;HTC Vive;Unity3D;化學教學資源
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2019)30-0219-03
1概述
自2016年虛擬現實元年以來,虛擬現實發展迅速,多用來三維空間、物體的展示以及醫療、工業、飛行等技能的訓練。通過文獻研究分析發現,國內學者關于虛擬現實應用于化學實驗教學中的研究較少、研究表述不夠詳盡,且多偏向于理論研究,可實踐性不強?;谠撗芯勘尘?,在本研究中詳細介紹了VR化學實驗教學資源的開發過程,實現了通過SteamVR Plugin插件以及VRTK插件實現實驗室制氧氣實驗。希望給相關的實驗教學研究者、使用者和VR資源開發者提供一定的參考。
2虛擬現實技術
VR(Virtual Reality,即虛擬現實,簡稱vR)以計算機技術和頭戴顯示器技術為核心融合傳感器、眼動儀、數據手套和大數據等多領域技術生成三維虛擬世界,并通過手柄或數據手套實現人機交互,實現能拓展人類的感知邊界效果。VR技術作為一種可以創建和體驗虛擬世界的計算機仿真技術,結合當前峰值傳輸速率10Gbps的5G技術,可以滿足VR應用對網絡寬帶和延時的需求,能夠真正實現沉浸性。VR平臺被認為是下一代計算平臺,而VR眼鏡也被認為是人類的最后一塊屏幕。本研究以“VR實驗室制氧氣實驗”為例以豐富化學教學資源。
3硬件設備及軟件
HTC Vivef浸入式頭戴顯示器)是由HTC與Valve軟件公司共同開發的一款浸入式虛擬現實設備,主要有頭顯本體、兩個手柄、兩個基站、轉接盒和各類線材組成。當連接所有設備,并在設置SteamVR時按照提示用手柄劃出虛擬空間,體驗者能夠自由探索虛擬空間中的任何地方。HTC Vive采用OLED液晶屏來作為頭盔顯示器屏幕,該屏幕雙眼合并的有效分辨率可高達2160*1200像素,一定程度上減少頭暈的感覺。HTC Vive采用Valve公司研發的Lighthouse定位技術,Valve在頭顯和控制器上安裝了很多光敏傳感器,高速運行的攝影機通過Light—house基站發出的紅外激光,在各個傳感器的位置定位,當體驗者移動或者旋轉時,根據位置差可以計算出頭顯的位置和運動軌跡。
Unity3D是由Unity Technologies開發的一個讓玩家輕松創建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺的綜合型游戲開發引擎。插件是制作優秀VR資源的基礎。SteamVR Plugin插件是開發虛擬現實的必備工具,其最重要的是該插件提供了一個虛擬環境中的攝像機[Camera-Rig]預制體。VRTK(Virtual RealiIv Toolkit)是使用Unity進行VR交互開發的利器,VRTK能實現VR開發中大部分交互效果。本研究使用Unity3D作為開發工具,并結合SteamVR Plu-gin插件和VRTK插件,實現VR實驗室制氧氣實驗。
4虛擬現實教學資源開發
本研究主要分為三部分內容,一是Uinty場景搭建;二是物體的交互,該部分是VR開發的重點也是關鍵之處,本研究主要運用SteamVR Plugin插件和VRTK插件提供接口與HTC Vive硬件連接,實現物體的交互;三是實驗室制氧氣實驗的實現。
4.1實驗場景建模實現
本研究用3D Studio Max創建模型,3ds Max以模型的快速編輯、提供多種修改器和貼圖方便的優點,得到很多建模用戶的青睞。本研究將.MAX文件導出為.FBX格式文件,再將.FBX導入到Unity中Project的Assets文件夾中,將其放到Hierarchy面板中,使其成為Gameobject物體,對模型的位置進行歸零處理,以便后期制作,并分別賦予其材質,本實驗模型如圖1所示。
4.2實驗交互實現
由于VR的多維特點注定了其交互要比平面圖形交互具有更豐富的形式,在VR資源的制作中,交互是重中之重。本研究實現的三個交互功能分別是:①實驗物體的抓取操作,這是VR制作的最基本的物體交互;②點燃酒精燈開始試驗,以酒精燈的點燃與熄滅為例,自定義腳本實現物體的深層次交互;③VR中的uI制作及交互,制作滾動提示輪播畫面。
4.2.1 VR場景搭建
在開發VR之前,環境的搭建是關鍵,本研究所用的軟件版本為:Unity:2017.3.0f3、VRTK:3.2.1、SteamVR:1.2.2,Unity引擎和插件版本最好對應,否則就會出現配置錯誤的情況。配置環境的具體步驟:①打開UniIv開發平臺,新建一個New UnityProject選擇3DTemplate,把在3ds Max中做好的模型.FBX文件導入到Unity的Assets中;然后將所需模型放至Hierarchy層級樹面板中;②刪除Main Camera,在Hierarchv層級樹中CreateEmpty新建Gameobject重命名為[VRTK_SDKManager],新建[VRTK_SDKSetup]、LeftController、RightController空物體,布局如圖2所示;③使[CameraRig]成為[VRTK_SDKSetup]的子物體;④分別為[VRTK_SDKManager]添加VRTK_SDKManager、[VRTK_SDKSetup]添加VRTK_SDKSetup、LeftController和Right-Controller添加VRTK_ControllerEvents腳本控件,VRTK_SDKSetup的配置如圖2所示。
打開SteamVR以及HTC Vive,在SteamVR軟件上會有頭顯本體、兩個手柄、兩個基站圖標,均顯示綠色,即可以使用。在Unity中點擊Play按鈕即可實現虛擬世界的漫游。
4.2.2實驗儀器的抓取及交互
(1)抓取3D物體的基本原理及實現
抓取3D物體的基本原理分為①獲取手柄的引用;②手柄與3D物體的碰撞檢測;③獲取按鈕事件;④抓?。菏igibodv相關屬性;⑤松開:重新獲取自身的rigibodv相關屬性。在VRTK配置面板中最重要的就是抓取機制(Grab Attach Mechan-ic)以及抓取的二級聯動(Secondary Grab Attach)的選擇。在抓取機制中本實驗選擇默認也是最典型的Child of Controller,將要抓取的物體作為控制手柄的子物體;另外一項FixedJoin在手柄和抓取物體之間建立Fixed Joint連接,當有物體擋住被抓取物體時,會產生碰撞,超過默認1500的力時就會斷開與手柄的連接。在二級聯動機制中,默認Swap Controller允許抓取的物體在兩個手柄之間交換;以下兩項分別為Control Direction和AxisScale允許物體在被另外一個手柄抓取時控制物體的旋轉方向和物體的縮放。本研究以抓取酒精燈為例,為酒精燈添加腳本選擇默認的VRTK配置面板即可,點擊Setup selected object(s),同時選中LeftController、RightController,添加腳本如圖3所示,使用手柄的Grib鍵實現物體的抓取。
(2)酒精燈火焰的點燃與熄滅
本研究用火柴來點燃酒精燈,一個手柄觸碰到火柴盒并按下Grib鍵時,在另一只手柄上出現一只火柴,按下Trigger鍵火柴點燃,碰觸到酒精燈時酒精燈點燃,開始試驗。其可以分為兩個步驟:①為火柴(Match)添加為可交互,配置如圖7所示大致相同,做成預制體備用;②火柴盒的Collider替換為VRTK實例里面的ArrowSpawnerBox;③配置Arrow Peffab即可。同時輯寫自定義C#腳本ChangeLight.cs如圖4,把此腳本掛載到Match上,并指定火焰粒子特效給Lightl,當產生Match時火柴點燃,酒精燈點燃,效果如圖5所示。
(3)VR中uI的制作及交互
在VR中uI的制作和交互是制作VR資源很重要的一環,其制作和一般Unity開發的uI制作大致相同,將Canvas的Ren-der Mode修改為世界坐標系(world Space),調整至合適位置,添加相應的交互腳本即可。在VR中uI的交互與一般Unity的uI主要兩方面不同,首先VR中的uI交互是基于手柄(射線),所以必須添加VRTK_UIPointer腳本,然后需要給Canvas畫布添加可交互腳本VRTK_UICanvas。添加這兩個基礎的腳本之后,在原有手柄上已有VRTK_Pointer以及渲染器的前提下,即可實現在VR中的uI交互。
在虛擬實驗中,通常會對某物體的功能進行提示以便于實驗者更好地理解和掌握該場景,而突兀的文字提示不能達到沉浸的效果。本實驗中當實驗者移動時提示標簽會跟隨實驗者的移動而轉動方向,像是標簽一直注視著實驗者,使實驗者更能沉浸其中。對于VR中的uI交互,在項目開始時,會有選擇場景,或者在實驗時提供提示功能的作用,點擊按鈕會輪播圖片或者場景。在本實驗中實現點擊前進、后退按鈕實現畫面輪播,在這里使用了DOTween插件,以達到有過渡的效果,實現效果如6圖所示。
4.3打包與發布
本實驗是基于Unity+HTC Vive的VR項目,所以發布在PC平臺上,借助HTC Vive實現運行。如果項目用到Shader,打包時需要注意要將Shader同時打包,具體操作步驟為Edit→Proj-ect Settings→Graphics,將用到的Shader拖至右側的Inspector面板的AlwaysIncluded Shaders選項中。然后就可以打包發布,其操作步驟為File→Build Settings→Add Open Scenes→Player Set-tings(設置參數:XR Setting→OpenVR)一Build,填入項目名稱并選擇路徑存儲生成.EXE文件。打包完成后,連接HTC Vive并打開SteamVR,雙擊.EXE文件,即可實現漫游與項目操作。
5結論
本研究開發了實驗室制氧氣的交互實驗,主要利用3DSMax進行建立模型,通過HTC Vive交互設備和Unity3D開發引擎實現了實驗物體的抓取、交互、uI制作,通過本研究的沉浸式交互,體驗者可以增加對化學實驗的興趣,提高實驗效率,避免一些不必要的危險,同時也給虛擬現實開發者一定的借鑒。