葉詩慧



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