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