亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于節(jié)奏識別的體感音游設(shè)計(jì)與實(shí)現(xiàn)

        2023-04-14 17:40:19葉元卯羅涵中屈沐妍王哲昊張志鴻
        電腦知識與技術(shù) 2023年6期
        關(guān)鍵詞:游戲設(shè)計(jì)

        葉元卯 羅涵中 屈沐妍 王哲昊 張志鴻

        摘要:伴隨信息科技的發(fā)展,人們的人機(jī)交互需求日漸增加,作為人機(jī)交互的媒介的Leap Motion設(shè)備應(yīng)運(yùn)而生。該文利用Leap Motion對手勢的檢測與識別,結(jié)合Unity3D游戲引擎對識別結(jié)果進(jìn)行處理,并創(chuàng)建出根據(jù)音樂節(jié)奏變化的游戲基本框架,開發(fā)出一款依據(jù)手勢識別進(jìn)行操作的音樂游戲。該系統(tǒng)可以識別簡單的音樂,按節(jié)奏生成方塊并下落,玩家根據(jù)聽到的節(jié)奏利用手勢變化碰撞方塊并消除。實(shí)踐結(jié)果證明該系統(tǒng)識別程度高、效果好,但對于復(fù)雜音樂的節(jié)奏識別有較大誤差,需利用專業(yè)的節(jié)奏識別插件消除誤差。

        關(guān)鍵詞:Leap Motion;Unity3D;節(jié)奏識別;體感音游;游戲設(shè)計(jì)

        中圖分類號:TP311? ? 文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-3044(2023)06-0008-04

        開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)

        0 引言

        從電子游戲誕生以來,人類就一直在探索最適合游玩電子游戲的設(shè)備,從一開始的街機(jī)到電視游戲主機(jī),再到后來將辦公用的鍵盤鼠標(biāo)用于游戲。而近些年,體感識別游戲設(shè)備層出不窮,重力感應(yīng)[1]、紅外感應(yīng)、手勢識別[2]、人體識別等體感識別功能豐富多彩,發(fā)展到最后,VR、AR等概念深入人心。隨著近年來元宇宙概念的興起,作為元宇宙中最能體現(xiàn)真實(shí)性的一環(huán),體感識別也隨之“翻紅”,人們再一次意識到,也許體感控制游戲才是電子游戲操控設(shè)備的終極方式。

        自從2006年日本任天堂公司通過游戲手柄第一次將體感識別引入電視游戲主機(jī)后,體感游戲設(shè)備便不斷發(fā)展,期間有微軟為游戲主機(jī)Xbox發(fā)布的Kinect用于識別人體動作的體感設(shè)備,也有類似索尼推出的配套PS VR使用的PS move用于識別手部動作的體感設(shè)備。除了科技巨頭公司為自己的游戲主機(jī)推出的配套體感設(shè)備外,也有一些公司通過專門制作體感識別設(shè)備,為游戲開發(fā)者與玩家提供廉價(jià)、便攜且可跨平臺使用的體感控制器,Leap Motion便是其中之一[3]。

        Leap Motion是美國LEAP公司出品的一款以手運(yùn)動捕獲為主的體感控制器,利用紅外成像的原理,獲取手的運(yùn)動圖像,檢測并跟蹤手、手指和類似手指的工具,可以實(shí)時(shí)獲取它們的位置、手勢和動作,并將這些靜態(tài)與動態(tài)信息提供給開發(fā)者,以達(dá)到一種自然人機(jī)交互的效果。Leap Motion采集的基本單位是幀,具有很高的捕獲精度。

        1 系統(tǒng)分析與設(shè)計(jì)

        制作基于節(jié)奏識別的體感音游,需要使用Leap Motion控制器對用戶的手勢進(jìn)行識別,在UI界面中進(jìn)入游戲操作,在游戲中根據(jù)音樂的節(jié)奏,生成下落的立方體,通過對虛擬手模型與立方體進(jìn)行碰撞檢測,利用得分系統(tǒng)進(jìn)行得分,并最終展示分?jǐn)?shù)。

        1.1 UI界面

        UI界面是連接用戶和游戲的窗口,是任何游戲中十分重要的一部分。UI界面可以在瞬間展示給用戶許多信息,也能讓用戶快速判斷當(dāng)前游戲的狀態(tài)與接下來要進(jìn)行的行為。在該系統(tǒng)中UI界面分為兩部分,首先是進(jìn)入游戲前的主菜單界面,該界面擁有“開始游戲”和“退出游戲”兩個選項(xiàng),可以讓玩家在確認(rèn)自己已經(jīng)做好準(zhǔn)備時(shí)自行開始游戲,不至于突然開始游戲,讓人措手不及。同時(shí)主菜單界面也需要用手勢控制以開始,這樣在游戲開始前便檢測出手勢識別是否正確,避免進(jìn)入游戲時(shí)因手勢識別錯誤導(dǎo)致游戲錯誤運(yùn)行。另一部分UI界面則為進(jìn)入游戲內(nèi)的分?jǐn)?shù)顯示,用戶可以實(shí)時(shí)看到自己當(dāng)前的分?jǐn)?shù),了解自己在本次游戲中操作是否到位,激勵用戶不斷強(qiáng)化自己的操作,從而獲得更高的分?jǐn)?shù)。

        1.2 手勢識別

        手勢識別是本系統(tǒng)中最重要的一環(huán),所有的行為、操作均基于Leap Motion控制器對手勢的體感識別,并由這些手部的動作輸出相應(yīng)的指令。LeapMotion將采集到的手掌、手指的位置和其他信息保存在一幀(Frame)中,并分配唯一的ID,算法通過檢測幀中數(shù)據(jù)的連續(xù)性,生成運(yùn)動信息。而該系統(tǒng)讀取手勢運(yùn)動信息的橫坐標(biāo)移動信息,轉(zhuǎn)換為場景中用于控制碰撞擋板的橫坐標(biāo)運(yùn)動指令,從而達(dá)到手勢識別的效果。

        1.3 音樂節(jié)奏分析

        音樂節(jié)奏是本系統(tǒng)中游玩的主要要素,用戶需要根據(jù)音樂節(jié)奏通過手勢控制場景中的擋板左右橫移以碰撞立方體從而得分。而立方體是根據(jù)音樂節(jié)奏生成的,因?yàn)榱⒎襟w從屏幕頂端生成到下落至擋板所在水平高度需要一定時(shí)間,所以不可能按照音樂的節(jié)奏來生成立方體,而是要提前根據(jù)音樂的節(jié)奏手動設(shè)置好立方體的生成時(shí)間,從而使立方體與用戶控制的擋板碰撞時(shí),剛好能對上音樂的節(jié)奏,達(dá)到節(jié)奏識別的目的。

        1.4 碰撞檢測

        本系統(tǒng)中將音樂的節(jié)奏重音物化為一個個立方體,而用戶游玩的操作則是控制場景中的擋板左右移動,并碰撞到這些代表音樂節(jié)奏的立方體,故而碰撞檢測是該系統(tǒng)中必需的。首先要檢測擋板與立方體的碰撞,這是用戶正常游玩并根據(jù)節(jié)奏消除立方體時(shí)的碰撞檢測,得分增加。其次還要在立方體超出界外進(jìn)行碰撞檢測,因?yàn)榇藭r(shí)代表用戶未能將此立方體按節(jié)奏消除,此時(shí)為用戶的一次失誤,需要進(jìn)行扣分。

        之所以要在每次碰撞時(shí)銷毀立方體,是因?yàn)檫^多的立方體堆積會占用大量資源,從而可能使游戲卡頓甚至崩潰。

        1.5 得分系統(tǒng)

        得分系統(tǒng)是本系統(tǒng)的精華部分,有了得分功能,就能激勵用戶反復(fù)游玩并超越自我,若沒有得分系統(tǒng),用戶在游玩一遍后便不會再想繼續(xù)游玩,這是任何游戲制作者都不愿意看到的情況。此外,實(shí)時(shí)顯示游戲分?jǐn)?shù)也是激勵用戶的手段之一,用戶在不同場次游戲中的同一時(shí)間節(jié)點(diǎn)看到的分?jǐn)?shù)不同,勢必會在用戶心理上產(chǎn)生影響,會讓他們提前意識到這局游戲得分會更高還是更低,從而影響在后續(xù)游玩中的戰(zhàn)術(shù)是選擇更加謹(jǐn)慎抑或是放手一搏。

        2 系統(tǒng)具體實(shí)現(xiàn)

        2.1 前期準(zhǔn)備與環(huán)境搭建

        2.1.1 前期準(zhǔn)備

        首先,需要購置一個Leap Motion Controller,這是本項(xiàng)目進(jìn)行體感識別的主要設(shè)備。其次,需要下載好Unity3D游戲引擎,且必須是5.0及以上版本。將Leap Motion Controller連接電腦,在Ultraleap[4]官方網(wǎng)站下載好Leap Motion Controller的配套軟件Ultraleap Tracking Software,如果Leap Motion Controller配置成功,則Ultraleap Tracking Software圖標(biāo)會顯示為綠色,并且顯示“Ultraleap tracking device connected”字樣,此時(shí)前期準(zhǔn)備完成。

        2.1.2 環(huán)境搭建

        打開Unity3D游戲引擎[5]并且新建一個項(xiàng)目,在該項(xiàng)目中創(chuàng)建好場景。在Ultraleap官方網(wǎng)站下載UNITY包文件 (.UNITYPACKAGE),可以用.unitypackage文件獲取用于Unity的Ultraleap手部追蹤插件。進(jìn)入U(xiǎn)nity3D游戲引擎中新建好的項(xiàng)目,右鍵單擊Assets窗口,轉(zhuǎn)到Import Package并左鍵單擊Custom Package,找到Tracking.unitypackage并導(dǎo)入。這包括核心、交互引擎和手模塊。核心模塊是Unity 和 Ultraleap 手部跟蹤軟件之間的最小接口,渲染一組基本的手,將對象附加到手關(guān)節(jié)等。交互引擎是手和 VR 控制器的物理表示,通過交互啟發(fā)式進(jìn)行微調(diào),以提供功能齊全的交互API,包括抓握、投擲、穩(wěn)定的“軟”碰撞反饋和手部接近檢測,還附帶了一套示例和預(yù)制件。手模塊是一組腳本,可幫助用戶將 Ultraleap 數(shù)據(jù)綁定到自己的手部資產(chǎn)。提供裝配用戶自己的 3D 手部資產(chǎn)所需的工具,包括強(qiáng)大的手部自動綁定工具,還配備了一系列優(yōu)化和裝配的手模型,導(dǎo)入成功后,前期準(zhǔn)備與環(huán)境搭建成功。

        2.2 UI界面

        本系統(tǒng)中的UI界面主要分為兩部分:一部分是進(jìn)入游戲的主菜單界面,另一部分是游戲內(nèi)得分及音樂結(jié)束時(shí)的結(jié)算界面。

        2.2.1 主菜單界面

        主菜單界面中,最上方白色字體為本系統(tǒng)的標(biāo)題,中間左右兩邊圓圈代表“開始游戲”和“退出游戲”,用戶控制虛擬手移動來操控左右2個小方塊移動,通過獲取小方塊的坐標(biāo)位置來判斷小方塊是否放置在某個圓圈內(nèi),當(dāng)放置時(shí)間超過2秒即會執(zhí)行該圓圈代表的方法:“開始游戲”為執(zhí)行SceneManager.LoadScene(1)跳轉(zhuǎn)至游戲開始場景;“退出游戲”執(zhí)行Application.Quit()直接關(guān)閉游戲。

        2.2.2 游戲內(nèi)界面

        游戲內(nèi)界面既有左上角的實(shí)時(shí)得分顯示,又有音樂結(jié)束時(shí)的結(jié)算面板。

        左上角得分顯示中,分?jǐn)?shù)會隨著方塊與擋板或Deadline的碰撞,通過函數(shù)score.text = sc.ToString()進(jìn)行加減更新,其中sc為腳本中的分?jǐn)?shù)變量。

        結(jié)算面板會提示“已完成”,并顯示最終得分,左右下角兩個選項(xiàng)分別對應(yīng)SceneManager.LoadScene(0)跳轉(zhuǎn)至主菜單和Application.Quit()直接關(guān)閉游戲。同樣是通過獲取小方塊的坐標(biāo)位置來判斷小方塊是否放置在某個圓圈內(nèi),當(dāng)放置時(shí)間超過2秒即會執(zhí)行該圓圈代表的操作。

        2.3 手勢識別模塊

        2.3.1 虛擬手[6-7]

        從官網(wǎng)導(dǎo)入的Tracking.unitypackage包中包含有手模型HandModels,其中有Capsule Hand Left和Capsule Hand Right,導(dǎo)入場景后,再加入Service Provider (Desktop),這是在桌面應(yīng)用(PC)中對手勢進(jìn)行識別服務(wù)的提供接口,能將Leap Motion硬件檢測到的數(shù)據(jù)轉(zhuǎn)化為手模型的手勢和動作[8]。

        2.3.2 手勢識別

        在游戲場景內(nèi)添加空物體HandController,并添加同名腳本,在腳本內(nèi)聲明左右手模型、LeapProvider[8]以及手勢操控控制的擋板。再用Leap Motion提供的接口API調(diào)用手勢的每一個當(dāng)前幀數(shù)據(jù)[9],將數(shù)據(jù)傳輸至聲明的Frame變量中,再遍歷Frame中的數(shù)據(jù)信息,將每一幀虛擬手的位置信息轉(zhuǎn)化為擋板的位移信息,從而控制擋板左右移動。

        此外,在手勢控制UI界面內(nèi)選項(xiàng)時(shí),也采用同樣的方法,只不過此時(shí)用小方塊代替擋板,發(fā)揮類似鼠標(biāo)的作用,小方塊可以上下左右二維方向上移動,僅需將對擋板控制中把leftCube和rightCube位置信息的y方向也和虛擬手的位置信息綁定好即可[10]。

        2.4 音樂節(jié)奏分析

        2.4.1 識別音樂節(jié)奏并輸出

        使用Unity3D游戲引擎內(nèi)置腳本API AudioSourc.GetSpectrumData(float[] samples, int channel, FFTWindow window)識別音樂的頻譜數(shù)據(jù)塊,并利用Debug.Log()在控制臺輸出重音時(shí)的時(shí)間節(jié)點(diǎn):

        void Start()

        {

        samples = new float[64];

        audioSource.PlayDelayed(1.6f);

        }

        void FixedUpdate()

        {

        curTime += Time.fixedDeltaTime;

        audioSource.GetSpectrumData(samples, 0, FFTWindow.Blackman);

        if(flagTime>0.1&&samples[0]>0.1)

        {

        Debug.Log(curTime);

        flagTime = 0;

        }

        flagTime += Time.fixedDeltaTime;

        }

        其中,變量samples是對音樂片段的采樣頻率,此變量數(shù)據(jù)必須為2的冪數(shù),頻率越大采樣越精細(xì)。而FFTWindow是頻譜分析窗口化類型,F(xiàn)FTWindow.Blackman為常用的一種變量,代表[Wn=0.42-0.5*cosnN+0.08*cos2.0*n/N]。

        2.4.2 根據(jù)節(jié)奏生成立方體

        將時(shí)間節(jié)點(diǎn)記錄下來,計(jì)算出立方體從生成到下落至手勢所控制擋板的高度所需的時(shí)間間隔,將這些時(shí)間節(jié)點(diǎn)減去時(shí)間間隔,即得到一組生成立方體的時(shí)間節(jié)點(diǎn),在這組時(shí)間節(jié)點(diǎn)對應(yīng)的時(shí)間生成立方體,則得到符合音樂節(jié)奏的立方體碰撞效果。

        除此之外,為增強(qiáng)視覺效果,生成的立方體均帶有拖尾,實(shí)現(xiàn)方法為在立方體的預(yù)制體中添加Trail Renderer組件,將Time設(shè)置為0.5,Min Vertex Distance設(shè)置為0.1,并在CubeControl腳本中為生成的立方體隨機(jī)設(shè)置拖尾的顏色。

        2.5 碰撞檢測

        在手勢控制的擋板添加Box Collider碰撞體組件,并勾選is trigger設(shè)置為觸發(fā)器,為擋板設(shè)置標(biāo)簽“Hand”。為生成的立方體預(yù)制體添加Box Collider碰撞體組件和Rigidbody組件使其正常下落。添加腳本判斷擋板和立方體碰撞時(shí)立方體銷毀。

        此外,在場景最下方添加一個空物體Deadline,設(shè)置標(biāo)簽“Deadline”,添加Box Collider碰撞體組件并將碰撞體體積設(shè)置為橫跨從左到右整個屏幕,當(dāng)立方體碰撞到該空物體時(shí),代表該立方體已經(jīng)錯過和擋板碰撞的機(jī)會,即為一次失誤,此時(shí)立方體銷毀。

        2.6 得分系統(tǒng)

        在立方體碰撞到擋板銷毀時(shí)得分加5,碰撞到Deadline銷毀時(shí)得分減10,CubeControl腳本中負(fù)責(zé)計(jì)分的sc變量會相應(yīng)改變,并且實(shí)時(shí)傳輸?shù)経I的“得分”右側(cè)。

        與此同時(shí),在每次游戲結(jié)束時(shí),會將UI中的分?jǐn)?shù)字段傳輸給結(jié)算面板的得分字段。此外,為了增加得分或失分時(shí)用戶的可觀測性,還會在得分或失分位置顯示“Perfect!”或“Miss!”文本,且該文本會隨時(shí)間而逐漸透明直至一秒后消失。

        3 結(jié)束語

        科技不斷發(fā)展,生活也日新月異。隨著5G時(shí)代的來臨。“元宇宙”等虛擬現(xiàn)實(shí)概念不斷被提起與實(shí)踐,人們不斷認(rèn)識到體感識別的廣闊前景,而體感游戲則是體感識別應(yīng)用方向中不可忽視的一大領(lǐng)域。本文旨在為體感識別在音樂游戲上的可行性進(jìn)行試驗(yàn)與嘗試,結(jié)果大體能讓人滿意。但美中不足的是,首先當(dāng)前體感識別技術(shù)還有待提升,精確度并不像傳統(tǒng)的鼠標(biāo)鍵盤那樣可以達(dá)到近100%的準(zhǔn)確識別,且識別的范圍也非常有限,一旦超出范圍便完全不能識別;其次在對音樂的頻譜、鼓點(diǎn)進(jìn)行分析并運(yùn)用于游戲的節(jié)奏時(shí),由于并沒有利用專業(yè)的頻譜解析軟件,所以準(zhǔn)確率不夠高,對于復(fù)雜的音樂難以得到令人滿意的效果,這些都是后續(xù)開發(fā)中有望繼續(xù)提升的部分。但總體而言,本課題對于體感音游的探索有一定價(jià)值,可以為其他類似項(xiàng)目提供經(jīng)驗(yàn),值得開發(fā)者借鑒,具有推廣價(jià)值。

        參考文獻(xiàn):

        [1] 胡弘,晁建剛,林萬洪,等.Leap Motion虛擬手構(gòu)建方法及其在航天訓(xùn)練中的應(yīng)用[J].載人航天,2015,21(3):257-262.

        [2] 李楊韜,禹東川,靳來鵬,等.基于LeapMotion手勢識別的認(rèn)知訓(xùn)練系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2016,24(9):12-14,18.

        [3] 林書坦,尹長青.基于LeapMotion的數(shù)字手勢識別[J].電腦知識與技術(shù),2015,11(35):108-109.

        [4] ULTRALEAP PLUGIN FOR UNITY[DB/OL]. [2022-01-20].https://developer.leapmotion.com/unity#setup-unity -packages.

        [5] Unity - Scripting API[DB/OL].https://docs.unity3d.com/ScriptReference/ index.html.

        [6] 周家樂,賀元昭,章藝敏,等.基于Leapmotion的VR鋼琴及手勢識別的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測試,2020(21):5-9.

        [7] 楊曦中,萬華根.一種基于LeapMotion的靈巧虛擬手抓取交互方法[J].航空電子技術(shù),2021,52(3):1-8.

        [8] 朱惠娟,王軍,朱俊.基于Leap Motion的沉浸式體感交互系統(tǒng)研究[J].微型電腦應(yīng)用,2021,37(2):8-11.

        [9]楊森淼,朱俊亦,李佳芳. 基于Leap Motion的VR交互系統(tǒng)[J].中外交流,2021,28(5):436.

        [10] 胡弘,晁建剛,楊進(jìn),等.Leap Motion關(guān)鍵點(diǎn)模型手姿態(tài)估計(jì)方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2015,27(7):1211-1216.

        【通聯(lián)編輯:唐一東】

        猜你喜歡
        游戲設(shè)計(jì)
        基于HTML5的移動端產(chǎn)品推廣輕游戲設(shè)計(jì)與開發(fā)
        例談英語課堂游戲教學(xué)的設(shè)計(jì)技巧
        以“玩”激趣
        基于中職學(xué)校教育游戲的開發(fā)與應(yīng)用探究
        未來英才(2016年23期)2017-03-01 08:43:50
        VR技術(shù)現(xiàn)況及其未來對游戲設(shè)計(jì)的影響
        科技傳播(2016年19期)2016-12-27 15:58:11
        小學(xué)低年級語文游戲教學(xué)設(shè)計(jì)探討
        考試周刊(2016年99期)2016-12-26 10:05:52
        讓小學(xué)英語閱讀教學(xué)煥發(fā)生機(jī)
        考試周刊(2016年21期)2016-12-16 10:48:38
        兒童弱視在線康復(fù)訓(xùn)練平臺的設(shè)計(jì)與開發(fā)
        浙江衛(wèi)視真人秀《奔跑吧兄弟》節(jié)目特色淺析
        淺談小學(xué)科學(xué)中的游戲設(shè)計(jì)
        美艳善良的丝袜高跟美腿| 无码毛片高潮一级一免费| 久久精品国产久精国产69| 性感熟妇被我玩弄到高潮| 亚洲av永久无码精品网站| 欧洲精品免费一区二区三区| 亚洲毛片在线播放| 自拍偷拍一区二区三区四区| 少妇高潮在线精品观看| 又大又粗又爽18禁免费看 | 文字幕精品一区二区三区老狼 | 久久与欧美视频| 男男做h嗯啊高潮涩涩| 97在线视频人妻无码| 日产精品久久久久久久性色 | 中文乱码字字幕在线国语| 亚洲精品国产av天美传媒| 亚洲色婷婷免费视频高清在线观看| 极品少妇被后入内射视| 亚洲天堂成人av影院| 色偷偷av男人的天堂| 日韩欧美国产丝袜视频| 国产精品自产拍av在线| 无码喷潮a片无码高潮| 精品国内自产拍在线观看| 日韩久久久黄色一级av| 国产亚洲3p一区二区| 国产做国产爱免费视频| 亚洲精品你懂的在线观看| 在线视频一区二区观看| av免费播放网站在线| 亚洲精品无码久久久久秋霞| 精品国产一区二区三区亚洲人| 亚洲精品不卡av在线免费| 精品国产免费一区二区三区 | 人妻尤物娇呻雪白丰挺| 精品久久有码中文字幕| 1000部夫妻午夜免费| 国产精品国三级国产av| av网站免费在线浏览| 成人美女黄网站色大免费的|