• 沒有找到結果。

將研究結果轉為 3D 的互動內容-利用 Virtools 3D/VR 編輯工具

第四章 研究與成果

4.4 虛擬實境場景的邏輯編輯與互動設定

4.4.2 將研究結果轉為 3D 的互動內容-利用 Virtools 3D/VR 編輯工具

或3Ds MAX、Maya )的技術外,尚須擁有 DirectX、OpenGL 的程式撰寫基礎尚 可進入製作3D 互動內容。所幸隨著一些軟體公司的努力,將一段一段複雜的程 式碼組合成圖形化模組的3D 互動製作工具一套套地出現在市面上,簡易的操作 介面讓來自不同領域的使用者撇開程式語法及除錯的複雜門檻,得以直接進入製 作3D 互動內容的領域,縮減開發時程及拉近美術與程式設計的距離。

而其中為國內眾多學術研究單位所採用的一套工具即是此次研究中使用的 Virtools,這套 3D/VR 開發工具除了簡易的圖形化操作介面及近似邏輯圖的互動 設計基礎外,尚提供各種建模軟體的輸出Plug-in 配件,將模型與材質順利地輸

2.模型製作

開啟Virtools 編輯介面,在上方工作列選單中,選擇 Resources Æ Import File,選擇之前由 3Ds MAX 匯出的.nmo 場景檔案,如圖 4.49 3Ds MAX 匯出 方式。

4.Virtools 場景配置

(1)新增、調整 Camera 及燈光

至Virtools 預設的素材庫 Virtools Resources / Patch Primitives / 中找 到"Patch Plane 10x10.nmo",利用這個平面的 3D 物件當成草坪,如圖

4.54。位置與Scale 大小的設定如圖 4.55。在場景編輯畫面中點選該物件 後按滑鼠右鍵,進入Texture Setup,該改貼圖為 grass 512x512.jpg,此圖 檔亦存在於Virtools Resources / Textures / Material 中,將其直接拖拉至 Texture Setup 左邊的方框即可,如圖 4.56。調整後結果如圖 4.57。接下 來,同樣利用VirtoolsResources / world 裡的 MountainWorld.nmo,將其中 以十字貼圖法的樹木物件單獨儲存成個別的.nmo 檔,如圖 4.58。將此樹 窗,如圖 4.61。接下來由Virtools 右上方的 Building Block 視窗,找到以 下兩個Building Block:

Interface/Screen/ 2D Picking

3D Transformations/Basic/ Set Position

再來依以下的邏輯連結Behavior Link 及 Parameter Link,將 2D Picking 的 Inter Section Point 值傳到 Set Position 的 Position 參數,如此一 來,當執行時滑鼠滑過的位置即是攝影機可選擇前進或後退的方向,如 圖 4.62。

(2) 使用者可透過鍵盤控制攝影機前進及後退

針對一開始新增的Camera 去 Create 一個新的 Script 腳本視窗,再來 先加入一個Building Block:3D Transformations/Basic/ Look At,如圖 4.63。

點擊該Building Block,將跟隨速度設為 1%,讓攝影機會自動注視 3D

frame 的位置。接下來加入 Controllers/Keyboard / Switch On Key,此 Building Block 在於可設定鍵盤按鍵對應後續觸發的功能,如圖 4.64,

按"W"、"A"可觸發後續的 Translate (3D Transformations/Basic/ ),第 一個Output 為 Z 正值( 攝影機前進 ),第二個 Output 透過 Parameter Operation:Multiplicatio 的運算為負 Z 值( 攝影機後退 )。

(3) 自由攝影機與場景建築物需有碰撞Collision 的效果

至Lever Manager 開啟一個 Group,將欲產生碰撞的 3D 物件拖拉到 此Group 中,並將此 Group 更名為"Collision",如圖 4.65。回到 Camera 腳本環境中,加入Building Block:Collisions/3D Entity / Object Slider,選 擇剛剛建立的Group,日後執行時即可產生碰撞效果,如圖 4.66。

(4) 點選不同顏色的塑鉸可產生不同的2D 圖文資訊,點選塑鉸外的物件可取 消2D 圖文視窗。

利用新增工具列依照需求新增10 個 2D Frame 置於畫面左方,如圖 4.67。在Lever Manager 中點選 Level Script 新增一個腳本,加入 Building Block:

Controllers/Mouse/ Mouse Waiter ( 判斷滑鼠按鍵是否按下 )、

Interface/Screen/ 2D Picking ( 偵測滑鼠點選物件 ),如圖 4.68。

接下來至Level Manager 新增不同塑鉸的四個 Group,分別將不同顏 色( Blue、Green、Yallow、Red )的塑鉸物件加入個別的 Group 中,回到 Level Script 的腳本,加入 Building Block:Logics/Groups/ Is In Group 判斷 點選物件是否在此Group 中,如圖 4.69。接下來處理 2D 文字跟指定 2D Frame 貼圖部份,Script 腳本邏輯如圖 4.70。

使用的Building Block 有:

Logics/Loops/Delayer (減緩時間間隔,避免滑鼠點選後產生的重複運 算狀態。

Visuals/Show-Hide/Show ( 顯示 2D Frame ) Visuals/Show-Hide/Hide ( 隱藏 2D Frame ) Interface/Text/Text Display ( 顯示文字)

Logics/Calculator/Identity ( 指定文字及圖片參數給其他 Building Block 使用 )

Materials-Textures/Basic/Set Texture ( 設定貼圖資訊 )

再利用Building Block:Materials-Textures/Basic/Set Diffuse 設定 2D Frame 顏色,如圖 4.71。如此 2D 資訊的互動製作就完成了,如圖 4.72。

最後利用Building Block:World Environments/Background /Sky Around(CubeMap)指定 Sky 的 Cube Map 貼圖產生天空的效果,Virtools 互動亦即完成,如圖 4.73 及圖 4.74。

相關文件