Skip to content

AboutFrameProcessing

tickle edited this page Feb 6, 2022 · 20 revisions

疑似フレーム処理仕様

  • Dancing☆Onigiri (CW Edition)では旧Flashでのフレーム処理を再現するため、
    setTimeout を使って制御しています。そのイメージを下記に示します。

フレーム処理の考え方

  • fps=60のとき、1/60秒を1フレームとして描画や計算処理を行います。余った時間は待ち時間になります。
    描画や計算処理が追い付かないときは、後続のフレームで遅れのリカバリーを試みます。
    setTimeoutの仕様で、処理が遅れていても4msはウェイトが入ります。
  • playbackRate=1以外(例えば低速)の場合、フレーム数を再計算した結果、情報誤差が発生しやすくなることがあります。これを防ぐため、playbackRate=1以外に限り、計算元のフレーム数の小数を許容することで、情報誤差を最小化します。(計算後のフレーム数は整数部に丸められます)

矢印の移動距離とフレーム数の関係

  • ロード処理で、各矢印の移動距離を決定します。
    表示位置と表示タイミングは、ステップゾーン上の位置から逆算してフレーム毎の移動量を加算して算出します。
    移動量が描画エリアを超えるまで逆算され、その距離だけ戻った状態で矢印の描画が開始されます。

音楽再生位置の調整によるAdjustmentの小数許容

  • 音楽の再生位置を調整することで、Adjustmentの幅のみ0.1フレーム単位で小数フレームを実現しています。
    音楽再生位置はフレーム数ではなく、ミリ秒で表現できるためです。

疑似フレームの制約を受ける項目、受けない項目

疑似フレームの制約を受ける項目

  • 矢印・フリーズアロー生成/移動(再描画)、速度変化、色変化、背景・マスクモーション、矢印・フリーズアローモーション
  • その他、mainEnterFrame上にある情報種

疑似フレームの制約を受けない項目

  • 音楽再生位置、キー操作イベント(判定位置からの誤差フレーム数はフレーム数に依存)

関連項目

English | Japanese

How To Play
(プレイ方法)

How To Make
(作り方、移行方法)

How To Upgrade? / What's New?
(本体の更新方法、更新情報)

Specification (for creators)
(仕様・製作者向け)

Specification (for developers)
(仕様・開発者向け)

Tips
(用途別対処方法)

Repository Local Rules
(リポジトリルール・管理者向け)

Others
(その他)

Clone this wiki locally