Recrit
【捨丸&KID】如何加入背景音樂以及效果音
本篇的內容為介紹:如何加入背景音樂以及效果音
建議請讀者自行尋找幾個免費的音樂檔,並且依照後面的範例script執行,自己體驗程式執行的效果才能更快速的學習。
* 建議的音效檔構成
基本上建議將音效檔和音效播放命令的組合如下列配合。
BGM bgm命令
Voice dwave命令(channel 0)(前提是要能找到聲優來配音)
效果音 dwave命令(channel 1~49)
將音效檔分成這三個種類來整理歸納的話,之後也能夠利用volume調整命令來分別調控相當的方便。
* 關於channel
所謂的channel是將複數的音效分別管理系統。常可以聽到5.1頻道、杜比環繞音響系統這類的名詞。這是利用五個channel分別播放不同的音效來營造出臨場感的系統。
dwave雖然有50個channel可以使用,但是也並非將50個喇叭接上後各自分配一個channel來播放。在一個喇叭上同時播放50個音效是可能的事情,但是所播放的聲音會在被混音之後播放。
* bgm系統的命令
能夠播放mp3、midi、wav三種格式的檔案。
注意bgm命令無法同時播放兩個以上音效檔。
下面一起介紹在句首有bgm的命令。
bgm播放命令
程式碼
bgm 檔案名稱
範例
bgm “mp3\BGM02.mp3”
bgm為命令本體。藉由輸入檔案名稱來指定要播放的檔案。這裡是假設在名為mp3的資料夾中有個BGM02.mp3檔案。
利用bgm命令指定的音效檔會不斷迴圈播放。
只播放一次
程式碼
bgmonce 檔案名稱
範例
bgmonce “mp3\BGM02.mp3”
bgmonce為命令本體。
被指定的mp3、midi、wav檔案只會播放一次。
指定檔案所在資料夾的方式和bgm相同。
停止播放
範例
bgmstop
停止目前用bgm命令所播放的音效。
「*define
clickstr"!?。」",2
game
*start
bgm "mp3\BGM02.mp3"
bg "BG\093.JPG",2
click
bgmstop
end
」
調整BGM的音量
程式碼
bgmvol 音量(0~100)
範例
bgmvol 50
調節利用bgm命令所播放音效音量大小的命令。
音量最小為0,最大為100。音量並不會被遊戲中的紀錄檔所紀錄。
BGM的fade in。bgmfadein
程式碼
bgmfadein ms秒數
範例
bgmfadein 120
利用bgm命令播放音效檔時,在開始的時候fade in(逐漸放大)的命令。
在指定的時間中逐漸將音量增加。曲子不會突然開始而是音量逐漸變大,聽起來會有較順暢的感覺。
但是如果使用在會不斷迴圈的環境音效時,音效的界線會很清楚的浮現是使用上困難的地方。
BGM的fade out。 bgmfadeout
程式碼
bgmfadeout ms秒數
範例
bgmfadeout 120
;mode800
利用bgm命令播放音效檔時,在結束的時候fade in(逐漸放大)的命令。
在指定的時間內逐漸將音量降低。在播放語音檔時將BGM的音量降低。 bgmdownmode
程式碼
bgmdownmode option(0為off,1為on)
範例
bgmdownmode 1
在播放語音檔(dwave channel 0號)時,暫時將BGM的音量降低的混音模式。
這是為了讓語音檔能夠更清楚的被聽到的命令。
* dwave系統命令
使用DirectSound播放wav檔案的命令。
由於和一部分的命令處理(在右鍵選單時播放聲音)共用播放channel,有可能會出現重複使用而擠掉的可能性。在這種狀況下必須要將所播放的channel錯開。這裡我們除了dwave命令外也一起介紹句首有加上dwave的各種命令。
播放聲音 dwave
程式碼
dwave channel號碼,檔案名稱
範例
dwave 0,”test.wav”
dwave為命令本體。
0為channel號碼。有0~49號總共50個channel可以播放wav檔案。
如果是在不同channel的話也能夠在同一時間播放。
dwave 0,”test01.wav”
dwave 0,”test02.wav”
如果像上面這樣將兩個dwave命令排列在一起的話,dwave 0 channel會讀取音效檔並且播放,而在它播放結束前,dwave 1 channel的音效檔便會開始播放。如果真要說這時的情況是如何的話,聲音是混在一起的。
因此如果想要做出「在兵器交擊的聲音後出現倒地的聲音」這樣,在某個聲音後才出現第二個聲音時,請輸入適當時間的wait命令。
在兩個音效檔播放的中間插入文字表示也是一種方法。因為會插入等待click點,在一邊閱讀文章的時候音效也會播放完畢。
迴圈播放 loopplay
程式碼
dwaveloop channel號碼(0~49),檔案名稱
範例
dwaveloop 0,”test.wav”
所指定的wav檔案會在指定的channel迴圈播放。
停止播放 dwavestop
程式碼
dwavestop channel號碼(0~49)
範例
dwavestop 0
停止所指定channel的播放。
將音效檔讀取的記憶體中
程式碼
dwaveload channel號碼(0~49),檔案名稱
範例
dwaveload 1,”test.wav”
由於dwave命令是利用streming播放的方式來處理,在命令出現的時間點開始讀取檔案。因此在這狀況下會產生些微的time lag。
因此如果先使用這個命令在記憶體上讀入播放檔案,之後輸入dwaveplay、dwaveplayloop的播放命令,便能有不產生time lag而播放檔案。
這能夠用在和汽車引擎聲重疊的槍聲、或是幾乎同時出現的兩發槍聲等場合。
播放已經讀入記憶體中的音效檔 dwaveplay
程式碼
dwaveplay channel號碼(0~49)
範例
dwaveplay 1
在指定的channel中只播放一次已經讀入記憶體的wav檔案。
迴圈播放已經讀入記憶體中的音效檔 dwaveplayloop
程式碼
dwaveplayloop channel號碼(0~49)
範例
dwaveplayloop 1
在指定的channel中將已讀入記憶體中的wav檔案迴圈播放。
為了防止想要迴圈播放的環境音效(如蟬鳴、流水聲等)突然中斷,先利用dwaveload命令讀入記憶體之中在利用dwaveplayloop來播放這樣的手法也是有的。
改變語音channel的音量 voicevol
程式碼
voicevol 數值(1~100)
範例
voicevol 70
調整dwave channel 0號(語音)之音量的命令。
利用0~100的數值來調整音量大小。
被變更的數值並不會被遊戲的存檔功能儲存,因此如果將變更命令和播放命令分開之後,也可能出現命令無效的狀況。
變更語音channel的預設音量 defvoicevol
程式碼
defvoice 數值(1~100)
範例
defvoicevol 30
調整dwave channel 0號(語音)之預設音量的命令。
利用0~100的數值來調整音量大小。
和voicevol命令不一樣,由於是調整預設音量所以變化的數值會被儲存在save data之中。
變更se channel的音量 sevol
程式碼
sevol 數值(1~100)
範例
sevol 50
調整dwave channel 1~49號(SE,效果音)之音量的命令。
利用0~100的數值來調整音量大小。
被變更的數值並不會被遊戲的存檔功能儲存,因此如果將變更命令和播放命令分開之後,也可能出現命令無效的狀況。
變更se channel的預設音量 defsevol
程式碼
defsevol 數值(1~100)
範例
defsevol 30
調整dwave channel 1~49號(效果音)之預設音量的命令。
利用0~100的數值來調整音量大小。
和sevol命令不一樣,由於是調整預設音量所以變化的數值會被儲存在save data之中。
* 音量調整命令
程式碼
menu_dwavvol
範例
menu_dwavvol
使調整音量的視窗出現。
BGM mp3系命令、bgm系命令
語音 dwave 0
效果音 dwave 1~49
能夠利用滑桿來分別調整所分配到的音效。
注意!Mp3格式檔案的版權問題
雖然mp3格式的檔案壓縮率較高且要準備encoder系統也較簡單,但是令人困擾的是在版權上有著許許多多的問題。而為了解決這問題使用ogg這個檔案格式的軟體公司也逐漸增加。ogg檔案格式有著和mp3匹敵的壓縮率且著作權上是免費的。
Nscripter只要使用dll檔案就能夠播放ogg格式的音效檔案。
* ogg格式檔案的播放
在和nscr.exe相同的資料夾中放入擴充功能檔案「nsogg.dll」就可以播放ogg檔案。bgm命令、dwave命令都可以播放。而streamin播放也沒有問題。
この記事にコメントする
この記事へのトラックバック
- この記事にトラックバックする