趙一江,余 超,于 清
(1.新疆大學(xué) 軟件學(xué)院,新疆 烏魯木齊 830000;2.新疆大學(xué) 信息科學(xué)與工程學(xué)院 多語(yǔ)種信息處理實(shí)驗(yàn)室,新疆 烏魯木齊 830000)
虛擬現(xiàn)實(shí)(VR)是一種將計(jì)算機(jī)圖形技術(shù)與相關(guān)設(shè)備相結(jié)合,可為人們創(chuàng)造具有沉浸感、互動(dòng)性和想象力的良好虛擬環(huán)境的仿真技術(shù)[1]。Unity3d 是一款流行的、免費(fèi)的3D 游戲引擎,用于設(shè)計(jì)和構(gòu)建虛擬環(huán)境。與其他3D 設(shè)計(jì)應(yīng)用程序相比,這在很大程度上歸功于一個(gè)友好的用戶界面,用于設(shè)計(jì)內(nèi)容,以及一個(gè)強(qiáng)大的工具集,用于處理3D 環(huán)境的常見(jiàn)元素,如地形、物理、粒子效果、聲音、模型和動(dòng)畫(huà)角色[2]。然而在使用過(guò)程中發(fā)現(xiàn),Unity3d 在語(yǔ)言字體方面還存在一些問(wèn)題,其可以顯示常用的漢語(yǔ)、英語(yǔ)等字體,但是在少數(shù)民族語(yǔ)言上存在明顯的缺陷,如維語(yǔ)字體,它不支持維語(yǔ)字體的正確顯示,不利于維吾爾族同胞在教育、醫(yī)療等VR 活躍的行業(yè)受益。
在Unity3d 的研究中,文獻(xiàn)[3]探討國(guó)內(nèi)外虛擬現(xiàn)實(shí)技術(shù)用于語(yǔ)言教學(xué)的現(xiàn)狀與發(fā)展。文獻(xiàn)[4]對(duì)虛擬現(xiàn)實(shí)英語(yǔ)演講課堂的原理進(jìn)行分析,認(rèn)為虛擬現(xiàn)實(shí)技術(shù)能夠訓(xùn)練學(xué)生的應(yīng)激反應(yīng)能力。文獻(xiàn)[5]從認(rèn)知的角度探討了虛擬人與學(xué)生間的關(guān)系,表示學(xué)生能夠通過(guò)虛擬人實(shí)現(xiàn)自身認(rèn)知。文獻(xiàn)[6]利用虛擬現(xiàn)實(shí)技術(shù)的沉浸性,讓學(xué)生沉浸在語(yǔ)言學(xué)習(xí)環(huán)境中,與母語(yǔ)學(xué)習(xí)者進(jìn)行實(shí)時(shí)交流,為學(xué)生提供了傳統(tǒng)課堂無(wú)法提供的語(yǔ)言學(xué)習(xí)環(huán)境。文獻(xiàn)[7]利用虛擬現(xiàn)實(shí)技術(shù)還原真實(shí)口譯場(chǎng)景,消除學(xué)生譯員對(duì)口譯現(xiàn)場(chǎng)的陌生感,達(dá)到學(xué)生口誤次數(shù)下降、口譯綜合能力提升等效果。文獻(xiàn)[8]創(chuàng)建了虛擬現(xiàn)實(shí)語(yǔ)言學(xué)習(xí)生態(tài)模型,宏觀上強(qiáng)調(diào)語(yǔ)境對(duì)外語(yǔ)學(xué)習(xí)的重要性。文獻(xiàn)[9]介紹了生態(tài)、對(duì)話和分布式虛擬現(xiàn)實(shí)理論模型。
在國(guó)外,文獻(xiàn)[10]使用Unity3d 實(shí)現(xiàn)兩種印度語(yǔ)的開(kāi)發(fā),即印地語(yǔ)和泰盧固語(yǔ),幫助初學(xué)者使用虛擬物品標(biāo)識(shí)的方式來(lái)學(xué)習(xí)印度語(yǔ)詞匯。文獻(xiàn)[11]進(jìn)行了印度手語(yǔ)的開(kāi)發(fā),使用Unity3d 設(shè)置動(dòng)畫(huà)顯示所有不同手勢(shì)的動(dòng)作數(shù)據(jù),幫助有障礙人群和正常人群的實(shí)時(shí)交流。
在字體研究方面,現(xiàn)在所使用的以阿拉伯字母為基礎(chǔ)的維吾爾文(簡(jiǎn)稱(chēng)傳統(tǒng)維文)由8 個(gè)原音、24 個(gè)輔音字母組成,自右向左書(shū)寫(xiě)[12]。文獻(xiàn)[13]介紹了傳統(tǒng)維文與西里爾維文編碼字符之間的對(duì)應(yīng)關(guān)系與規(guī)則,提出了轉(zhuǎn)換的規(guī)則;文獻(xiàn)[14]中介紹了在Office 環(huán)境下不同傳統(tǒng)維文與Unicode 編碼字符之間的轉(zhuǎn)換;文獻(xiàn)[15]中介紹了傳統(tǒng)維文在搜索引擎系統(tǒng)中的轉(zhuǎn)換方法。
在字體庫(kù)方面,微軟提供了可正確顯示阿拉伯語(yǔ)的字體庫(kù),會(huì)存在字符割裂的情況。對(duì)此問(wèn)題Unity3d 資源庫(kù)中提供了字體資源包,可以解決字符割裂問(wèn)題,但是在部分字符上會(huì)存在隨意替代的問(wèn)題。因此,雖然有很多研究圍繞著這個(gè)問(wèn)題展開(kāi),但是幾乎沒(méi)有一項(xiàng)完美解決維語(yǔ)在Unity3d 中正確顯示的問(wèn)題,本文研究解決這個(gè)問(wèn)題,從而幫助少數(shù)民族用戶尤其是維族用戶獲得虛擬現(xiàn)實(shí)方面的愉快體驗(yàn)。
本文提出了在Unity3d 中維語(yǔ)的正常顯示方面的研究。首先需要了解Unity3d 中語(yǔ)言文字的顯示方式以及維語(yǔ)的構(gòu)成方式。項(xiàng)目在現(xiàn)實(shí)UI 界面時(shí),默認(rèn)調(diào)用Unity3d 提供的Arial 字體,Unity3d 支持ttf、otf 格式的字體,字體文件放到Assets 文件夾下不論什么位置,Untiy3d 會(huì)主動(dòng)為其生成材質(zhì)和貼圖,并且字體可以進(jìn)行屬性方面的設(shè)置,如粗細(xì)、呈現(xiàn)模式等,在打包部署時(shí),可以將字體包一起打包安裝到用戶機(jī)器上。
使用Unity3d 默認(rèn)的字體在維語(yǔ)顯示上會(huì)出現(xiàn)顯示亂碼的情況,并且顯示順序也完全不同,有些字母還會(huì)被其他字母替代,導(dǎo)致單詞拼寫(xiě)出錯(cuò)。本文嘗試使用Unity3d 資源庫(kù)中的字體庫(kù),以及在Visual Studio 中可以正常顯示的字體庫(kù),但是都沒(méi)有完全解決問(wèn)題。
最后選擇自行開(kāi)發(fā)矯正字體。首先針對(duì)存在的問(wèn)題進(jìn)行分析,發(fā)現(xiàn)現(xiàn)有的代碼對(duì)維語(yǔ)字母從基本區(qū)到擴(kuò)展的映射不全,根據(jù)維語(yǔ)Unicode 編碼方式補(bǔ)全了維語(yǔ)從基本區(qū)到擴(kuò)展區(qū)的映射,具體方法是將基本區(qū)和擴(kuò)展區(qū)的Unicode 編碼表存入在映射中,在輸入字符后將其逐個(gè)映射,之后對(duì)維語(yǔ)做了格式上的矯正,對(duì)輸入的維語(yǔ)按字母進(jìn)行切分,然后重排序,將其矯正成從右到左的顯示格式。之后導(dǎo)入維語(yǔ).ttf 字體包,使其可以正常顯示。通過(guò)此方法將場(chǎng)景中涉及到的單詞語(yǔ)句都進(jìn)行了維語(yǔ)的矯正,使其在Unity3d 中正確顯示出來(lái)。
Unity3d 虛擬仿真引擎跨平臺(tái)開(kāi)發(fā)功能強(qiáng)大,開(kāi)發(fā)的項(xiàng)目支持多種平臺(tái)發(fā)布,包括PC 機(jī)、Android、iOS、Oculus 設(shè)備等。本系統(tǒng)采用開(kāi)發(fā)硬件為PC 機(jī),開(kāi)發(fā)完成后設(shè)置分辨率、畫(huà)面比、圖標(biāo)等進(jìn)行自定義發(fā)布,將項(xiàng)目打包加載到Oculus Quest2 虛擬設(shè)備。
所有維語(yǔ)顯示的方法結(jié)果對(duì)比如圖1 所示。
圖1 展示了詞語(yǔ)“維語(yǔ)”的維語(yǔ)寫(xiě)法以及各種方法的顯示結(jié)果,初始字體顯示存在字符亂序、字母割裂的問(wèn)題,如圖1a)中方框圈出了亂碼,橫線畫(huà)出了割裂字母,箭頭指示出字母順序的錯(cuò)誤、正確寫(xiě)法是從右到左;微軟字體存在順序錯(cuò)誤、字母割裂的問(wèn)題,如圖1b)中箭頭指示順序錯(cuò)誤的方向是從左到右,正確方向是從右到左,橫線畫(huà)出了割裂的字母;Unity3d 資源庫(kù)中字體存在字符割裂和部分字符替換的問(wèn)題,如圖1c)中方框畫(huà)出了替換的字母,橫線畫(huà)出了割裂字母;本文方法徹底解決了這些問(wèn)題,使維語(yǔ)在Unity3d 中可以正常顯示,如圖1d)所示。
本文為進(jìn)一步驗(yàn)證以上方法的有效性,設(shè)計(jì)開(kāi)發(fā)虛擬超市購(gòu)物系統(tǒng)。用戶首先在家庭場(chǎng)景中選擇任務(wù)難度,接受隨機(jī)任務(wù),記憶購(gòu)買(mǎi)的物品,然后到超市場(chǎng)景中購(gòu)買(mǎi)物品,返回交付任務(wù),經(jīng)過(guò)測(cè)試,所有內(nèi)容完成顯示正確,系統(tǒng)流程圖如圖2 所示。
圖2 虛擬超市購(gòu)物系統(tǒng)流程圖
用戶戴上VR 設(shè)備之后,以第一人稱(chēng)視角進(jìn)入虛擬家庭環(huán)境。選擇語(yǔ)言,可選項(xiàng)有中文和維語(yǔ),選擇結(jié)束后進(jìn)行難度選擇,分為簡(jiǎn)單、中等、困難。簡(jiǎn)單任務(wù)為購(gòu)買(mǎi)3 種放置在同一區(qū)域的水果蔬菜;中等任務(wù)為購(gòu)買(mǎi)分布在不同區(qū)域的日常用品;困難任務(wù)為購(gòu)買(mǎi)分布在不同區(qū)域的日常用品并在結(jié)賬時(shí)自行計(jì)算出賬目金額。如圖3 所示為維語(yǔ)選擇難度的界面。
圖3 維語(yǔ)難度選擇界面
在選擇完難度后,系統(tǒng)根據(jù)難度的不同隨機(jī)生成不同的物品,如圖4 所示,用戶記憶后前往超市場(chǎng)景購(gòu)買(mǎi)。
圖4 系統(tǒng)自動(dòng)生成維語(yǔ)待購(gòu)買(mǎi)清單
在超市場(chǎng)景,按照實(shí)際情況設(shè)置了多個(gè)分區(qū),并在選擇維語(yǔ)后,用維語(yǔ)顯示分區(qū),如圖5 所示。
圖5 超市場(chǎng)景維語(yǔ)顯示分區(qū)
本文基于虛擬現(xiàn)實(shí)技術(shù),使用Unity3d 虛擬仿真引擎構(gòu)建高度逼真的仿真模型,對(duì)少數(shù)民族用戶語(yǔ)言文字和語(yǔ)音功能進(jìn)行探索性研究,成功顯示了維語(yǔ)文字,搭建了多語(yǔ)種的Unity3d 仿真系統(tǒng),具有支持少數(shù)民族用戶進(jìn)行用戶虛擬漫游、康復(fù)訓(xùn)練、教學(xué)時(shí)間、評(píng)估考核等功能。增強(qiáng)了新的體驗(yàn)感,對(duì)虛擬現(xiàn)實(shí)技術(shù)在少數(shù)民族領(lǐng)域的發(fā)展具有重要意義。
本文目前只設(shè)計(jì)了兩個(gè)場(chǎng)景,以及一些場(chǎng)景中用到的詞語(yǔ)和語(yǔ)句,后期可以增設(shè)場(chǎng)景,支持多場(chǎng)景訓(xùn)練,增加詞匯和語(yǔ)言的表達(dá),可以再添加其他少數(shù)民族語(yǔ)言。
注:本文通訊作者為于清。