試していなかったテクニックのテスト
ゲーム本体の実装が落ち着いたので、今まで手を付けていなかったラスタスクロールとスプライトの動的転送について調べていた。
ラスタスクロール
↓ラスタスクロールというのはお馴染みのこれですね。ゲームに使うかどうかはともかく、定番のテクニックなので一応押さえとこうと
初代ファミコンのソフトはこれを裏技的に、強引に実装していたそうだけど、スーパーファミコンは最初からこのためのHDMAという機能を搭載しているので、実機でうまく動かない、といった理不尽な苦労はない。
参考:
1番目のページは頻繁に見ているのにHDMAの説明がしっかり入っていることに気付かなかった。灯台下暗しというか……
スプライトの動的転送
これはアニメーションのパターンを増やすための技術。
例えば、主人公の歩行アニメーションが4コマで構成されているとしたら、4コマ全てをVRAMに転送しておいて切り替えながら表示する、というのが最も単純な実装なのだけれど、VRAMは64KBしかないのでこれだとあまりパターン数を豊富にできない。
そこで、VRAM上には主人公キャラ用のエリアを1コマ分だけ確保しておいて、随時そこをROMから転送して書き換えることで、少量のVRAMで大量のパターンを使えるようになる。今風の言葉で言うと、ストレージからストリーミングするという感じか。
↓ちなみに他機種(メガドライブ)だけど、これの実装を指示している仕様書というのが見られる。
Ancient-blog 3Dベア・ナックルII配信記念特別企画【パート1】
市販のゲームなら間違いなく使われているテクニックだけど、今までは「まあ、そこまでしなくていいかな」と思って実装していなかった。ただ、豊井さん(ドッター)のスケジュールが12月まで空いていないということなので「じゃあ、その間にやりますか」という話になった。
で、増えたパターンで何をしたいかというと、所謂spawn(登場)の演出に充てたいなと。例えば「星のカービィ」だと、開始時にカービィが星に乗って飛んでくるでしょう。
あと、ロックマンだと空からスーッと降りてくるやつ。
こういうのが欲しいよね、ボーッと突っ立った状態からスタートするのダサいでしょ、と。
とりあえず転送用のルーチンは作ったので、従来のものと入れ替える作業を今から。