張紹東、謝慧
(中車唐山機(jī)車車輛有限公司,河北唐山 064000)
鐵路作為國民經(jīng)濟(jì)的大動(dòng)脈、國家重要基礎(chǔ)設(shè)施和大眾化交通工具,在我國經(jīng)濟(jì)社會(huì)發(fā)展中具有重要作用。目前在高速動(dòng)車組培訓(xùn)和列車應(yīng)用雖然有培訓(xùn),但是一般都是文件或者圖片等二維信息媒介傳遞信息,不夠直觀,培訓(xùn)效率低下;乘客在乘坐高速動(dòng)車組過程中由于缺少對列車的了解,也會(huì)有很多設(shè)計(jì)師精心設(shè)計(jì)的功能不能及時(shí)發(fā)現(xiàn)和正確使用,無法發(fā)揮列車資源利用的最大化,降低了乘客體驗(yàn)感。虛擬現(xiàn)實(shí)技術(shù)作為一種近些年來新興技術(shù),以其良好的沉浸感、可交互、直觀形象等特點(diǎn)被應(yīng)用到越來越多的領(lǐng)域,如工業(yè)、商業(yè)、軍事、醫(yī)療和教育等,進(jìn)行科研技術(shù)研究、功能示教、場景漫游和展示等,取得良好的效果。為了讓高速動(dòng)車組有關(guān)培訓(xùn)更加直觀形象,基于虛擬現(xiàn)實(shí)軟件開發(fā)虛擬示教程序。
高速動(dòng)車上人機(jī)交互內(nèi)容豐富,從區(qū)域上可分為司機(jī)室內(nèi)和客室內(nèi)人機(jī)交互內(nèi)容,在司機(jī)室內(nèi),有司機(jī)室逃生、制動(dòng)等;客室內(nèi)有供旅客使用的小桌板、閱讀燈、茶爐、行李架等。從角色來分,可分為司機(jī)、乘務(wù)員和乘客三種角色,司機(jī)在司機(jī)室的啟動(dòng)、制動(dòng)流程和逃生等內(nèi)容培訓(xùn);乘務(wù)員對座椅調(diào)整、飯車等內(nèi)容的操作;旅客有小桌板、閱讀燈、行李架等內(nèi)容的培訓(xùn)。此外,還可以從列車狀態(tài)來分,分成靜止?fàn)顟B(tài)和運(yùn)行狀態(tài)等,系統(tǒng)要滿足這些不同分類下不同角色的不同內(nèi)容的培訓(xùn)事宜,并提供三維沉浸式可視化的示教功能。
系統(tǒng)框架的層級關(guān)系,根據(jù)需求設(shè)計(jì)角色庫,場景庫和若干教學(xué)視頻,作為可選數(shù)據(jù)源,通過輸入設(shè)備與系統(tǒng)的交互,展示相應(yīng)的示教內(nèi)容,具體的層級關(guān)系如圖1所示。
圖1 程序架構(gòu)圖
為了表現(xiàn)在列車運(yùn)行過程中各種人機(jī)交互功能,包括在正常場景下和應(yīng)急場景下的人機(jī)交互功能示教。正常場景的示教可以令司乘人員和乘客了解列車上各功能的使用方法和技巧,應(yīng)急場景下的示教為司乘人員和乘客提供在緊急情況下的生命保障提供信息。為了更加形象地表達(dá)不同角色在不同區(qū)域的操作和處理方式,設(shè)置三種不同的角色,即司機(jī),乘務(wù)人員和乘客。
虛擬現(xiàn)實(shí)中表現(xiàn)人物動(dòng)作有兩種方式,一種是錄制人物完整的動(dòng)作視頻,中間不存在人機(jī)交互,后期程序通過接口進(jìn)行視頻調(diào)用。這種方式比較適合全虛擬環(huán)境,即虛擬的人虛擬的場景,中間不需要實(shí)時(shí)交互的場景。第二種是需要進(jìn)行實(shí)時(shí)交互才可以完成的動(dòng)作,這種動(dòng)作需要結(jié)合動(dòng)捕和半實(shí)物共同完成,適合實(shí)時(shí)仿真場景。在此系統(tǒng)中應(yīng)用第一種方式。
骨骼動(dòng)畫是將人物模型綁定設(shè)定好的骨骼上,在骨骼上進(jìn)行運(yùn)動(dòng)姿態(tài)、路徑等信息,骨架是由一定數(shù)目的骨骼組成的層次結(jié)構(gòu),每一個(gè)骨骼的排列和鏈接關(guān)系對整個(gè)骨架的運(yùn)動(dòng)有很重要的影響。骨架上賦予“蒙皮”模型,它提供動(dòng)畫繪制所需要的幾何模型信息和紋理材質(zhì)信息。每個(gè)頂點(diǎn)都有相應(yīng)的一組權(quán)值,這些權(quán)值定義了骨骼的運(yùn)動(dòng)對有關(guān)頂點(diǎn)的影響因子。當(dāng)把動(dòng)畫人物的姿勢和全局運(yùn)動(dòng)信息作用到骨架上時(shí),這個(gè)“蒙皮”模型就會(huì)跟隨骨架一起運(yùn)動(dòng)。系統(tǒng)中動(dòng)畫視頻的錄制就是基于骨骼動(dòng)畫原理。錄制角色動(dòng)畫的流程分為人物模型的建立、骨骼綁定人物模型、設(shè)置骨骼的姿態(tài)、運(yùn)動(dòng)路徑等、輸出人物動(dòng)畫。動(dòng)畫視頻制作過程如圖2所示,人物動(dòng)作制作如圖3所示。
圖2 動(dòng)畫視頻制作過程
圖3 人物動(dòng)作制作
系統(tǒng)中應(yīng)用模型建模軟件進(jìn)行任務(wù)模型的制作并導(dǎo)出FBX中間格式提供給動(dòng)畫軟件使用,應(yīng)用專業(yè)動(dòng)畫編輯軟件完成人物模型的動(dòng)作規(guī)劃、調(diào)整和輸出。根據(jù)應(yīng)用需求,有三種人物角色,即司機(jī)、乘務(wù)員和乘客,并且區(qū)分男女。因此制作男女兩種模型和三種不同角色的蒙皮。在人物動(dòng)畫編輯軟件中導(dǎo)入模型建模軟件輸出的人物模型后設(shè)定人物的基本動(dòng)態(tài),包括翻、舉、滑動(dòng)等動(dòng)作,結(jié)合三維虛擬場景設(shè)定人物運(yùn)動(dòng)路徑、設(shè)定蒙皮等信息,調(diào)整動(dòng)畫干涉細(xì)節(jié),最后輸出人物動(dòng)畫,供后續(xù)程序使用。最后在虛擬現(xiàn)實(shí)程序開發(fā)軟件中設(shè)定相機(jī)、人物動(dòng)畫和場景,輸出相應(yīng)的視頻。
系統(tǒng)所使用的主程序開發(fā)軟件中提供了許多BB(Building Block)模塊,在編制程序時(shí)可之際調(diào)用,但是其與其他軟件和設(shè)備的通信接口模塊不是很完善,需要做單獨(dú)的開發(fā)。開發(fā)能夠被軟件應(yīng)用的模型程序可以有兩種方式:一種是使用軟件自帶的VSL模塊編寫代碼實(shí)現(xiàn)程序功能,可重用率比較低;另一種是可以在VC++中進(jìn)行程序開發(fā),封裝成BB模塊,最后由軟件進(jìn)行調(diào)用,實(shí)現(xiàn)通信功能??紤]到通信接口的復(fù)用性,采用第二種方式進(jìn)行通信功能模塊的開發(fā),封裝成BB模塊,在使用過程中利用軟件自身的通信模塊直接使用該模塊即可。
為了提高系統(tǒng)的適用性,客戶應(yīng)用終端在便攜式設(shè)備上進(jìn)行開發(fā),便于培訓(xùn)方與被培訓(xùn)方的交流。便攜式設(shè)備與主程序之間通信采用tcp/ip協(xié)議建立連接,通過讀取套接字進(jìn)行連接。在完成便攜式設(shè)備與主程序軟件之間的通信接口開發(fā)后,需要定義程序中不同動(dòng)畫內(nèi)容調(diào)用協(xié)議。在此采用數(shù)字組合的方式進(jìn)行信息交互,一個(gè)信息組合里面包含兩個(gè)數(shù)字,如(7,1)組合,第一個(gè)數(shù)字7表示與vip座椅相關(guān)的操作,第二個(gè)數(shù)字1則表示具體的操作,如vip座椅躺的功能,以此類推,定義與司機(jī)室相關(guān)的、二等座椅相關(guān)的、衛(wèi)生間相關(guān)的等不同的數(shù)字序列,通過不同的數(shù)字組合切換動(dòng)畫視頻。
根據(jù)業(yè)務(wù)需求,開發(fā)更加自由便捷的終端操作設(shè)備,在便攜式設(shè)備終端的界面邏輯功能模塊結(jié)構(gòu)。
基于主程序設(shè)計(jì)軟件開發(fā)適合業(yè)務(wù)需求的交互系統(tǒng)。虛擬現(xiàn)實(shí)制作軟件主要是通過調(diào)用各BB模塊進(jìn)行程序的設(shè)計(jì)和開發(fā),其中可以調(diào)用自帶的功能模塊,也可以將自己在VC等環(huán)境中開發(fā)的功能模塊封裝成BB模塊進(jìn)行調(diào)用,系統(tǒng)中所用到的通信接口就是自行開發(fā)的功能模塊并進(jìn)行封裝。
系統(tǒng)主程序的實(shí)現(xiàn)包含程序初始化、場景初始化、模型狀態(tài)初始化、路徑初始化,程序初始化完成后處于等待狀態(tài),等待接收外設(shè)即鍵盤或者便攜式設(shè)備發(fā)出的信息。程序利用Array建立不同的視頻路徑和內(nèi)容,當(dāng)接收到鍵盤或者便攜式設(shè)備發(fā)送的不同信號時(shí)切換不同的動(dòng)畫視頻和場景進(jìn)行內(nèi)容展示。程序部分示教內(nèi)容展示界面如圖4所示。
圖4 程序運(yùn)行界面
系統(tǒng)實(shí)現(xiàn)了三種不同角色不同場景的不同應(yīng)用的示教功能,為司乘人員和旅客提供了直觀形象的教學(xué);實(shí)現(xiàn)了便攜式設(shè)備與計(jì)算機(jī)之間的程序交互,交流起來更加便捷,滿足業(yè)務(wù)需求。系統(tǒng)中也有需要改進(jìn)的地方,如人物模型的運(yùn)動(dòng)主要是靠骨骼運(yùn)動(dòng)來呈現(xiàn),有很多地方不太精確,會(huì)有模型穿插的地方,需要對實(shí)現(xiàn)方式進(jìn)行深入的探索,實(shí)現(xiàn)更加精細(xì)的動(dòng)作。