劉貝琦
(湖北第二師范學院,湖北 武漢 430205)
2023年9月,杭州亞運會開幕式向世界奉獻了一場精彩絕倫的視覺盛宴。在虛擬現實技術的助力下,“數實融合”的點火儀式成為亞運會開幕式“經典時刻”。大屏幕上,數字火炬手從錢塘江踏浪而來,與真實的主火炬手一起,共同點燃了名為“潮涌”的主火炬塔。這一科技場景的呈現,成為“虛”與“實”科技融合在當前社會最為直觀的詮釋。隨著虛擬現實技術的發(fā)展,其應用越來越廣泛且被大眾所熟知。在課堂教學中,各種類型的虛擬現實實驗室,幫助師生完成了在真實環(huán)境中成本較大、難度較高的實驗操作或者系統(tǒng)驗證;在文博藝術領域,智慧博物館、三維藝術虛擬展區(qū)的開發(fā),讓人們足不出戶即可享受身臨其境的觀賞體驗。虛擬場景的設計將發(fā)揮越來越重要的作用。
虛擬現實是利用計算機模擬產生一個三維空間的虛擬世界,提供使用者關于視覺、聽覺、觸覺等感官的模擬,能與之發(fā)生“交互”作用,給人一種“身臨其境”的感覺[1]。與傳統(tǒng)的計算機“人-機”界面相比,虛擬現實技術有4個突出特征。
(1)存在性:是指虛擬現實技術會根據人的心理特點和感官體驗,通過計算機創(chuàng)造出逼真的環(huán)境,甚至無法辨認真實世界與虛擬世界的區(qū)別。
(2)交互性:是指人與機器之間的自然交互,用戶可借助頭盔等工具,根據自身需求、自然技能和感官,對虛擬環(huán)境中的事物進行操作。
(3)創(chuàng)造性:是指虛擬現實中的環(huán)境不是真實的,都是人為設計創(chuàng)造出來的,但同時,又是依據現實世界的物理運動定律而運動的。
(4)感知性:是指虛擬現實中具備了多感知性功能,使得使用者在虛擬環(huán)境中獲得多種感知,仿佛身臨其境一般。
虛擬現實場景本質上是一種基于計算機的表達。在這種表達中,空間數據表達的通真度是虛擬現實場景設計的關鍵因素。在空間數據的可視化應用領域,通真度指虛擬場景對真實場景進行表達的接近程度,相比于三維空間模型的幾何節(jié),產生真度感知最為重要的因素為具有真實感的紋理影像,而精細的陰影與表面細節(jié)也是其關鍵因素。在虛擬現實場景設計過程中,創(chuàng)作者首先要選擇一個特定的現實世界場景作為設計原型;其次,在原型場景基礎上,創(chuàng)造者融入其理念和創(chuàng)新思維,借助三維空間數字化手段,完成三維模型的構造;多套三維模型與組件的集成,即實現了三維虛擬場景的布置搭建;最后借助聲、光、碰撞感知、交互等智能化控制,實現空間場景的交互體驗,為人們構造一個嶄新的虛擬空間。
目前,虛擬現實開發(fā)工具市場份額最大的是Unity 3D,但是基于Unity 3D工具開發(fā)的應用需要大量代碼編程。Play Maker雖然屬于拖拽式虛擬現實應用編輯器,但是它本質上屬于設計用插件,必須嵌入Unity 3D開發(fā)軟件內才能使用。為此,為了更好地實現虛擬現實場景的可視化設計,具有較為完備功能的應用可視化三維編輯引擎(Power Engineering Virtual Reality,PEVR)應運而生,成為完成特定虛擬現實場景開發(fā)設計的重要工具[2]。PEVR引擎可以讓開發(fā)者通過鼠標拖拽,即可方便地完成各種專業(yè)級虛擬現實應用場景的搭建,具有極強的技術優(yōu)勢。PEVR框架是基于有限狀態(tài)機的思想進行設計開發(fā)的,一個有限狀態(tài)機可以將行為組織成一些離散的狀態(tài),比如開啟、關閉、行走、空閑、攻擊、防御等。PEVR開發(fā)平臺中,每一個狀態(tài)由一個或者多個行為組成,通過事件驅動不同狀態(tài)之間的轉換,實現虛擬場景中各種組件的交互行為。
在Maya等軟件制作的三維動畫場景中,制作三維場景時通常是透過攝像機鏡頭看到的畫面,只要有利于豐富攝像機畫面的內容,都會被設計制作;而攝像機畫面以外看不到的內容,則通常不會制作。因此,Maya、3DMax、Blender等三維軟件制作的通常是鏡頭場景,即針對特定視角、特定范圍的有限場景;而在引擎中設計制作的場景則呈現出顯著區(qū)別。在引擎中設計制作場景通常是制作一個完整的空間,人們在這個空間內往往可以自由行走或與環(huán)境進行交互。即引擎場景是一個相對完整的空間,包括路徑、空間及所有可以交互的環(huán)境物件或建筑道具等[3]。在引擎的虛擬現實場景設計中,通常要設計2部分內容:一是關卡內在核心功能的場景要素部分,通常稱之為關卡核心功能設計部分,如關卡空間、關卡道路、關卡交互要素。二是外在視覺呈現部分,即將前面關卡功能模塊設計的關卡空間、關卡道路、關卡交互要素等進行視覺化,讓人們看到視覺豐富的虛擬現實場景,如臺階、地板、樹木、巖石、建筑、道具等[4]。虛擬現實場景設計流程可分為前期基礎設計、中期制作與細化、后期功能細化與優(yōu)化3個主要環(huán)節(jié)。
(1)前期基礎設計。前期基礎設計主要完成虛擬現實場景設計,包括繪制關卡設計圖、使用BSP搭建關卡、擺放基礎地形、通過調整燈光營造基礎場景的視覺效果等。而關卡設計圖偏向于交互設計空間。
(2)中期制作與細化。中期制作與細化主要是將場景的空間、道路、建筑、道具及植被等場景主體元素制作呈現的過程,是引擎關卡制作的主體環(huán)節(jié)。在該環(huán)節(jié)中,主要把握如何對虛擬現實場景的路徑與空間進行細化,如何設計與安排建筑與道具,如何細化植被及相關元素等。
(3)后期功能細化與優(yōu)化。后期功能細化與優(yōu)化主要是在制作的場景中進行具體的隱性或顯性的制作細化,以滿足關卡場景設計過程中應該具備的核心功能。在這一階段,主要完成虛擬現實場景中的交互環(huán)境、交互道具、視覺特效等相關功能要素,對其進行細化和呈現。
此外,制作引擎場景最為重要的環(huán)節(jié)之一就是性能優(yōu)化。這部分的工作主要圍繞場景的功能、視覺效果及實際運行效率進行調整優(yōu)化。在虛擬現實項目中,穩(wěn)定的性能和舒適的呈現是第一要素[5]。設計者需要在確保項目基本穩(wěn)定運行和舒適體驗的基礎上,呈現更優(yōu)秀的視覺效果。
資源列表是虛擬場景設計的基礎元件,按照類型可以劃分為環(huán)境建筑、人物、動物、植物、交通工具、天空盒、燈具、動畫、輔助設施、電力設施、特效以及基本形狀等。每一種類型的資源又可以進一步細分為具體的模型。當單擊人物類型圖標時,則顯示具體的多個人物角色三維模型。
對象列表包含場景里面的各個物件,具體包括對象名稱及對象ID;對象父子關系定義,如果要將一個物件作為另一個物件的子節(jié)點,只要在對象列表上面將該物件移動到相應的物件節(jié)點上面即可。對象列表配置為后續(xù)虛擬環(huán)境下交互行為設計提供支撐。
PEVR平臺的音效控制主要在PlayAudio類里實現配置,該類繼承于Action類,其主要的功能是控制場景內粒子特效的播放狀態(tài)。該腳本的功能由若干組件完成:Create Action是一個多態(tài)函數,在本類中其作用是填寫音頻控制信息,選擇音頻播放狀態(tài)使用Dropdown組件實現,音量控制使用Slide組件完成,可以平滑地改變數值;Set Volume是設置音量的函數,綁定在Slide組件對應的U上,將信息傳入PlayAudio和PlayAudiolnforma腳本。
PEVR平臺的視頻控制主要在ShowVideo類里實現配置,該類繼承于 Action類,其主要功能是將存儲在數據存儲類中的相關數據在執(zhí)行動作時,將之記錄并傳遞給播放視頻的類。本腳本的部分功能由DoAction方法完成。
PEVR平臺的任務編輯面板主要用于確定每個狀態(tài)之間的交互設計。PEVR平臺的核心設計思路是通過有限個狀態(tài)以及在這些狀態(tài)之間的轉移和動作等來表現一系列的邏輯行為,進而構筑一個交互任務,具體操作是通過有限狀態(tài)機將對象的復雜行為特征歸納為有限個不同的“狀態(tài)”,然后在每個狀態(tài)中分別指定一系列“行為”,讓處于該狀態(tài)的對象來執(zhí)行,同時設置一些“條件”,當這些條件被滿足時,對象從當前狀態(tài)變換為另一個狀態(tài),由此帶來其所執(zhí)行“行為”的變化。在交互實現過程中,需要對角色功能進行設置。角色設置功能包括設置第一人稱行為、第三人稱行為、跟隨主角行為。
第一人稱角色功能設置體現在 SetFirstPerson類里,該類繼承于Action類,其主要功能是可以將場景內某一物體設置成可自由操作的第一人稱視角,操作類似于FPS游戲。包含如下屬性。
public class SetFirstPerson :Action
public foat walkSpeed;//設置第一人稱的行走速度
public foat runSpeed;//設置第一人稱的跑動速度
public float jumpSpeed;//設置第一人稱的跳躍速度
public string num;//設置第一人稱操作是否可以進行
public string task;//設置第一人稱的任務
public bool isNet;//設置第一人稱操作是否聯網
}
第三人稱角色功能設置體現在SetThirdPerson類里,該類繼承于Action類,其主要功能是可以將場景內某一物體設置成可自由操作的第三人稱視角,操作類似于GTA游戲。包含如下屬性。
public class SetThirdPerson :Action
public string num;//設置第三人稱的角色
public string task;//設置第三人稱的任務
public bool isNet://設置第三人稱操作是否聯網
}
與以上設置類似,跟隨主角行為功能主要表現在FollowPlayer類里,FollowPlayer類繼承于Action 類,主要功能是給目標對象添加FollowPlayerGameobiect腳本,設置跟隨對象。給物體添加該Action類后,物體會隨著第一人稱的移動進行移動,始終跟隨主角實現場景運動的控制。
虛擬現實技術是一項融合計算機圖形學、人機交互、傳感、人工智能、計算機仿真、立體顯示與高性能計算等技術,借助計算機生成逼真的三維虛擬場景,使人作為參與者通過適當的裝置,自然地對虛擬世界進行體驗和交互的一種技術手段。虛擬現實應用的設計開發(fā)通常要求開發(fā)人員具備熟練的編程能力,這限制了部分缺乏編程知識人員虛擬現實場景的開發(fā)能力。本文介紹了PEVR虛擬現實設計平臺的技術優(yōu)勢,闡釋了基于PEVR平臺的虛擬場景設計與實現的關鍵技術,為人們開展虛擬現實場景的設計開發(fā)提供了便捷的方法路徑。