葉詩慧
摘要:針對高中化學(xué)實驗操作條件有限、危險性大、實驗教學(xué)內(nèi)容深度廣度不夠等問題,結(jié)合Unity3D技術(shù)設(shè)計開發(fā)一套應(yīng)用于高中化學(xué)實驗教學(xué)的虛擬實驗系統(tǒng)。參照高中化學(xué)實驗大綱的要求,將虛擬實驗系統(tǒng)劃分為三大功能模塊:實驗演示模塊、三維操作模塊、操作考試模塊。其中關(guān)鍵技術(shù)采用粒子系統(tǒng)特效技術(shù)、模型貼圖紋理處理技術(shù)、視頻調(diào)用技術(shù)、人物漫游技術(shù)以及碰撞檢測技術(shù),并且通過3個功能模塊對學(xué)習(xí)者進(jìn)行虛擬實驗操作訓(xùn)練,多通道、多角度提高學(xué)習(xí)者的手腦協(xié)作能力,進(jìn)而激發(fā)學(xué)習(xí)者的學(xué)習(xí)興趣。
關(guān)鍵詞:Unity3D;化學(xué)學(xué)習(xí);虛擬實驗
中圖分類號:TP311
文獻(xiàn)標(biāo)志碼:A
DesignandImplementationofChemicalVirtual
ExperimentSystemBasedonUnity3D
YEShihui
(SchoolofComputerandInformationTechnology,NortheasternPetroleumUniversity,Daqing163318,China)
Abstract:Aimingattheproblemssuchaslimitedoperationconditions,highriskandinsufficientdepthandbreadthofexperimentalteachingcontents,thispaperdesignsanddevelopsavirtualexperimentalsystemappliedinhighschoolchemistryexperimentalteachingbycombiningUnity3Dtechnology.Accordingtotherequirementsofhighschoolchemistryexperimentoutline,thevirtualexperimentsystemisdividedintothreefunctionalmodules:experimentaldemonstrationmodule,threedimensionaloperationmoduleandoperationtestmodule.Keytechnologiessuchasparticlesystemeffectstechnology,themodelmaptextureprocessingtechnology,videocallsandroamingandcollisiondetectiontechnologyareused,andthroughthethreefunctionalmodules,thevirtualexperimentoperationcantrainlearnerswithmultichannelthinkingandimprovethelearnerscooperationabilityofhandsandbrain,inturn,stimulatelearnersinterestinlearning.
Keywords:Unity3D;chemicaltraining;virtualexperiment
0引言
化學(xué)是一門以實驗為基礎(chǔ)的科學(xué),實驗儀器陳舊、實驗藥品缺少、實驗室開放時間少,以及一些高危操作影響著實驗在學(xué)校中的展開。為緩解這一教學(xué)現(xiàn)狀,化學(xué)虛擬實驗的引入是非常必要的。相比于傳統(tǒng)實驗,化學(xué)虛擬實驗?zāi)軌蚴怪R從抽象變具體、降低實驗成本、避免安全隱患等。虛擬實驗尤其是桌面式虛擬實驗相較真實實驗成本較低,便于及時更新,學(xué)習(xí)者能隨時隨地使用實驗所需資源。通過使用虛擬實驗,可以完成對虛擬物體的使用操作,獲得與真實實驗相似的現(xiàn)象與結(jié)果,從而掌握在現(xiàn)實環(huán)境中相同的知識與技能,甚至能掌握現(xiàn)實中由于安全因素不能進(jìn)行操作的實驗內(nèi)容,為實驗教學(xué)提供了一種新的方式與思路。虛擬實驗在不同類型的化學(xué)實驗教學(xué)中的作用有很大的差異對于一些安全性高、現(xiàn)象明顯的感知實驗、驗證實驗等采用虛擬實驗教學(xué)可以起到模擬、渲染、立體、交互的輔助作用;對于毒氣性質(zhì)、易燃易爆等化學(xué)實驗教學(xué)有著不可替代的作用,其安全、高效且能給實驗者帶來聲光、溫度等多重感官刺激,甚至可以使實驗效果優(yōu)于真實實驗[1]。
1總體設(shè)計
1.1系統(tǒng)設(shè)計思路
本系統(tǒng)的主要目的是使學(xué)習(xí)者具有更加真實的模擬現(xiàn)實的學(xué)習(xí)環(huán)境,既能促進(jìn)學(xué)生的學(xué)習(xí)興趣還能提高學(xué)生的技能水平,從而完成學(xué)習(xí)目標(biāo),掌握相應(yīng)知識點。通過檢索相關(guān)資料與教材,深入了解相關(guān)化學(xué)實驗操作過程,并結(jié)合迪克凱里教學(xué)設(shè)計理論對系統(tǒng)進(jìn)行開發(fā)。首先在進(jìn)行開發(fā)前,對學(xué)生的學(xué)情與學(xué)習(xí)偏好進(jìn)行分析,確定學(xué)生當(dāng)前水平和要達(dá)到的預(yù)期效果;其次對學(xué)習(xí)目標(biāo)進(jìn)行分析,通過解讀高中化學(xué)實驗大綱中對實驗的要求及課程要求來確定學(xué)習(xí)目標(biāo);最后分析學(xué)習(xí)內(nèi)容和學(xué)習(xí)者,結(jié)合化學(xué)實驗的基本操作流程對系統(tǒng)進(jìn)行設(shè)計。在本化學(xué)虛擬實驗系統(tǒng)中,學(xué)習(xí)者可以通過觀看演示動畫、動手操作交互動畫等方式熟悉實驗流程及實驗用品,掌握實驗過程中的反應(yīng)原理,并通過三維考試模塊對所學(xué)知識進(jìn)行評價。
系統(tǒng)總體設(shè)計使用兩層邏輯架構(gòu)模式,虛擬實驗部分采用的是三維交互式虛擬環(huán)境開發(fā)框架,選擇具有跨多種平臺優(yōu)勢的開發(fā)軟件unity3D進(jìn)行開發(fā);系統(tǒng)管理部分采用的是統(tǒng)一的管理框架。開發(fā)過程要依據(jù)真實的化學(xué)實驗過程,首先對化學(xué)實驗分類以及實驗過程呈現(xiàn)方式進(jìn)行設(shè)計,并編寫對應(yīng)的腳本;其次利用3DMAX軟件建立模型導(dǎo)入unity3D中根據(jù)腳本制作交互動畫;最后將構(gòu)建好的資源匯總到高中化學(xué)虛擬實驗系統(tǒng)中。本系統(tǒng)選取“氯氣的實驗室制法”、“銅與濃硫酸反應(yīng)”、“乙醇的消去反應(yīng)”為主要實驗對象進(jìn)行設(shè)計開發(fā),每個實驗都包括三個不同的功能模塊,以保證學(xué)習(xí)者能夠順利完成學(xué)習(xí)目標(biāo)。如圖1所示。
1.2功能實現(xiàn)
本系統(tǒng)通過3DMAX制作模型,將生成的FBX格式的模型導(dǎo)入到unity3D中進(jìn)行交互場景的搭建[2]。場景中人物、地板、墻壁、實驗儀器等相關(guān)工具需要放置在合適的位置以便后續(xù)交互動作的開發(fā)。根據(jù)學(xué)習(xí)者的需要使用本系統(tǒng)時,分別進(jìn)行系統(tǒng)的:實驗演示模塊、三維操作模塊、操作考試模塊三種功能模塊進(jìn)行練習(xí)。
(1)實驗演示模塊
本模塊以視頻方式呈現(xiàn),此模塊在三維操作模塊的基礎(chǔ)上進(jìn)行開發(fā)。實際操作三維操作模塊,并將這一操作過程用EV錄屏軟件錄制下來。錄制視頻時鼠標(biāo)設(shè)置為不顯示光標(biāo);畫質(zhì)級別設(shè)置為“原畫”;文件格式保存為.mp4其他均為默認(rèn)設(shè)置。這樣既保證了視頻的清晰度,又方便后續(xù)的剪輯。將錄制好的視頻導(dǎo)入到Premiere中進(jìn)行剪輯,去掉多余的視頻片段,再將實驗過程完整的串聯(lián)起來。視頻中伴隨語音講解,將配好錄音導(dǎo)入Premiere中,并將語音正確對應(yīng)到合適的位置,說明實驗的儀器、方法、用量等。最后利用AE進(jìn)行片頭、片尾的制作。在使用此系統(tǒng)時首先接觸演示模塊能夠讓使用者對所學(xué)知識有一個初步的了解與掌握,對后續(xù)的學(xué)習(xí)起到先導(dǎo)作用。
(2)三維操作模塊
三維操作模塊使用3DMAX與unity3D技術(shù)開發(fā)出可以進(jìn)行實時交互的可操作三維交互場景。在此功能模塊中通過線性腳本控制實現(xiàn)交互動畫,每一個腳本對應(yīng)一到兩個動畫。學(xué)習(xí)者使用時可以通過每個步驟文字提示內(nèi)容進(jìn)行操作,文字提示功能通過在腳本中加入publicstringnextText語句,并在unity3D前臺輸入文字提示內(nèi)容。操作過程中,將需要使用的工具放置在屏幕右側(cè)UI中,UI界面中的圖片在Photoshop中修改美化,放在相應(yīng)的資源包中,如圖2所示。
新建ToolControl腳本,并設(shè)置UI個數(shù),設(shè)置完成之后,將對應(yīng)的圖片拖拽至ToolControl腳本中使用。當(dāng)操作需要使用工具時,相應(yīng)的工具高亮提示。除此之外在本模塊中實現(xiàn)了真實化學(xué)實驗中產(chǎn)生的各種效果,包括火焰的燃燒、氣體的產(chǎn)生以及各種實驗試劑顏色的變化,增加本系統(tǒng)的真實感。
(3)操作考試模塊
操作考試模塊與三維交互模塊開發(fā)過程一致,增加計分的功能。在原有腳本中增加添加elseif條件判斷語句,判斷鼠標(biāo)點擊的物體是否正確,若鼠標(biāo)點擊正確則得分,并將得分計入到總分中,若點擊錯誤不得分,錯誤原因系統(tǒng)調(diào)用XML文檔在結(jié)果頁面中顯示出來。此功能模塊用來對學(xué)習(xí)者的學(xué)習(xí)成果進(jìn)行檢驗,代碼如下。
if(
gameObject.GetComponent
StaticVar.iconName=="jjd"&&
gameObject.GetComponent
{
ClickObj=gameObject.GetComponent
if(ClickObj.name==stepClickObj.name)
{
transform.GetComponent
script_xuesheng.true_false[0]=true;
jiujingdeng.SetActive(true);
Cursor.lockState=CursorLockMode.Locked;
StartCoroutine(wait());
}
elseif(ClickObj.name!=stepClickObj.name)
{
transform.GetComponent
script_xuesheng.true_false[0]=false;
jiujingdeng.SetActive(true);
Cursor.lockState=CursorLockMode.Locked;
StartCoroutine(wait());
}
2關(guān)鍵技術(shù)
2.1火焰粒子系統(tǒng)特效技術(shù)
粒子系統(tǒng)是unity3D中的重要部分,粒子是個動態(tài)產(chǎn)生的過程,粒子模塊通過粒子曲線編輯器使使用者創(chuàng)建出各種各樣的粒子效果。在很多化學(xué)實驗中都需要有加熱的操作,本系統(tǒng)中為實現(xiàn)火焰的真實效果,采用的是unity3D自帶的Particlesystem資源[3]。并在Renderer處的Material和Trail選擇ParticleSmokeWhite這個貼圖。然后再調(diào)整相關(guān)的屬性,duration設(shè)為1,startliftime設(shè)為1,startspeed設(shè)為2,startsize設(shè)為3。火焰底部位置較小,因此在shape這個地方將angle設(shè)為0,radius設(shè)為0.3。接下來設(shè)置火焰的形狀,火焰的形狀是
底部小、中部大、頂端小的特點因此設(shè)置sizeoverlifetime來調(diào)整其變化的曲線,調(diào)整時要注意觀察火焰的實時變化,以期調(diào)到滿意的形狀[4]。除此之外火焰分為內(nèi)焰、外焰,內(nèi)焰的顏色一般為藍(lán)色,外焰的顏色為黃色并接近于透明狀態(tài),因此在coloroverlifetime中把火焰底部的顏色設(shè)置為藍(lán)色,中間部分為黃色,同時調(diào)整火焰上方的透明度為0,使火焰在顏色上呈現(xiàn)出過度的效果,這樣火焰效果更為逼真,如圖3所示。
2.2模型貼圖紋理處理技術(shù)
建模時應(yīng)對模型材質(zhì)進(jìn)行選擇,為了避免文件量過大因此,一些模型無需制作過于精細(xì),所以采取貼圖的形式,不僅能夠增加模型的真實感,又可以減少模型的面數(shù),保證模型最基本的效果,提高交互場景的運行速度。如場景中墻壁、窗戶、地板等無需展示細(xì)節(jié)的模型,就選擇通過貼圖的方式來賦予材質(zhì)。對于一些透明玻璃的實驗器材,如燒杯、溫度計、酒精燈等,則需要在3DMAX中選擇材質(zhì)編輯器中的(p)Phong對材質(zhì)的不透明度設(shè)置為20,高光級別設(shè)置為80,光澤度13,柔化0.19,并將材質(zhì)賦予給目標(biāo)物體。
2.3視頻的調(diào)用技術(shù)
三維操作模塊中,使用者可以通過動手操作來完成化學(xué)實驗的完整流程。包括實驗發(fā)生裝置的連接、氣密性檢驗、反應(yīng)物的檢驗等。如銅與濃硫酸反應(yīng)實驗中將濕潤的石蕊試紙通入集氣瓶中,試紙顏色褪色這一步驟首先通過動畫的形式呈現(xiàn),動畫結(jié)束后,再調(diào)用真實世界中對應(yīng)的實驗操作視頻。這樣不僅能夠規(guī)范使用者的實驗操作手法,也能夠加深使用者的印象。首先在Assets中新建StreamingAssets,放入想要調(diào)用的視頻,新建Canvas放置視頻及相應(yīng)控件,然后通過Maincamera中相應(yīng)代碼對視頻進(jìn)行調(diào)用,代碼如下。
voidStart()
{
GameObjectcanvas=GameObject.Find("Canvas");
video=canvas.transform.Find("Video").gameObject;
videoContrl=video.GetComponent
}
voidUpdate()
{
if(gameObject.GetComponent
gameObject.GetComponent
gameObject.GetComponent
isDone==false)
{
video.SetActive(true);
videoContrl.OnPlayButton();
}
if(videoContrl.playOver==true){
video.SetActive(false);
videoContrl.playOver=false;
transform.GetComponent
gameObject.GetComponent
isDone=true;
gameObject.GetComponent
Cursor.lockState=CursorLockMode.None;
}
}
2.4物漫游技術(shù)
場景中選取第三人稱視角,并將在此場景中主攝像機(jī)跟隨unity3D自帶人物移動來改變視角,因此當(dāng)控制人物行走時,攝像機(jī)的視角也會發(fā)生相應(yīng)的變化。設(shè)置方式如圖4所示。
將第三人稱視角拖拽到主攝像機(jī)控制目標(biāo)中去。操作完畢后運行系統(tǒng),人物漫游實現(xiàn)的主要功能包括:按W、A、S、D鍵,人物分別向前、左、后、右方進(jìn)行移動,從而更換人物視角[5]。
2.5碰撞檢測技術(shù)
當(dāng)漫游角色在試驗場景里進(jìn)行交互操作時,與實驗場景里的模型發(fā)生碰撞是不可避免的,本系統(tǒng)的試驗場景中主要模型有實驗臺、座椅、立柜以及各種實驗儀器為了避免碰撞時發(fā)生“穿墻”現(xiàn)象,漫游系統(tǒng)必須能及時檢測到碰撞并做出響應(yīng),有時還需要通過碰撞檢測技術(shù)來輔助規(guī)劃運動路徑,避免發(fā)生碰撞。Unity3D中內(nèi)置了6種碰撞器,分別是boxcollider(盒子碰撞器)、spherecollider(球體碰撞器)、capsulecollider(膠囊碰撞器)、meshcollider(網(wǎng)格碰撞器)、wheelcollider(車輪碰撞器)、terriancollider(地形碰撞器)。這些碰撞器的基本思想就是通過對包裹住要發(fā)生碰撞的模型的幾何體進(jìn)行碰撞檢測,從而判斷物體模型是否發(fā)生碰撞[6]。本系統(tǒng)中采用的是BoxCollider(盒子碰撞器)。因此在模型上建立BoxCollider,并將其大小調(diào)整至物體大小相等或相似的長方體,作為試驗場景中的墻壁、實驗桌、椅子等。例如:在本系統(tǒng)中,當(dāng)人物走到實驗桌前時,若沒有給實驗桌加BoxCollider的效果,人物就會直接穿過實驗桌,加上BoxCollider后,人物就會在實驗桌前面停止,不會發(fā)生“穿墻”的現(xiàn)象。
3總結(jié)
本文通過使用3DMAX和unity3D技術(shù)實現(xiàn)化學(xué)虛擬實驗系統(tǒng),該系統(tǒng)能夠更加真實的模擬現(xiàn)實實驗環(huán)境、易于操作并且方便使用者進(jìn)行反復(fù)練習(xí)、彌補(bǔ)傳統(tǒng)實驗教學(xué)的不足。在普通高中的實際教學(xué)中使用后發(fā)現(xiàn),本虛擬實驗系統(tǒng)不僅有助于授課教師進(jìn)行實驗的講解與演示,更能極大程度的吸引學(xué)生的注意力、提高學(xué)生的學(xué)習(xí)興趣。此外,本系統(tǒng)在用戶界面設(shè)計及交互設(shè)計方面還有不足之處還需進(jìn)行改進(jìn),將其建成一個更良好的實驗系統(tǒng)。
參考文獻(xiàn)
[1]伍婷,許蘇宜,張亞鵬,等.虛擬實驗技術(shù)在化學(xué)實驗教學(xué)中的應(yīng)用與實踐[J].化學(xué)教育,2017,38(5):5861.
[2]張嘉璐.基于Unity3D的VR化學(xué)虛擬實驗開發(fā)[J].電腦編程技巧與維護(hù),2018(6):169170.
[3]孫寧,劉賢梅,田楓,等.基于Unity3D的機(jī)械清罐應(yīng)急處置系統(tǒng)的設(shè)計與實現(xiàn)[J].微型電腦應(yīng)用,2018,34(8):79.
[4]火焰粒子效果-CSDN博客[EB/OL].(加上載日期/瀏覽日期)https://blog.csdn.net/DDghsot/article/details/80488036.2018.05.28.
[5]張典華,陳一民.基于Unity3D的多平臺虛擬校園設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2014,24(2):127130.
[6]朱喜基,馮振輝.基于Unity3D虛擬校園漫游碰撞檢測的研究[J].江蘇科技信息,2018,35(11):6668.
(收稿日期:2019.08.17)