|
■トラブルとか対策とか質問とか
06) データをLOADすると「いったん演奏を停止せよ」 とダイアログが開く
【症状】
LOAD時にBGM演奏が始まらず、いったん演奏を停止してあらためて再生してください、というダイアログが表示される。
【発生のタイミング】
LOADの直後に発生する。問題が発生するには以下の条件が重なる必要がある。
1) SAVE POINT生成が AUTO モードになっている
2) 改ページ相当処理(#page、#g_change、#fade_in)の直後でBGMの停止が
行われている。
【↓問題発生】
#page
#stop_midi
#play_midi AAA.mid
【↓この順では問題は生じない】
#stop_midi
#play_midi AAA.mid
#page
または
#stop_midi
#page
#play_midi AAA.mid
【原因と対策】
判定は微妙なのですが、バグといえばバグになるのかなぁ。マイクロソフトのMCI(音楽や映像を再生するためのライブラリのようなもの)の反応速度と演奏リクエストのタイミングが合わないのだろうと今のとところ推測しています。
データをLOADすると、のべ〜るのシステムはSAVEデータの内容(=SAVE時に演奏していたBGM名)に従ってBGMの再生を開始します。しかしその直後にスクリプト上に演奏停止コマンドが記述してあると、演奏が始まろうとしている瞬間に「とまれ」という命令を音源側に出すことになって、結果的に停止命令は処理されず無視されます。この状態で次の演奏開始コマンドが音源側に送られると、「まだ演奏中だよ」 とのエラーメッセージが返ってくるようです。
回避方法としては、改ページにあたるコマンドと演奏停止コマンドの間に、0.1秒(=100ミリ秒)程度の待ち時間を入れてやれば大丈夫です。
【例】
#page
#delay 100
#stop_midi
#play_midi AAA.mid
|
|