林適遙 張正陽 陳曦 邱英 石奕凡
摘? 要:在“新工科”建設(shè)與疫情防控常態(tài)化管理的雙重背景下,由于實(shí)驗(yàn)教學(xué)拓展性低,實(shí)驗(yàn)設(shè)備維護(hù)成本高等原因,工科實(shí)驗(yàn)中精密測(cè)量教學(xué)難以達(dá)到較好效果,為此提出一種使用虛擬仿真實(shí)現(xiàn)操作大型精密設(shè)備進(jìn)行測(cè)繪實(shí)驗(yàn)的方法。該方法基于Unity 3D、SolidWorks和3Ds Max搭建可視化交互場(chǎng)景,以萬能工具顯微鏡為原型,使用C++、C#腳本語言進(jìn)行虛擬仿真實(shí)驗(yàn)系統(tǒng)的搭建,再進(jìn)行測(cè)試并生成WebGL文件進(jìn)行B/S架構(gòu)部署。本虛擬仿真實(shí)驗(yàn)操作方便快捷,兼容性強(qiáng),不僅滿足了針對(duì)此實(shí)驗(yàn)的線上教學(xué)需求,而且也對(duì)未來虛擬仿真實(shí)驗(yàn)設(shè)計(jì)探索具有重要參考價(jià)值。
關(guān)鍵詞:虛擬仿真;精密測(cè)量;實(shí)驗(yàn)教學(xué);Unity 3D;仿真開發(fā)
中圖分類號(hào):G642;TH742? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2023)13-0046-07
Virtual Simulation Experiment of Mechanical Part Surveying and Mapping
Based on Unity3D
LIN Shiyao1, ZHANG Zhengyang1, CHEN Xi2, QIU Ying1, SHI Yifan1
(1.College of Mechanical and Electrical Engineering, Harbin Engineering University, Harbin? 150001, China;
2.College of Power and Energy Engineering, Harbin Engineering University, Harbin? 150001, China)
Abstract: Under the dual background of “New Engineering” construction and normalized management of epidemic situation prevention and control, due to low expansion of experimental teaching and high maintenance cost of experimental equipment, it is difficult for precision measurement teaching in engineering experiments to achieve satisfactory results. Therefore, a method of using virtual simulation to operate large precision equipment for surveying and mapping experiments is proposed. This method builds a visual interactive scene based on Unity3D, SolidWorks and 3Ds Max. It takes the universal tool microscope as the prototype, uses C++ and C# script languages to build a virtual simulation experiment system, then tests, and the WebGL files are generated for B/S architecture deployment. This virtual simulation experiment is easy to operate and has strong compatibility, which not only meets the online teaching needs of this experiment, but also has important reference value for future virtual simulation experiment design exploration.
Keywords: virtual simulation; precision measurement; experimental teaching; Unity 3D; simulation development
0? 引? 言
實(shí)驗(yàn)教學(xué)是“新工科”背景下培養(yǎng)創(chuàng)新型人才的重要途徑[1]。在“新工科”建設(shè)與疫情防控常態(tài)化管理的雙重背景下,傳統(tǒng)實(shí)驗(yàn)教學(xué)逐漸難以適應(yīng)日益增長(zhǎng)的教學(xué)需求。工科機(jī)械專業(yè)在新的背景下面臨新的挑戰(zhàn):傳統(tǒng)實(shí)驗(yàn)室平臺(tái)和教學(xué)儀器以演示操作為主,場(chǎng)面熱鬧,收效甚微,拓展性弱,難以開展創(chuàng)新性實(shí)驗(yàn);大型精密實(shí)驗(yàn)教學(xué)儀器價(jià)格昂貴,數(shù)量有限,維護(hù)成本極高,對(duì)實(shí)驗(yàn)室環(huán)境要求嚴(yán)格。在此背景之下,線上實(shí)驗(yàn)教學(xué)逐漸成為各高校實(shí)驗(yàn)教學(xué)中必不可少的一部分。
2022年2月23日,教育部高教司發(fā)布的《教育部高等教育司2022年工作重點(diǎn)》中表示:應(yīng)該加大力度繼續(xù)建設(shè)慕課,建設(shè)開發(fā)一批新形態(tài)教程,具有數(shù)字化、智能化、多介質(zhì)、快速更迭的特點(diǎn),推進(jìn)“虛擬仿真實(shí)驗(yàn)教學(xué)2.0”建設(shè),強(qiáng)化“實(shí)驗(yàn)空
間”平臺(tái)應(yīng)用。由此可見,虛擬仿真實(shí)驗(yàn)資源逐漸成為實(shí)驗(yàn)教學(xué)中重要組成部分。虛擬仿真技術(shù)通過計(jì)算機(jī)對(duì)實(shí)體實(shí)驗(yàn)進(jìn)行模擬仿真,展現(xiàn)不可視的結(jié)構(gòu),模擬真實(shí)精確的實(shí)驗(yàn),以虛代實(shí)、以虛補(bǔ)實(shí),極大程度上降低實(shí)驗(yàn)教學(xué)成本,優(yōu)化實(shí)驗(yàn)教學(xué)資源,增強(qiáng)使用者自主創(chuàng)新意識(shí),進(jìn)一步提高教學(xué)成果[2]。
本文基于Unity 3D等虛擬開發(fā)引擎,通過使用C++、C#腳本語言,對(duì)機(jī)械零件二維測(cè)繪的實(shí)驗(yàn)項(xiàng)目進(jìn)行三維建模與人機(jī)交互開發(fā),搭建虛擬仿真實(shí)驗(yàn)平臺(tái),使學(xué)生等主體能夠更方便快捷地進(jìn)行機(jī)械精度測(cè)量的虛擬仿真實(shí)驗(yàn),順應(yīng)“新工科”疫情常態(tài)化管理趨勢(shì),推動(dòng)線上實(shí)驗(yàn)教學(xué)的發(fā)展。
1? 研究背景概述
本文所仿真的核心實(shí)驗(yàn)設(shè)備——萬能工具顯微鏡,集光學(xué)、視覺機(jī)器、精密機(jī)械等于一體,運(yùn)用了光柵細(xì)分與數(shù)字化技術(shù),具有精度高(1 μm)、檢測(cè)效率高等特點(diǎn),是平面零件二維檢測(cè)的必用儀器。它廣泛地應(yīng)用于各企業(yè)的計(jì)量檢測(cè)、各級(jí)檢測(cè)和校準(zhǔn)試驗(yàn)室以及其他科學(xué)研究等部門的計(jì)量檢測(cè)工作[3]。萬能工具顯微鏡屬于大型精密儀器,價(jià)格昂貴,極易損壞。因此本文提出基于Unity 3D技術(shù)構(gòu)建機(jī)械零件測(cè)繪實(shí)驗(yàn)的虛擬仿真實(shí)驗(yàn)。
Unity 3D是由Unity Technologies公司開發(fā)的專業(yè)引擎,其原本主要應(yīng)用于游戲開發(fā)領(lǐng)域。具有強(qiáng)大的跨平臺(tái)編輯性;多元組件拓展性;shader粒子、煙霧的虛擬場(chǎng)景模擬功能[4]。其強(qiáng)大功能可幫助開發(fā)者更好完成交互場(chǎng)景流程開發(fā)?;赨nity 3D技術(shù)的萬能工具顯微鏡虛擬仿真實(shí)驗(yàn)具有非常好的靈活性和可行性,將萬能工具顯微鏡進(jìn)行了虛擬呈現(xiàn)。
2? 國(guó)內(nèi)外Unity3D技術(shù)虛擬仿真系統(tǒng)研究現(xiàn)狀
2.1? 國(guó)外機(jī)械設(shè)計(jì)虛擬仿真研究狀況
國(guó)外發(fā)達(dá)國(guó)家對(duì)虛擬仿真技術(shù)較為重視,比我國(guó)開始研究的時(shí)間要早。目前國(guó)外較為成熟的虛擬實(shí)驗(yàn)平臺(tái)主要有:美國(guó)奧多明尼昂大學(xué)的讓用戶與實(shí)驗(yàn)機(jī)通過遠(yuǎn)程桌面的方式建立連接進(jìn)行實(shí)驗(yàn)的虛擬實(shí)驗(yàn)系統(tǒng);印度理工大學(xué)通過動(dòng)畫演示,基于JAVA技術(shù),利用網(wǎng)頁腳本實(shí)現(xiàn)虛擬仿真器具[5]。2002年美國(guó)新媒體聯(lián)盟就計(jì)劃把虛擬仿真融入教學(xué)實(shí)驗(yàn)當(dāng)中??屏_拉多大學(xué)建設(shè)了一個(gè)結(jié)構(gòu)化的虛擬仿真實(shí)驗(yàn)室,讓學(xué)生在學(xué)習(xí)的同時(shí)發(fā)揮自主性和創(chuàng)新性。
2.2? 國(guó)內(nèi)機(jī)械設(shè)計(jì)虛擬仿真研究狀況
國(guó)內(nèi)的虛擬仿真教學(xué)應(yīng)用較國(guó)外略晚,但發(fā)展極為迅速。2013年8月,教育部高等教育司印發(fā)了《關(guān)于開展國(guó)家級(jí)虛擬仿真實(shí)驗(yàn)教學(xué)示范中心建設(shè)工作的通知》(教育司函〔2013〕94號(hào)),明確了虛擬仿真實(shí)驗(yàn)教學(xué)是高等教育信息化建設(shè)和實(shí)驗(yàn)教學(xué)示范中心建設(shè)重要內(nèi)容,并決定開展國(guó)家級(jí)虛擬仿真實(shí)驗(yàn)教學(xué)中心建設(shè)工作[6]。2018年6月,教育部認(rèn)定了首批來自91所高校的105個(gè)國(guó)家虛擬仿真實(shí)驗(yàn)教學(xué)項(xiàng)目;2019年3月,再次認(rèn)定來自全國(guó)186所高校的296個(gè)國(guó)家虛擬仿真實(shí)驗(yàn)教學(xué)項(xiàng)目[7]。“985工程”和“211工程”以及“雙一流”高校應(yīng)當(dāng)積極搭建虛擬仿真實(shí)驗(yàn)平臺(tái),涵蓋生物科學(xué)、機(jī)械、電子信息等多種學(xué)科領(lǐng)域,推動(dòng)智能化、個(gè)性化、普適化的實(shí)驗(yàn)教學(xué)新模式。如今良好的實(shí)踐教學(xué)的重要性越來越凸顯,我國(guó)也在探索虛擬仿真實(shí)驗(yàn)教學(xué)的過程中不斷創(chuàng)新。
3? 虛擬仿真實(shí)驗(yàn)設(shè)計(jì)
本文首先運(yùn)用軟件工程的思想,著眼于用戶需求,分析實(shí)驗(yàn)?zāi)K的實(shí)用功能,來實(shí)現(xiàn)虛擬仿真實(shí)驗(yàn)的開發(fā)[8]。虛擬仿真實(shí)驗(yàn)開發(fā)流程如圖1所示,在具體開發(fā)時(shí),首先根據(jù)實(shí)驗(yàn)器具說明書上的結(jié)構(gòu)圖和實(shí)際觀測(cè)的結(jié)構(gòu),將實(shí)驗(yàn)器具分解成各個(gè)具有獨(dú)立功能的部件,利用SolidWorks分別將各部件進(jìn)行三維建模并進(jìn)行配合,以還原實(shí)驗(yàn)儀器。使用SolidWorks得到的模型格式無法直接被導(dǎo)入U(xiǎn)nity 3D中應(yīng)用,因此還需運(yùn)用3Ds Max將模型轉(zhuǎn)化為可被兼容的格式,導(dǎo)入U(xiǎn)nity 3D,再實(shí)時(shí)調(diào)試場(chǎng)景光源照明和貼圖效果。場(chǎng)景構(gòu)建完成后,進(jìn)行實(shí)時(shí)運(yùn)動(dòng)仿真程序設(shè)計(jì),完成系統(tǒng)交互功能設(shè)計(jì)。系統(tǒng)搭建完成后,對(duì)實(shí)驗(yàn)系統(tǒng)進(jìn)行性能測(cè)試,最后生成可執(zhí)行文件和WebGL文件,采用B/S架構(gòu)部署到服務(wù)器上,進(jìn)一步進(jìn)行在線測(cè)試。由于實(shí)驗(yàn)不存在安全事故隱患,學(xué)生可以獨(dú)立地反復(fù)完成實(shí)驗(yàn),多次進(jìn)行仿真實(shí)驗(yàn)不僅能夠提高操作熟練程度,還能夠幫助學(xué)生主動(dòng)分析問題、解決問題,牢固所學(xué)理論知識(shí),提高學(xué)生的科研素質(zhì),克服了傳統(tǒng)實(shí)驗(yàn)中存在的不安全性、高投入、理論知識(shí)難以理解等問題,有效地提升了實(shí)驗(yàn)教學(xué)的質(zhì)量[9]。
4? 虛擬仿真實(shí)驗(yàn)實(shí)現(xiàn)
4.1? 三維建模及虛擬場(chǎng)景構(gòu)建
對(duì)于Unity3D而言,場(chǎng)景建模一般有兩種方式:第一種方式是憑借Unity3D自帶的建模工具進(jìn)行場(chǎng)景建模。Unity3D自身攜帶的建模工具可以便捷且快速地構(gòu)建出一些常見的幾何體,同時(shí)也可以通過設(shè)置各項(xiàng)參數(shù)模擬出逼真的地形、植物等不規(guī)則圖形,還可以設(shè)置天空盒,但在面對(duì)復(fù)雜的機(jī)械模型時(shí)就顯得相形見絀,不便于構(gòu)造精確的幾何和裝配模型;第二種方式則是憑借其他建模軟件構(gòu)建三維模型,再用與Unity 3D相兼容的格式將模型導(dǎo)入其中使用。由于本項(xiàng)目主要模型為精密的機(jī)械部件,Unity 3D自身的建模工具難以將精密的機(jī)械部件準(zhǔn)確地建模,所以項(xiàng)目方案選擇主要面向機(jī)械領(lǐng)域的SolidWorks作為建模工具,輔以3Ds Max進(jìn)行格式轉(zhuǎn)換與編輯優(yōu)化,嚴(yán)格按照萬能工具顯微鏡的實(shí)際尺寸和比例建模,最后用Unity 3D自帶的建模工具構(gòu)建實(shí)驗(yàn)室環(huán)境,實(shí)現(xiàn)對(duì)實(shí)驗(yàn)儀器和環(huán)境的最大限度還原。
本項(xiàng)目以使用SolidWorks與Unity 3D聯(lián)合建模進(jìn)行虛擬場(chǎng)景構(gòu)建為基本思路,構(gòu)建虛擬場(chǎng)景的流程如圖2所示。本虛擬仿真實(shí)驗(yàn)的建模包含虛擬儀器建模與虛擬環(huán)境建模兩部分。
虛擬儀器建模即是對(duì)萬能工具顯微鏡及其待測(cè)零件進(jìn)行3D建模。首先對(duì)實(shí)驗(yàn)儀器萬能工具顯微鏡的主機(jī)各部件與待測(cè)零件進(jìn)行實(shí)體測(cè)繪,結(jié)合說明書,在SolidWorks進(jìn)行建模并裝配,確定各部件尺寸與位置關(guān)系,導(dǎo)出step格式的模型文件;3Ds Max作為第三方軟件將專業(yè)模具設(shè)計(jì)軟件建立的模型導(dǎo)入或根據(jù)現(xiàn)有模型重新建立新的模型,建模完成后,將模型轉(zhuǎn)換為FBX格式[10],以供導(dǎo)入U(xiǎn)nity 3D使用;還可以將模型在Unity 3D中進(jìn)行進(jìn)一步的編輯與貼圖。
虛擬環(huán)境建模即虛擬仿真實(shí)驗(yàn)室的場(chǎng)景建模。虛擬仿真實(shí)驗(yàn)室的作用主要是增強(qiáng)虛擬仿真實(shí)驗(yàn)的真實(shí)感,優(yōu)化使用體驗(yàn),對(duì)具體的交互操作影響較小,且大多可以由簡(jiǎn)單幾何體組成,因此直接使用Unity 3D中自帶的建模工具進(jìn)行搭建。
虛擬設(shè)備與虛擬環(huán)境分別搭建結(jié)束后,將兩部分進(jìn)行整合,并根據(jù)要求實(shí)時(shí)改變燈光、攝像機(jī)等參數(shù),完成整個(gè)建模過程。
虛擬儀器建模是建模工作中的核心要點(diǎn)。虛擬仿真實(shí)驗(yàn)操作過程中,萬能工具顯微鏡的各部件之間具有明顯的層級(jí)關(guān)系,需要保證在一些部件移動(dòng)時(shí),其余部件保持相對(duì)靜止。例如:當(dāng)萬能工具顯微鏡的縱向滑臺(tái)相對(duì)于底座移動(dòng)時(shí),縱向滑臺(tái)上搭載的部件如玻璃工作臺(tái)、頂針架也將一起移動(dòng),而橫向滑臺(tái)不移動(dòng);當(dāng)萬能工具顯微鏡的橫向滑臺(tái)相對(duì)于底座移動(dòng)時(shí),橫向滑臺(tái)上搭載的部件例如玻璃工作臺(tái)也將一起移動(dòng),而縱向滑臺(tái)不移動(dòng)。此時(shí),我們引入父子層級(jí)關(guān)系對(duì)各個(gè)模型加以定義,保證層級(jí)關(guān)系下的移動(dòng)可以實(shí)現(xiàn)。子物體繼承父物體,而父物體不會(huì)繼承子物體,即子物體跟隨父物體運(yùn)動(dòng),而子物體移動(dòng)時(shí),父物體不隨之運(yùn)動(dòng)[11]。
4.2? 實(shí)時(shí)運(yùn)動(dòng)仿真實(shí)現(xiàn)
通過使用Unity3D虛擬仿真引擎完成實(shí)時(shí)運(yùn)動(dòng)仿真。通過將已有的模型和圖片進(jìn)行分類,分別導(dǎo)入到項(xiàng)目程序中,根據(jù)要求新建不同場(chǎng)景[12]。系統(tǒng)交互包含以下功能:
1)移動(dòng)和拖放。移動(dòng)與拖放是本項(xiàng)目中的基本功能。用戶通過鼠標(biāo)的不同操作來控制模型整體及部分的不同運(yùn)動(dòng),來實(shí)現(xiàn)觀察實(shí)驗(yàn)對(duì)象的結(jié)構(gòu),從而對(duì)儀器的內(nèi)、外部結(jié)構(gòu)有一個(gè)清晰明了的認(rèn)識(shí)[13]。例如:用戶可以通過持續(xù)按住鼠標(biāo)的右鍵并移動(dòng)來實(shí)現(xiàn)控制視角變換;通過長(zhǎng)按鼠標(biāo)左鍵并移動(dòng)來實(shí)現(xiàn)控制模型大小。關(guān)鍵代碼如下:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class LongPress : MonoBehaviour
{
private bool isUp = true;
public bool IsUp { get => isUp; set => isUp = value; }
void Start()
{
EventTriggerListener.Get(gameObject).onDown += OnClickDown;
EventTriggerListener.Get(gameObject).onUp += OnClickUp;
}
void OnClickDown(GameObject go)
{
isUp = false;
StartCoroutine(grow());
}
void OnClickUp(GameObject go)
{
isUp = true;
//img.fillAmount = 0f;
}
private IEnumerator grow()
{
while (true)
{
if (isUp)
{
break;
}
yield
return null;
}
}
}
2)面板按鍵與部件名稱顯示。在每個(gè)按鈕上添加一個(gè)碰撞器,并在OnGUI函數(shù)中定義文本框和矩形框。為保證顯示整潔,可以將矩形框設(shè)定為文本背景,當(dāng)鼠標(biāo)指向按鈕時(shí),觸發(fā)碰撞器對(duì)應(yīng)的OnMouseEnter()廣播事件,然后由場(chǎng)景控制器腳本監(jiān)聽事件并在按鈕附近顯示矩形框與相應(yīng)的描述文本,讓交互步驟更人性化。
3)儀器按鍵交互功能。儀器按鍵的函數(shù)采用面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,為每個(gè)級(jí)別的功能鍵設(shè)置了包括函數(shù)名稱、對(duì)應(yīng)資源路徑、繼承類以及按鍵的次數(shù)等信息的類,然后通過類的調(diào)用來實(shí)現(xiàn)對(duì)函數(shù)的逐級(jí)調(diào)用。
4)數(shù)字鍵盤的輸入和顯示。使用OnGUI函數(shù)創(chuàng)建用來進(jìn)行測(cè)繪圖像的標(biāo)注的輸入框。
5)實(shí)驗(yàn)操作功能模塊。開始進(jìn)入實(shí)驗(yàn)測(cè)繪操作后,每個(gè)相應(yīng)的操作都有對(duì)應(yīng)的UI按鈕,每個(gè)按鈕分別設(shè)置有碰撞器。當(dāng)鼠標(biāo)移動(dòng)至碰撞器所在坐標(biāo)范圍時(shí),鼠標(biāo)就會(huì)變成一只小手來表示可交互。關(guān)鍵代碼如下:
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class CursorChange : MonoBehaviour
{
private Texture2D cursorTexture;
private bool IsPointerOver;
void Start()
{
cursorTexture = Resources.Load("CursorImage") as Texture2D;
Cursor.SetCursor(null, new Vector2(43f, 0f), CursorMode.Auto);
IsPointerOver = false;
}
private void Update()
{
if (EventSystem.current.IsPointerOverGame
Object())
OnMouseEnter();
else
OnMouseExit();
}
private void OnMouseEnter()
{
if (!IsPointerOver)
{
Cursor.SetCursor(cursorTexture, new Vector2(43f, 0f), CursorMode.Auto);
IsPointerOver = true;
}
}
void OnMouseExit()
{
if (IsPointerOver)
{
Cursor.SetCursor(null, new Vector2(43f, 0f), CursorMode.Auto);
IsPointerOver = false;
}
}
}
在各項(xiàng)測(cè)繪前準(zhǔn)備工作都完成的狀態(tài)下,才能開始測(cè)繪操作。給每個(gè)可交互的儀器都分別設(shè)置一個(gè)按鈕事件,當(dāng)點(diǎn)擊該按鈕時(shí),執(zhí)行其按鈕事件。關(guān)鍵代碼如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Experiment_ScenceControllerScript : MonoBehaviour
{
private Vector3 OriginalHorizental, OriginalVertical, OriginalUpright;
[SerializeField] private float VerticalLimit, HorizentalLimit, UprightLimit;
private GameObject HorizentalPlatform, VerticalPlatform, UprightPlatform;
private GameObject WatcherCamera, QMS3D_Camera, ScopeImage;
private GameObject left, right;
bool showWatcherCamera;
void Start()
{
WatcherCamera = GameObject.Find
("WatcherCamera");
QMS3D_Camera = GameObject.Find
("QMS3D_Camera");
ScopeImage = GameObject.Find
("ScopeImage");
left = GameObject.Find("left");
right = GameObject.Find("right");
showWatcherCamera = true;
left.SetActive(false);
QMS3D_Camera.SetActive(false);
HorizentalPlatform = GameObject.Find("Heng_Xiang_Xi_Tong");
VerticalPlatform = GameObject.Find("Zong_Xiang_Xi_Tong");
UprightPlatform = GameObject.Find("XWJ");
OriginalHorizental = HorizentalPlatform.transform.localPosition;
OriginalVertical = VerticalPlatform.transform.localPosition;
OriginalUpright = UprightPlatform.transform.localPosition;
}
X軸向移動(dòng)代碼如下,其他方向代碼類似:
void Update()
{
if (!GameObject.Find("ButtonMinX").GetComponent
HorizentalPlatform.transform.localPosition = new Vector3(HorizentalPlatform.transform.localPosition.x,
HorizentalPlatform.transform.localPosition.y, HorizentalPlatform.transform.localPosition.z - HorizentalLimit / 1000);
}
public void On_Button_arrow_right()
{
SceneManager.LoadScene("Main_Interface");
}
public void On_Button_right()
{
if (showWatcherCamera)
{
WatcherCamera.SetActive(false);
ScopeImage.SetActive(false);
QMS3D_Camera.SetActive(true);
showWatcherCamera = false;
right.SetActive(false);
left.SetActive(true);
}
}
public void On_Button_left()
{
if (!showWatcherCamera)
{
WatcherCamera.SetActive(true);
ScopeImage.SetActive(true);
QMS3D_Camera.SetActive(false);
showWatcherCamera = true;
right.SetActive(true);
left.SetActive(false);
}
}
6)聲音效果和語音提示。通過在腳本中定義音頻數(shù)組并將事先導(dǎo)入U(xiǎn)nity3D的音頻素材文件拖動(dòng)到對(duì)應(yīng)的變量中,使儀器和界面上的按鈕具有按鍵音效,讓交互更顯生動(dòng)和有反饋感,進(jìn)入實(shí)驗(yàn)操作時(shí)有相應(yīng)的語音操作提示。使用按鈕監(jiān)聽事件控制音頻播放。
4.3? UI界面設(shè)計(jì)
虛擬仿真實(shí)驗(yàn)的創(chuàng)新性不高,實(shí)驗(yàn)的交互方式也較為單一[14]。然而實(shí)驗(yàn)的交互操作是實(shí)驗(yàn)的核心和重點(diǎn),而實(shí)現(xiàn)交互操作,離不開交互界面的引導(dǎo)。在實(shí)驗(yàn)教學(xué)過程中,遵循教學(xué)規(guī)律,設(shè)計(jì)交互界面不僅需要美觀,也需要引導(dǎo)學(xué)生進(jìn)一步思考,使學(xué)生在面對(duì)全新的實(shí)驗(yàn)時(shí)能有自己的流程性思維。通過UI設(shè)計(jì)引導(dǎo),讓學(xué)生獨(dú)立思考完成實(shí)驗(yàn)內(nèi)容。從設(shè)計(jì)者變?yōu)橛脩簦瑥捏w驗(yàn)的角度去感受設(shè)計(jì)的不足[15],從而完善UI設(shè)計(jì)。
首先要引導(dǎo)學(xué)生對(duì)實(shí)驗(yàn)進(jìn)行全局把握。對(duì)整體軟件進(jìn)行感情化理解,以學(xué)生為中心進(jìn)行設(shè)計(jì)。了解實(shí)驗(yàn)設(shè)計(jì)的整體思路,結(jié)合實(shí)驗(yàn)教學(xué)大綱設(shè)計(jì)UI界面,推進(jìn)線下線上實(shí)驗(yàn)相結(jié)合,從而便于學(xué)生在虛擬的場(chǎng)景中完成實(shí)驗(yàn)內(nèi)容、還原實(shí)驗(yàn)設(shè)計(jì)。交互界面是實(shí)現(xiàn)交互功能的直接媒介,因此,交互界面設(shè)計(jì)的合理性和實(shí)用性是實(shí)現(xiàn)交互的前提保障。
其次,根據(jù)平面設(shè)計(jì)原理,結(jié)合基礎(chǔ)美學(xué),運(yùn)用個(gè)人獨(dú)特的視覺思維進(jìn)行設(shè)計(jì)。設(shè)計(jì)時(shí)不僅僅限于美工元素的堆砌,更要注重個(gè)人對(duì)整個(gè)實(shí)驗(yàn)的理解,基于教學(xué)來對(duì)整體實(shí)驗(yàn)進(jìn)行表達(dá)。依靠較高的人文素養(yǎng)和較高的表現(xiàn)力與創(chuàng)造力,靈活融入個(gè)人思維,運(yùn)用Unity3D和Photoshop進(jìn)行UI設(shè)計(jì)。對(duì)整體軟件進(jìn)行感情化理解,以學(xué)生為中心進(jìn)行設(shè)計(jì)。
機(jī)械零件測(cè)繪虛擬仿真實(shí)驗(yàn)的UI界面設(shè)計(jì)經(jīng)歷三個(gè)時(shí)期。首先是,進(jìn)行反復(fù)的線下實(shí)機(jī)操作實(shí)驗(yàn),以此達(dá)到對(duì)實(shí)驗(yàn)的整體過程以及中途可能出現(xiàn)的情況進(jìn)行整體掌握,同時(shí)記錄實(shí)驗(yàn)步驟,構(gòu)思如何進(jìn)行交互界面的設(shè)計(jì)來使用戶可以更好地進(jìn)行虛擬仿真實(shí)驗(yàn)。其次是,搜集符合實(shí)驗(yàn)內(nèi)容主題的素材資料,并通過Photoshop進(jìn)行原創(chuàng)素材制作,同時(shí)也參考其他虛擬仿真實(shí)驗(yàn)的交互界面設(shè)計(jì),結(jié)合傳統(tǒng)平面設(shè)計(jì)原理,挖掘想象力和創(chuàng)造力。用Photoshop將素材有機(jī)結(jié)合,用個(gè)人視覺設(shè)計(jì)思維調(diào)整視覺設(shè)計(jì),使得總體風(fēng)格統(tǒng)一,完成主界面及其他交互界面的設(shè)計(jì)。再者,將設(shè)計(jì)好的基本界面導(dǎo)入U(xiǎn)nity 3D中,在Unity 3D商店中購買按鈕和音效素材,加以設(shè)計(jì)創(chuàng)新,給UI界面貼上按鈕和響應(yīng)的音效素材,使得整個(gè)虛擬仿真實(shí)驗(yàn)過程更加符合實(shí)際,也更具有邏輯性。
除了給設(shè)計(jì)的界面貼上按鈕之外,還要給實(shí)驗(yàn)儀器模型和實(shí)驗(yàn)操作界面貼上按鈕,深度還原實(shí)驗(yàn)的真實(shí)性,實(shí)現(xiàn)交互功能時(shí)更為快捷簡(jiǎn)易。最后,與代碼進(jìn)行結(jié)合。通過Unity3D的PlasticSCM協(xié)同開發(fā)功能,將項(xiàng)目各個(gè)部分結(jié)合在一起,通過代碼來執(zhí)行按鈕事件,進(jìn)行調(diào)試,完成交互。良好的視覺效果會(huì)提升對(duì)用戶的吸引,優(yōu)質(zhì)的視覺效果會(huì)給予用戶強(qiáng)烈的視覺沖擊。視覺吸引力是在用戶的本能層次獲得用戶的關(guān)注,與用戶的第一反應(yīng)息息相關(guān),好的界面設(shè)計(jì)應(yīng)該能夠瞬間引起用戶的注意,并牢牢抓住用戶的心理,在視覺體驗(yàn)中達(dá)到用戶的預(yù)期,引導(dǎo)用戶采取進(jìn)一步行動(dòng)[16]。
5? 結(jié)? 論
本文主要對(duì)船舶機(jī)械零件測(cè)繪實(shí)驗(yàn)展開研究,通過對(duì)實(shí)驗(yàn)儀器進(jìn)行SolidWorks建模、3Ds Max優(yōu)化、Unity 3D調(diào)整等一系列處理,實(shí)現(xiàn)基于Unity 3D引擎、使用C++、C#作為腳本語言開發(fā)的B/S架構(gòu)虛擬仿真實(shí)驗(yàn)的設(shè)計(jì)。如今,虛擬現(xiàn)實(shí)技術(shù)具有可以實(shí)時(shí)渲染虛擬場(chǎng)景以及可快捷構(gòu)建虛擬單元的特點(diǎn)。將Unity 3D等虛擬網(wǎng)絡(luò)技術(shù)與現(xiàn)實(shí)實(shí)驗(yàn)器具相結(jié)合,開發(fā)近于真實(shí)的虛擬實(shí)驗(yàn)系統(tǒng),提高學(xué)生的學(xué)習(xí)興趣與學(xué)習(xí)主動(dòng)性,使得用戶操作時(shí)不受時(shí)間空間約束,解決實(shí)驗(yàn)設(shè)備短缺、實(shí)驗(yàn)場(chǎng)地不足等問題,可實(shí)現(xiàn)資源共享?;赨nity 3D的船舶機(jī)械零件測(cè)繪虛擬仿真實(shí)驗(yàn)的完成不僅僅滿足了針對(duì)此實(shí)驗(yàn)的線上教學(xué)需求,而且也對(duì)未來虛擬仿真實(shí)驗(yàn)設(shè)計(jì)探索具有重要參考價(jià)值,可為其他同類型虛擬仿真實(shí)驗(yàn)項(xiàng)目的開發(fā)提供借鑒。隨著計(jì)算機(jī)技術(shù)的發(fā)展,今后現(xiàn)實(shí)與虛擬融合逐漸加深,未來應(yīng)用將更方便,更人性,讓用戶可以在得到更好體驗(yàn)的同時(shí)獲取更多的知識(shí)。
參考文獻(xiàn):
[1] 劉磊,張嘉鷺.“新工科”背景下工程機(jī)械類虛擬仿真實(shí)驗(yàn)教學(xué)資源建設(shè) [J].實(shí)驗(yàn)技術(shù)與管理,2021,38(1):140-143.
[2] 張寧,趙毅強(qiáng),蘭馗博,等.“新工科”背景下關(guān)于虛擬仿真實(shí)驗(yàn)的幾點(diǎn)思考和建議 [J].實(shí)驗(yàn)技術(shù)與管理,2020,37(3):185-188.
[3] 段偉飛,穆亞娟.萬能工具顯微鏡的基本原理和測(cè)量方法 [J].價(jià)值工程,2018,37(17):239-240.
[4] 陳璜.基于Unity3D、VR等技術(shù)的機(jī)械設(shè)計(jì)虛擬仿真系統(tǒng)構(gòu)建研究 [J].長(zhǎng)沙大學(xué)學(xué)報(bào),2021,35(2):20-25.
[5] 杜月林,黃剛,王峰,等.建設(shè)虛擬仿真實(shí)驗(yàn)平臺(tái) 探索創(chuàng)新人才培養(yǎng)模式 [J].實(shí)驗(yàn)技術(shù)與管理,2015,32(12):26-29.
[6] 季林丹,朱劍瓊,徐進(jìn).國(guó)家級(jí)實(shí)驗(yàn)教學(xué)示范中心十年建設(shè)工作總結(jié) [J].實(shí)驗(yàn)室研究與探索,2014,33(12):143-146.
[7] 高志強(qiáng),王曉敏,閆晉文,等.我國(guó)虛擬仿真實(shí)驗(yàn)教學(xué)項(xiàng)目建設(shè)的現(xiàn)狀與挑戰(zhàn) [J].實(shí)驗(yàn)技術(shù)與管理,2020,37(7):5-9+14.
[8] 朱惠娟.基于Unity3D的虛擬漫游系統(tǒng) [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(10):36-39+65.
[9] 劉佳丹,董曼辰,劉基宏.基于Unity 3D的并條工序?qū)嶒?yàn)虛擬仿真系統(tǒng) [J].絲綢,2022,59(8):48-53.
[10] 李艷娟,王芳.模具裝配虛擬仿真實(shí)驗(yàn)教學(xué)系統(tǒng)的構(gòu)建 [J].模具工業(yè),2017,43(2):68-71+77.
[11] 高國(guó)雪,高輝,焦向東,等.基于Unity3D的焊接機(jī)器人虛擬現(xiàn)實(shí)仿真技術(shù)研究 [J].組合機(jī)床與自動(dòng)化加工技術(shù),2018(3):19-22.
[12] 李曉峰,薛小榮,梁蘭花.基于Unity3D的矢量網(wǎng)絡(luò)分析儀虛擬實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].實(shí)驗(yàn)技術(shù)與管理,2019,36(4):134-137.
[13] 周思潔,楊澤亮,董子和,等.基于Unity3D的氣相色譜儀虛擬仿真實(shí)驗(yàn)系統(tǒng)的構(gòu)建 [J].色譜,2016,34(6):621-624.
[14] 侯慧,朱韶華,張清勇,等.國(guó)內(nèi)外高等學(xué)校虛擬仿真實(shí)驗(yàn)發(fā)展綜述 [J].電氣電子教學(xué)學(xué)報(bào),2022,44(5):143-147.
[15] 涂浩.用戶UI界面設(shè)計(jì)中的教學(xué)吸引力研究 [J].電腦知識(shí)與技術(shù),2022,18(14):129-130+147.
[16] 李雪雪,高博.愉悅情緒在交互界面情感化設(shè)計(jì)中的應(yīng)用研究 [J].湖南包裝,2022,37(5):28-32.
作者簡(jiǎn)介:林適遙(2000—),男,漢族,廣西玉林人,本科在讀,研究方向:機(jī)械設(shè)計(jì)制造及其自動(dòng)化;張正陽(2002—),男,漢族,山西長(zhǎng)治人,本科在讀,研究方向:機(jī)械設(shè)計(jì)制造及其自動(dòng)化;陳曦(2002—),女,漢族,廣西賀州人,本科在讀,研究方向:能源與動(dòng)力類;石奕凡(2002—),男,漢族,山東濟(jì)南人,本科在讀,研究方向:機(jī)械設(shè)計(jì)制造及其自動(dòng)化;通訊作者:邱英(1964—),女,漢族,江西撫州人,高級(jí)實(shí)驗(yàn)師,工學(xué)學(xué)士,主要研究方向:精密測(cè)量。
收稿日期:2023-02-16
基金項(xiàng)目:國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項(xiàng)目