キャラオーバーのしくみ
ここに鞭を持ったセセリと、捕まったアゲハとタテハが居るとします。
セセリは1秒間に60回「はたらけー(棒読)」と鞭を振り、アゲハにお仕事リストを与えます。
アゲハはそれを処理して、タテハにお絵描きリストを渡します。タテハはそれに従って絵を描きます。
間に合わないとアゲハがセセリに叱られるので必死で描きます。
仮に、鞭がぴちんと振り下ろされるまでにタテハは20個まで絵が描けるとします。
ある時、仕事を処理していたアゲハは、次はタテハが21個の絵を描かないといけない事に気が付きました。
これをどうにかする方法として、
1.セセリに謝って鞭のペースを落として貰う(ディレイ、処理落ち、等と呼ばれる状態)
2.アゲハが21個目を無かったことにする(キャラクタオーバーと呼ばれる状態)
3.タテハが21個目を描かない(描画落ち。存在するが表示されない)
4.タテハが次にくるアゲハからのリストを無視して、時間をかけて取り敢えず今の絵を描く
(描画遅延。内部処理は遅延していない)
5.アゲハが考えて、タテハにまず10個、次の鞭で残り11個と分けて描かせる(激しくちらつきます)
…等があります。何れも長所短所があるのでどれが一番良いとも言えません。
# 1〜5を総称してキャラクタオーバーと呼ぶこともあります。
> キャラオーバーは快適なプレーの為に意図的にしてるものだから仕方ないんじゃ・・・
誰かがどこかでどうにかしないといけないので仕方ないと言えば仕方ありません。
もっと凄いアゲハとタテハを呼んでくるという手もあり、最近ではCAVEさんが
レヴィ=センスの力でパワーアップしてるようです。
> じゃあ、たまに出る縦ノイズは?
タテハ「ああっ、もう絶対間に合わないっ…てっ適当にやっちゃえ!」
グシャグシャグシャピシィーキャー
<縦ノイズのひみつ>
縦ノイズはいわゆる「ラインバッファ方式の、キャラクタの水平表示量の限界」で、
キャラクタオーバーとは別の話になる。
ファミコンで5キャラクタ以上並ぶとちらつくのと同じ種類の制限。
1走査線上に規定値以上のキャラクタが並ぶと、次の走査線上のキャラクタが正しく表示できなくなる。
だから櫛状に表示が乱れる。
フレームバッファ方式だとこの制限はない。
家庭用だとPSやSSからフレームバッファ方式になった。
アーケード基板だと、大手メーカーのものは10年ぐらい前からなってる。