縦軸: 演奏データ転送量(棒グラフ), 演奏タイマーから取得した時刻(折れ線グラフ) 本来、演奏タイマーの値は、サウンドの再生に用いているタイマーの値をそのまま取得して用いるべきであるが、 アプリからはどのタイマーがサウンド再生に用いられているのかがわからない。 そのため、サウンドデバイスに演奏データが何バイト転送されたかを常時監視し、そこから逆算してサウンド再生用のタイマー 値(タイマー取得時刻)得ている。 演奏データ転送量 理想的なタイマー動作 096~098のタイマー動作 099のタイマー動作 しかしこのやり方では、どうしてもタイマー値が離散的になり(棒グラフ参照)、そのままではタイマーとして用いることができない。 そこで、離散値の間を、システムタイマーで補間することで、タイマーとして使っている(青い折れ線グラフ)。 しかし、Release 096~098のタイマーは、「演奏データの転送量が更新されるたびに、タイマー取得時刻を転送量基準で初期化 し直す」ため、演奏データの転送が発生したタイミングでタイマー取得時刻が一気にずれて、その結果スクロールのがくつきに 至っていた。(青折れ線と棒グラフが交わるところを参照。) そこで、演奏データの転送量が更新されても、タイマー取得時刻の更新は行わず、以後のシステムタイマーによる補間の 傾きを増減することで、がくつきを抑える方法を提案する。 傾きの増減は、本来のシステムタイマーの傾きをベースにして、プラスマイナス20%に抑える。 (傾きが無限に大きくなるような補正はしない。最大で+20%とする。) 青折れ線が急に下 がっている =ゲーム内時間が 逆行している =演奏画面でスク ロールが戻る 横軸: 時間
© Copyright 2024 ExpyDoc