張枝 白利


摘要:為了彌補傳統體育課程教學的不足,提高學生的興趣,制作了可用于課堂教學和課后自主學習的虛擬體育系統。從體育動畫、AR動作解析和VR游戲三個方面,分析了虛擬體育系統的構建方法和關鍵技術。提出了利用Vuforia平臺和Unity3D軟件開發AR動作解析,利用Unity3D制作籃球、足球的VR游戲,利用Flash軟件制作體育課程的動作要領動畫,最終使用Unity3D軟件整合各個模塊,輸出易于推廣和應用的手機端應用軟件。
關鍵詞:虛擬現實;虛擬體育系統;Unity3D;AR技術
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2020)21-0164-03
開放科學(資源服務)標識碼(OSID):
隨著2016年虛擬技術元年的開啟,虛擬現實技術普及到了人類生活中的每個角落。虛擬現實技術在教學中的應用也逐步興起,許多學校引入了虛擬教室系統、虛擬實訓平臺、虛擬仿真系統等。引用網龍網絡公司副總裁林偉在2017年6月召開的“虛擬現實教育聯盟大會”上的發言:虛擬現實教育最大的難點在于內容的組織,生產優質內容的門檻太高。2020年在新冠肺炎疫情的影響下,網絡教育又被推到了前端,制作既能適合教育內容又能適應學生特點的虛擬現實系統對網絡教學的成功起到了很重要的作用。本文結合“虛擬體育系統”的設計與開發,圍繞體育項目展開,引入體育動作動畫分解和虛擬游戲技術,對虛擬系統在體育教學中的應用展開設計,為以后更多的體育項目交互化展示提供基礎。
1 虛擬現實技術在體育教學中的作用
虛擬現實與教育的結合越來越緊密,傳統的體育項目教學都是在教室學理論,在操場做運動,學生對體育項目的關鍵動作要領和運動之美不能好好生動的體會,更不能提升學生的學習興趣。特別是中高職學生,他們很多沉迷于手機電腦游戲,對體育項目不感興趣,將動畫技術和虛擬現實技術應用到體育教學中可以優化校園體育項目的教學,讓學生從虛擬體育項目的技藝展示和互動體驗中了解運動原理和運動之美。
通過調研中高職校園的體育項目進行分析,發現專業技能類模塊是職校學生要掌握的主要教學模塊,專業技能類模塊是指在體育教學中涉及專業知識及技能的各種體育項目的教學模塊,常見的項目有籃球、足球、乒乓球、健美操等[1],而籃球和足球也是專業技能較多且受各類學生歡迎的體育項目。根據上述分析,本文遴選出籃球和足球兩個校園體育項目作為開發對象。中高職學校的學生正處于青春期,籃球、足球是他們鍛煉和釋放壓力的理想項目,但目前的教學與訓練存在如下問題:教學形式單一;教學場地不足;教學內容不連貫,課后無法自學;學生專業技能掌握不好時,學習興趣不夠。因此,根據職業學校體育教學存在的問題和籃球、足球的教學與訓練特點,虛擬體育系統需要解決籃球、足球的分解動作學習,引人體育虛擬游戲提高學生的學習興趣,以及補充課后學習。
2 虛擬體育系統的架構
籃球和足球也是競技體育的一種,對動作要求比較高,因此本文采用拍攝關鍵動作,利用動畫模擬動作等進行體育項目的動作難點和動作要領教學。引入AR掃描、體育動作分解動畫和虛擬交互游戲進行虛擬體育系統開發。
2.1 虛擬體育系統分析
虛擬體育系統是根據職業學校體育課的教學和訓練進行設計和制作,主要利用動畫、三維建模技術、AR和VR技術圍繞籃球和足球動作和游戲兩方面進行開發,主要內容包括:
(1)利用動畫制作籃球和足球的關鍵動作展示。
(2)利用AR技術,制作生動的體育動作分解展示,用戶掃描自編教材圖片或者掛圖即可顯示相應動作動畫。
(3)利用VR技術和Unity3D軟件,制作定點投籃和足球射門游戲。同時,利用Unity3D整合資源和應用,開發配合體育課上教學和課下學習的應用系統。
2.2 虛擬體育系統的功能架構
虛擬系統系統的功能架構如圖1所示,遴選了籃球和足球項目進行開發,每個項目又包括了動作教學動畫模塊、AR動作解析模塊和虛擬游戲模塊,最終輸出移動端App應用。
3交互式虛擬體育系統的實現
3.1開發技術分析
3.1.1動畫制作技術
本文利用Flash軟件制作籃球和足球的動作要領動畫,輸出成Gif格式動圖后與AR技術結合,制作虛擬體育系統的AR識別模塊。利用二維動畫的方式來表現動作要領,學生能更直觀簡潔地獲取到體育動作要點。
3.1.2 AR交互技術
AR交互技術(Augmented Reality)是指增強現實技術。目前流行的AR交互技術主要是利用攝像頭掃描某個物體(可以是一張圖片),利用設計好的匹配技術,將真實的環境和虛擬的物體實時疊加在一起顯示。本文的AR識別模塊就是利用Uni-ty3D軟件結合Vuforia平臺來實現,制作出利用手機App掃描體育動作要領圖片,即可彈出相關的體育動作動畫。
3.1.3虛擬現實與三維建模技術
虛擬現實技術( Virtual Reality,VR)是以計算機技術為核心,模擬真實環境或利用計算機技術生成虛擬的數字化環境,用戶借助必要的裝備與數字化環境中的對象進行交互作用、相互影響,產生親臨對應真實環境的感受和體驗[2]。本文利用Unitv3D軟件進行虛擬項目的開發和制作。Unitv3D是一款能夠輕松創建三維游戲、建筑可視化、虛擬現實等互動內容的綜合的游戲開發工具[3],也適用于現在流行的App產品制作。利用Unity3D的UGUI系統制作虛擬體育的菜單、按鈕和場景UI界面,操作簡單、便捷,畫面美觀,用戶體驗效果好。
三維建模技術是開發虛擬現實項目的基礎,目前和虛擬現實開發能較好結合的三維建模軟件有3ds max,maya,Cinema4D等,本文結合了3ds max和Cinema4D兩種建模軟件制作籃球和足球的場景模型,輸出成FBX導人到Unity3D中制作虛擬體育系統。
3.1.4交互技術
本文的交互技術主要是人機交互技術,是指通過計算機的輸入、輸出設備實現人與計算機互動的技術。本文利用Flash制作動畫,利用Unity3D游戲引擎制作AR識別、虛擬游戲和交互式App產品。
3.2 虛擬體育系統設計與實現
3.2.1 虛擬體育系統背景和功能
在中高職學生中,籃球和足球運動是一項具備青春活力的體育活動,定點投籃和足球射門也是體育課常考的項目,將手機游戲和虛擬體育系統結合,可以增加學生對體育課的好感。虛擬體育系統是一款面向職校學生的體育教學游戲App,包括虛擬籃球系統和虛擬足球系統,每個體育項目都制作了動作教學動畫、AR動作解析和虛擬游戲三個模塊。該系統使用了Unity3D引擎,結合Vuforia平臺、Flash軟件、3ds max共同開發,最后輸出成移動端App形式,可以廣泛適用于中高職學生。
3.2.2 虛擬體育系統的具體實現
1)動作教學動畫制作
教學動畫根據籃球、足球課程的動作要點,利用Flash軟件制作各動作要領動畫。籃球主要制作了定點投籃、打球運球姿勢、三步上籃、扣籃等動畫,足球主要制作了顛球、左右踢球、踢球等動畫。所有動畫都用簡潔的線條制作場景元素和動畫效果,以突出動作特點。
2)AR動作解析
AR動作解析模塊利用Vuforia平臺、動作要領動畫和Uni-ty3D共同開發,步驟如下:
(1)將籃球和足球的動作動畫輸出成Gif動圖后,導入到UnitV中。
(2)注冊登錄Vuforia平臺,生成license key和包含圖像目標的數據庫,后續將這2個數據導人到Unity3D進行開發。
(3)因為unity3D不支持Gif動畫的直接展示,因此引入Gi-flmporter插件,將其導人到unitv3D中,制作每張Gif動圖的動畫還原。
(4)Unitv3D中新建AR場景scene,設置“playersetting”里的“XRSetting”選項為“Vuforia Augmented Reality”。創建ARCam-era和ImageTarget對象,在ARCamera里設置license key,在Im-ageTarget對象里設置剛創建的數據包和相應的識別圖片。為ImageTarget對象創建一個2D Sprite子節點,把還原好的要領動畫賦予其屬性“sprite”值,即可在輸出的App中識別動作要領圖片彈出相應的動作要領動畫展示。
3)虛擬投籃和足球射門游戲
虛擬投籃游戲需要學生點擊籃球投籃,限時60秒,統計投中次數,每次投中得分加1。點擊籃球時有技巧,學生必須使用一定力度滑動合適的方向才能投中籃框,通常是直線方向投中概率更大。投中籃框會有特效顯示,加強投中的提示,詳細流程如圖2所示。
實現虛擬投籃游戲的關鍵技術有以下幾個:
(1)投籃力度和投籃方向的獲取與設置:獲取用戶投籃時使用的力度和拖動的方向,為投籃力度設置一個加速度,關鍵代碼如下:
public class Shooting: MonoBehaviour{public int forceX;pub-lic int forceY;public int forceZ;
void OnMouseDownO{start= Input.mousePosition;)
void OnMouseExitO{if(Input.GetMouseButton(0)&&shooting){end= Input.mousePosition;
GetComponentO.isKinematic= false;
GetComponent0. AddForce(new Vector3《(end.x- start.x)*forceX), forceY, forceZ》;}])
(2)60秒時間倒計時設置:設置時間time變量初值為60f,浮點型。投籃開始后,60秒倒計時顯示,按1秒/幀的速度遞減秒數,直到為0游戲結束,關鍵代碼如下:
void StartO{time= 60f;}
void Update0 {if(! gameOver&&!startMenu)( time一=Time.deltaTime;})
(3)投中加分與特效顯示設置:當籃球投中籃框時,籃框獲得觸發,投籃分數自加1,并在指定位置顯示特效,關鍵代碼如下:
void OnTriggerEnter0 {Basketball.score++;
Vector3 position=new Vector3(
transform. position.x, transform. position.y, transform. position.z+0.85n:
Instantiate(effect, position, Quaternion.identity);)
(4)最好成績的判斷與統計:當60秒倒計時結束,游戲結束,這時要統計投籃總得分是否超過歷史得分,超過了則將此次分數保存到籃球最好成績里存到本地文件,供下次讀取,關鍵代碼如下:
void UpdateO{if(time<=0){ if(score > PlayerPrefs. Getlnt(”Best(basketball)”)){
PlayerPt efs.Setlnt(”Best(basketball)”,score);】)】
虛擬足球射門游戲需要學生點擊足球進行點射,限時60秒。為增加射門游戲的趣味性,球門設置了4個不同的得分區域,分別為射進靠近球門上方兩個角的區域得40分,射進球門上方的區域得30分,射進球門左右兩側區域得20分,其他區域得10分,即當學生射擊到不同區域得到不同的分數。得分區域的劃分是依據射門的難易位置進行區分,靠近球框部位的射門得分高,中間的射門得分低。投中球門得分高的區域會有特效顯示,加強投中高分區的提示,詳細流程如圖2所示。
實現虛擬足球游戲的關鍵技術除了射門力度和方向設置、60秒倒計時統計、最好成績的判斷與統計以及特效顯示與虛擬籃球相似外,還包含以下關鍵技術:
(1)按射中不同區域統計不同得分值:場景中球門處先設置幾個不同的得分區域,再設置不同區域對應的不同分值,足球射中球門不同得分區域時獲得相應分值,關鍵代碼如下:
public class Target:MonoBehaviour {public OptionsListaddScore;
public enum OptionsList{fourtyPoints,thirtyPoints,twentv-Points,tenPoints 】
void OnTriggerEnter(C ollider other){
if(other. GetComponent().hasTriggered==false){
if(addScore==OptionsList. fourtyPoints){Soccer. score+=40;)
if(addScore==OptionsList. thirtyPoints) {Soccer. score+=30;1
if(addScore==OptionsList. twentyPoints) {Soccer. score+=20;)
if(addScore==OptionsList. tenPoints) {Soccer. score十=10;))】)
4 結語
本文介紹的虛擬體育系統可以配合中高職學校體育課程的教學,提高學生體育課程學習的積極性。同時本系統也可以用于體育課程的網絡教學,解決當前大多數體育課程無網絡教學資源的弊病。隨著虛擬現實技術的發展和虛擬設備的普及,未來的虛擬教學系統可以模擬真正的虛擬現實環境,讓學生的沉浸感和體驗感更好。
參考文獻:
[1]張翼.職業需求視域下高職體育課程模塊教學研究[Jl.湖北函授大學學報,2017(18):147-149.
[2]李軍.探討在線虛擬現實技術在下一代互聯網的應用和發展[Jl.數字技術與應用,2011(9):113-114.
[3]吳亞峰,于復興.Unity3D游戲開發技術詳解與典型案例[Ml.北京:人民郵電出版社,2012:1-6.
【通聯編輯:代影】
基金項目:福建省中青年教師教育科研項目(項目編號:JAT170938)
作者簡介:張枝(1982-),女,副教授,碩士,主要研究方向為數字媒體技術、虛擬現實。