一種基于Fmod控制游戲音量、音效的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于Fmod控制游戲音量、音效的系統(tǒng)和方法,屬于計(jì)算機(jī)游戲多媒體領(lǐng)域。
【背景技術(shù)】
[0002]音量和音效在游戲中有著舉足輕重的作用。在游戲的設(shè)計(jì)和開發(fā)中,音效是一種重要的藝術(shù)表現(xiàn)表現(xiàn)形式之一。Fmod音頻開發(fā)引擎,能夠讓音效設(shè)計(jì)師設(shè)計(jì)好音效事件,程序員在游戲程序中播放出來,使得音效設(shè)計(jì)師和程序員之間溝通更加方便,大大減少了音效師和程序員之前的耦合。但是,依然有部分音量音效效果使用Fmod不便解決,例如,音效師使用Fmod stud1軟件制作完成音效后,音效音量的大小已經(jīng)確定,而在游戲過程中,需要根據(jù)具體情況進(jìn)行具體調(diào)整,具體實(shí)例如下所示:
I)游戲中有很多音效模塊,如:游戲背景聲音,腳步聲、怪物叫聲、打擊碰撞聲、環(huán)境底噪、技能音量音效等。如果音效模塊版本發(fā)生變化,則需要在游戲中進(jìn)行微調(diào),或者在Fmod逐一進(jìn)行微調(diào),而且在調(diào)整后還需要進(jìn)行重新編譯。
[0003]2)游戲中,在播放背景音樂、腳步音效,環(huán)境底噪、打擊音效時,突然播放一種爆炸的
音效時,而背景聲音卻比較嘈雜,無法清楚的聽到爆炸音效,這時候就會給玩家一種噪音的感覺。然而,游戲設(shè)計(jì)者的目的是讓爆炸產(chǎn)生時,降低其他音效對爆炸聲的影響,使玩家清晰的聽到爆炸聲,感覺爆炸音效帶來的沖擊感。
[0004]3)游戲中,有一些特殊的音效處理,例如,汽車發(fā)動機(jī)的聲音,在啟動、緩慢行駛、中速行駛、高速行駛的階段音效各不一樣,這樣可以構(gòu)建一個組件來管理,方便快捷的管理這類音效線性和跳躍性變化。
[0005]4)在不同的平臺,不同的設(shè)備上,音效表現(xiàn)出的效果是不一樣的,但是每增加一套就表示成本的增加。例如在音箱中的音效聽起來比較標(biāo)準(zhǔn),而在手機(jī)中聽起來像噪音,這樣可以使用頻率均衡器調(diào)整其頻率,過濾某些頻率,使音效聽起來偏薄一點(diǎn),但不至于像噪
■~>V.曰O
[0006]對于上面的效果,需要程序員和音效師單獨(dú)進(jìn)行編寫程序。但是游戲程序有大量相同的類似的音效需求,如果每個效果都需要單獨(dú)編寫,這意味著低下的效率,更多的成本和繁雜的編寫過程,或者實(shí)現(xiàn)過程中,游戲音效的漸變細(xì)節(jié)沒有處理好,降低了音效的表現(xiàn)效果。
【發(fā)明內(nèi)容】
[0007]針對現(xiàn)有技術(shù)低下的開發(fā)效率、復(fù)雜的開發(fā)過程和高昂的開發(fā)費(fèi)用,本發(fā)明提供了一種基于Fmod控制游戲音量,音效的系統(tǒng)和方法,使游戲中的音量、音效開發(fā)變得簡便、高效、低成本。
[0008]本發(fā)明的技術(shù)方案采用Fmod音效引擎和Iua腳本編程技術(shù)。其中,Lua由標(biāo)準(zhǔn)C編寫而成,代碼簡潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺上都可以編譯和運(yùn)行,同時Lua是解釋性的語言,修改后便可以執(zhí)行,無須編譯。Fmod擁有眾多的布告板,能有快速解決相關(guān)的問題,同時它擁有穩(wěn)定和成熟的庫文件,能夠提供所有通用音頻的良好支持,方便的添加聲音文件到應(yīng)用中,且不需要考慮手工編碼。
[0009]本發(fā)明包括一種基于Fmod控制游戲音量、音效的系統(tǒng),該系統(tǒng)包括:音量、音效分類管理器,用于對游戲的音量、音效進(jìn)行分類,在Fmod中建立對應(yīng)的音量組、音效組,創(chuàng)建分類數(shù)據(jù)表以存儲音量組、音效組,同時能夠?qū)Ψ诸悢?shù)據(jù)表進(jìn)行編輯;文件配置器,用于將音量組和音效組數(shù)據(jù)表導(dǎo)出并封裝為Iua配置文件;音量管理器,在游戲程序運(yùn)行時,用于解析并加載Iua配置文件的音量組部分,調(diào)用音量控制組件根據(jù)Iua配置文件初始化游戲程序啟動時默認(rèn)的環(huán)境音量,確定游戲程序總音量;音效管理器,在游戲程序運(yùn)行時,用于解析并加載Iua配置文件的音效組部分,獲取Iua配置文件中的默認(rèn)音效音量,同時記錄默認(rèn)音效,根據(jù)音效行為變化調(diào)用相應(yīng)的組件進(jìn)行處理,其中音效包括音效行為和音效音量。
[0010]進(jìn)一步,所述音量、音效分類管理器包括:分類模塊,用于根據(jù)游戲程序中不同的音量、音效類型以及音效行為變化、音效音量變化對音量、音效進(jìn)行分類,并在Fmod中建立對應(yīng)的音量組和音效組;存儲模塊,用于對Fmod建立的音效組、音量組使用分類數(shù)據(jù)表進(jìn)行建立、存儲和編輯,同時能夠?qū)邮站庉嬚埱髮Ψ诸悢?shù)據(jù)表進(jìn)行對應(yīng)編輯。
[0011]進(jìn)一步,所述的文件配置器包括:封裝模塊,用于將分類數(shù)據(jù)表導(dǎo)入到Iua編輯器中封裝成音量組、音效組配置文件。
[0012]進(jìn)一步,所述的音量管理器包括:音量解析模塊,用于調(diào)用游戲程序的Iua文件解析器對Iua音量組配置文件進(jìn)行解析,并加載解析后的音量組配置文件;音量初始化模塊,用于對游戲程序啟動時調(diào)用初始化函數(shù)依照配置文件初始化默認(rèn)環(huán)境音量;總音量管理模塊,確定游戲程序的總音量為游戲程序初始默認(rèn)環(huán)境音量乘以當(dāng)前音效音量。
[0013]進(jìn)一步,所述的音效管理器包括:音效解析模塊,用于調(diào)用游戲程序的Iua文件解析器對音效組配置文件進(jìn)行解析,加載解析后的音效組配置文件;音量線性差值組件,用于在游戲程序運(yùn)行過程中,音效行為階段性變化導(dǎo)致音效音量階段性變化時線性計(jì)算當(dāng)前音效音量;
音效參數(shù)編輯組件,用于需要對游戲程序增加或修改新的音效行為的邏輯時,對音效組中的音效行為參數(shù)進(jìn)行相應(yīng)的編輯以產(chǎn)生新的音效;動態(tài)均衡器管理組件,用于在游戲程序運(yùn)行時,動態(tài)的調(diào)整頻率,增強(qiáng)音效效果;階段音效控制組件,用于在Fmod編輯器創(chuàng)建階段性音效的各階段的音效行為、音效音量,當(dāng)音效行為產(chǎn)生變化時,根據(jù)對應(yīng)Fmod中階段性音效變化對音效行為、音效音量進(jìn)行線性或跳躍過渡處理;所述的階段音效控制組件還包括音效音量、音效行為自定義編輯,用于組件需要對音效音量、音效行為進(jìn)行編輯時,使用接口函數(shù)向?qū)?yīng)分類數(shù)據(jù)表存儲模塊發(fā)送編輯請求,請求完成后,對音效音量、音效行為進(jìn)行對應(yīng)編輯。向?qū)?yīng)分類數(shù)據(jù)表發(fā)送編輯請求,請求完成后,對應(yīng)的音量、音效進(jìn)行對應(yīng)編輯。
[0014]本發(fā)明包括一種基于Fmod控制游戲音量、音效的方法,該方法的技術(shù)方案包括:游戲的音量、音效進(jìn)行分類,在Fmod中建立對應(yīng)的音量組、音效組,創(chuàng)建分類數(shù)據(jù)表以存儲音量組、音效組,同時能夠?qū)Ψ诸悢?shù)據(jù)表進(jìn)行編輯;將音量組和音效組數(shù)據(jù)表導(dǎo)出并封裝為Iua配置文件;在游戲程序運(yùn)行時,解析并加載Iua配置文件的音量組部分,調(diào)用音量控制組件根據(jù)Iua配置文件初始化游戲程序啟動時默認(rèn)的環(huán)境音量,處理特殊音效的音效音量,確定游戲程序總音量;
進(jìn)一步,所述的基于Fmod音量、音效管理方法還包括:據(jù)游戲程序中不同的音量、音效類型以及音效行為變化、音效音量變化對音量、音效進(jìn)行分類,并在Fmod中建立對應(yīng)的音量組和音效組;對Fmod建立的音效組、音量組使用分類數(shù)據(jù)表進(jìn)行建立、存儲和編輯,同時能夠?qū)邮站庉嬚埱髮Ψ诸悢?shù)據(jù)表進(jìn)行對應(yīng)編輯。
[0015]進(jìn)一步,所述的基于Fmod音量,音效管理的方法還包括:接收編輯請求對分類數(shù)據(jù)表進(jìn)行新增或修改;對接收的新增、修改的請求依次執(zhí)行分類處理、使用Iua編輯器封裝為配置文件、將配置文件發(fā)送給對應(yīng)的解析器、解析的配置文件發(fā)送給音量管理器或音效管理器。
[0016]進(jìn)一步,所述的基于Fmod音量,音效管理的方法還包括:調(diào)用游戲程序的Iua文件解析器對Iua音量組配置文件進(jìn)行解析,并加載解析后的音量組配置文件;對游戲程序啟動時調(diào)用初始化函數(shù)依照配置文件初始化默認(rèn)環(huán)境音量;在游戲程序運(yùn)行時,記錄音效、音量的變化數(shù)據(jù),同時,還用于處理特殊音效音量,當(dāng)出現(xiàn)特設(shè)音效時,對非特殊音效音量和環(huán)境音量進(jìn)行壓縮處理,使得特殊音效音量能夠顯現(xiàn)出來;確定游戲程序的總音量為游戲程序初始默認(rèn)環(huán)境音量乘以當(dāng)前音效音量。
[0017]進(jìn)一步,所述的基于Fmod音量,音效管理的方法還包括:調(diào)用游戲程序的Iua文件解析器對音效組配置文件進(jìn)行解析,加載解析后的音效組配置文件;在游戲程序運(yùn)行過程中,音效行為階段性變化導(dǎo)致音效音量階段性變化時線性計(jì)算當(dāng)前音效音量;對