第四章 系統實現
4.1 建立虛擬實境環境
4.1.2 視覺畫面
為了讓虛擬組裝環境更接近於真實,本研究在虛擬物體和環境的外觀上,使 用許多擬真的材質貼圖,讓組裝操作的場景能更貼近真實。並在場景中加入方向 光源的照明和陰影生成,讓虛擬環境更擬真且具立體感。
3D 虛擬物體
組合零組件的全體中包含了元件與結件,元件是建構一個組合零組件的主要 部分,而結件的功能則是讓元件與元件彼此固定。而元件與元件的固定關係,可 分為幾何固定與結件固定,幾何固定是指元件與元件接觸後即因幾何上的設計而 固定在一起;結件固定則是元件與元件須以結件結合才能固定,如一般常見的螺 絲固定。
本研究中,結件與元件的設計,參考虎鉗與制動器的工程圖,以常見的工業 製圖軟體 SolidWorks2013 繪製,其後將檔案存成 STL 格式(將 3D 物體以三角 形 mesh 儲存),再於 3DS Max2015 中開啟,最後將檔案以 Unity3D 可接受的 FBX 格式匯出。如圖 4.2 所示。
45
圖4.2 3DS Max2015 畫面圖
3D 環境建構
在真實世界中,人類天生的兩眼具有視覺角度差異,使得物體與場景的深度 分辨是容易且自然的。但是,在大多數的虛擬實境中,虛擬物體和環境皆以 3D 立體圖像顯示於 2D 的螢幕上,因此,無法於視覺上提供使用者如真實世界般的 3D 立體的空間感受。為了改善此狀況,增進臨場浸入感,有些研究會使用頭戴 式 3D 顯示器,提供左右眼不同的畫面,藉由視差讓使用者在腦中產生立體的空 間感。在本研究中,虛擬場景的設置和光線配置皆比照真實的世界,使用者可以 輕易的藉由光影變化、物體的大小與角度來判讀出立體空間感,於是,為了不增 加使用者頭部負擔,以及避免使用者產生暈眩感,本研究不使用頭戴式 3D 顯示 器,而是加入 3D 滑鼠的操作使用。3D 滑鼠能讓使用者輕易且自然地達成視角 轉移,不僅能大幅提升立體感受,還能在組裝時帶給使用者更便利的操作視角以 及更大的操作空間,增進組裝操作效率。
46
視角轉移
每個 Unity3d 的場景之中,都存在著一個以上的相機 (Camera),相機的主要 作用為捕捉和展示場景畫面給使用者。在系統實現方面,相機所在的深度會決定 畫面生成的順序,其中最重要的一個相機會被定為主相機(Main Camera)。場景生 成時,系統會自動產生主相機,而主相機的視角即等同於使用者當下所見的畫面。
因此,將主相機的視角與 3D 滑鼠的操作結合,便能讓使用者輕易改變虛擬場景 中的視角,如圖 4.3 所示。
圖4.3 Unity3D 場景中的相機
實作上,我們希望主相機的視角能根據使用者的 3D 滑鼠操作而旋轉。用來 達成抓取任務的虛擬手部和虛擬工具,則皆需按照主相機的視角來變換其起始之 位置角度,以便能讓使用者在虛擬實境中的手部和工具面向永遠維持在最自然的 操作角度上,如圖 4.4 所示。
(左)起始視角(右)視角經 90 度旋轉後,手部位置依然維持在使用者前方 圖4.4 手部面向旋轉示意圖
47
圖4.5 相機旋轉示意圖一
使用者操作 3D 滑鼠旋轉時,圖 4.5 中的中心點 O 也會依滑鼠的旋轉角度作 相同角度之 y 軸旋轉,而相機、虛擬手和虛擬工具則是維持著與中心點間相對 位移OC⃑⃑⃑⃑⃑ =(0,height,distance),因此,當中心點旋轉時,相機、虛擬手和虛擬工具的 位置也都會產生相對移動,達成繞著場景作大圓旋轉的目的。此時,為了讓相機、
虛擬手和虛擬工具永遠面向中心點,我們使用 unity3D 中的 LookRotation 函式,
此函式讓物體在位置移動的過程中仍能與中心維持著面向的關係。換句話說,當 物體一邊隨著中心點的旋轉作大圓旋轉的同時,本身也作自轉,使其能永遠面向 中心的虛擬場景。
然而,若直接按照圖 4.5 的方式來進行程式實作,會碰上一個致命的問題。
由於 Leap Motion 的虛擬手部偵測範圍只能從手部起始點延伸到旋轉中心點,圖 4.4 中 OC 之間的範圍,因此,虛擬手部無法接近甚至超越中心點。這也就表示 虛擬手無法延伸至超過中心點 O 的位置進行組裝任務,於是,大幅降低了虛擬 手在場景中的能動性。經過調整,我們將圖 4.3,改良變更為如圖 4.5 所示。
O C
Y
height
48
圖4.6 相機旋轉示意圖二
圖 4.6 中,增添了一個新的參考點A,A同上述相機、虛擬手和虛擬工具一 樣依著 3D 滑鼠的旋轉操作,繞中心點 O 作大圓旋轉以及自轉,而此刻相機、虛 擬手和虛擬工具則將參考中心點從原本的中心點 O 移到 A 點,於是旋轉方式變 成A點繞 O 點旋轉,相機、虛擬手和虛擬工具則繞著 A 點作大圓旋轉加自轉。
4.2 力回饋
力回饋在本研究中,為一種重要的身體感受回饋,使用者藉由力回饋裝置,
來操作並感受虛擬物體,促使虛擬組裝更具效率並達到擬真的效果。系統中共使 用了兩種形態的力回饋方式,其中 PHANToM Omni® 提供肢覺回饋;力回饋手套 則是提供震動回饋,以下分別敘述兩者力回饋。