(k ゚∀゚)<吉里吉里是有這種東西的,而且還可以有淡入的效果,它們分別是[bgmopt]和[fadebgm]。
(k ゚∀゚)<先介紹[bgmopt],[bgmopt]有兩個屬性,分別是volume和gvolume,兩個都是調整背景音樂的音量百分率,數值為0至100,100是正常音量,如果忽略的話代表音量不變。
為什麼有兩個相同功能的屬性?>( ゚ω゚ s)
(k ゚∀゚)<volume是指個別的音量,而gvolume是全域音量,全域音量是遊戲裡的整體音量,不過由於背景音樂只有一個緩衝區,在背景音樂上其實分別不大,但是全域音量會記錄於系統變數裡,所以通常用於音量設定介面上的調整音量功能。
(k ゚∀゚)<而實際播放的音量是volume和gvolume兩個音量的百分率相乘,看看以下的範例。
[playbgm storage="bgm1"]
[bgmopt volume=50 gvolume=50]
播放BGM1,音量是原本的25%(k ゚∀゚)<在上述的範例裡,實際播放的音量是0.5x0.5=0.25,音量是原本的25%。
(k ゚∀゚)<之後介紹[fadebgm],[fadebgm]有兩個屬性,分別是volume和time,time是設定淡入的所需時間,以微秒(ms)為單位,volume是調整背景音樂的音量百分率,數值為0至100,100是正常音量,如果忽略的話代表音量不變,要留意[fadebgm]是不能調整全域音量,想調整全域音量的話就要用[bgmopt]。
(k ゚∀゚)<看看以下的範例。
[bgmopt gvolume=100]
[playbgm storage="bgm1"]
播放BGM1[p][cm]
[playbgm storage="bgm1"]
播放BGM1[p][cm]
[fadebgm volume=50 time=3000]
音量是原本的50%[p][cm][fadebgm volume=100 time=3000]
返回原本的音量我有另一個問題,每次停止背景音樂,就必須重新由頭開始播放,有沒有辦法只是暫停背景音樂?>( ゚ω゚ s)
(k ゚∀゚)<既然有停止,當然也會有暫停,如果要暫停背景音樂的話,可以用[pausebgm]來暫停,當想重新播放時,就使用[resumebgm]來播放,吉里吉里就會由原本暫停的位置重新播放,以下是範例。
[playbgm storage="bgm1"]
播放BGM1[p][cm]
播放BGM1[p][cm]
[pausebgm]
暫停播放BGM1[p][cm][resumebgm]
重新播放BGM1(k ゚∀゚)<不過只有WAVE類的背景音樂才能暫停背景音樂,如果大家用的是midi,就沒有效果。還有,當儲存記錄時,暫停的位置不會被記錄下來,這意味著當我們讀取記錄檔,背景音樂也是重新由頭開始播放。
既然停止背景音樂可以有淡入淡出的效果,那麼暫停背景音樂是不是也可以淡入淡出>( ゚ω゚ s)
(k ゚∀゚)<當然有啦,我們可以用[fadepausebgm]做出淡出效果,其屬性time是設定淡出的所需時間。
咦?淡入呢?>( ゚ω゚ s)
(k ゚∀゚)<根據吉里吉里的說明文件,它說用[resumebgm]重新播放,不過實際嘗試是沒有效果的,貌似是因為音量沒有被重新調整,必須用[fadebgm]或[bgmopt]等調整音量,以下是範例。
[playbgm storage="bgm1"]
播放BGM1[p][cm]
[resumebgm]
[fadebgm volume=100 time=2000]
重新播放BGM1
播放BGM1[p][cm]
[fadepausebgm time=2000]
暫停播放BGM1[p][cm][resumebgm]
[fadebgm volume=100 time=2000]
重新播放BGM1
(k ゚∀゚)<今次也差不多了,下一次再見吧。
有沒有一個代碼是讓音樂不會停止繼續播放?
回覆刪除就好像first.ks裏用了bgm1,在那裏按了去向option.ks(但沒換bgm),然後按BACK回去first.ks(利用startanchor)這時候的歌會停下來,然後重播。
有沒有是讓他別停下繼續播麽?[resumebgm]做不到那種。
會重播的原因應該是再次執行了[playbgm],
刪除換句話說,我們只要回去first.ks時不再[playbgm]就行了。
不過first.ks是已經執行了[playbgm]
刪除option.ks沒有執行任何bgm
儅從option.ks 回去first.ks 是不能迴避[playbgm]
該怎麽辦好呢?O.O
當返回到first.ks,
刪除我們甚少要由first.ks一開始的部分執行,
因為我們不想重複執行某些程式碼,
例如遊戲一開始會播放OP,但總不可能每次回到標題畫面也播放OP吧,
所以我們會返回到first.ks裡的某個label標籤,
而不是first.ks一開始的部分。
很可惜那樣做不到……
回覆刪除[bgm省略]
[各種代碼省略]
*title1|[startanchor]
[startanchor]
就這樣從option返回這個地方,bgm依舊停止后再播
對不起,原來我看漏了您使用的是[startanchor],
刪除其實解決方法十分簡單,
就是不要使用[startanchor]來返回first.ks,
[startanchor]實際上是利用存檔來儲存label位置,
當執行[gotostart]時,吉里吉里其實是讀檔,
這有別於[jump]、[call]等,
由於是讀檔,背景音樂當然也重新播放。
即使那樣也不行……
刪除[button 省略 call/jump=true storage=省略]
jump只要一按回去就會卡在option的界面T_T
如果是call反而出現return的錯誤……
[button]是沒有call或jump等屬性的……
刪除原來如此,謝謝你的解答^^
刪除之後我把[target=*]在first.ks后再[call]成功了~謝謝~~!
請問音效(不是BGM)可以調整聲量嗎?
回覆刪除我這樣試了不過失敗了:
[playse storage="XXX"][bgmopt volume=50 gvolume=50]