bgmのテキスト非同期フェードアウト実験
http://packetroom.net/2012/05/bgm.htmlなんて記事を読んだので、やってみたら、できた。
bgm.oggを用意すること。
00.txt
*define deletemenu numalias bgm_vol,100 defaultspeed 500,500,500 game *start textspeeddefault mov %bgm_vol,100 bgm "bgm.ogg" とりあえず、@ bgm_fade_out 文章を表示してみる。 ここから非同期でフェードアウトするかなー?\ end
system.lua
-- system.lua NSExec("_luacall animation") function NSCALL_animation() local volume = NSGetIntValue(100) volume = volume - 1 NSSetIntValue(100, volume) NSExec("_bgmvol "..tostring(volume)) if volume == 0 then NSLuaAnimationMode(false) end return false end NSLuaAnimationInterval(100) NSLuaAnimationMode(false) NSExec("_luasub bgm_fade_out") function NSCOM_bgm_fade_out() NSLuaAnimationMode(true) end
まとめ
テキスト表示中であっても、luacall animationによる割り込みは有効であり、その中でNSExecを実行しても問題はない(多分)。
よって、BGMの非同期はできる。ただし、NSLuaを使う関係上、ONScripterは置いてきぼり。グッバイ。
指摘を受けましたので訂正。ONscripterでもできるとのこと。すげー。