Hello, my name is pornanime.

試していなかったテクニックのテスト

ゲーム本体の実装が落ち着いたので、今まで手を付けていなかったラスタスクロールとスプライトの動的転送について調べていた。

ラスタスクロール

↓ラスタスクロールというのはお馴染みのこれですね。ゲームに使うかどうかはともかく、定番のテクニックなので一応押さえとこうと
f:id:gyuque:20161121014533g:plain

初代ファミコンのソフトはこれを裏技的に、強引に実装していたそうだけど、スーパーファミコンは最初からこのためのHDMAという機能を搭載しているので、実機でうまく動かない、といった理不尽な苦労はない。

参考:

1番目のページは頻繁に見ているのにHDMAの説明がしっかり入っていることに気付かなかった。灯台下暗しというか……

スプライトの動的転送

これはアニメーションのパターンを増やすための技術。

例えば、主人公の歩行アニメーションが4コマで構成されているとしたら、4コマ全てをVRAMに転送しておいて切り替えながら表示する、というのが最も単純な実装なのだけれど、VRAMは64KBしかないのでこれだとあまりパターン数を豊富にできない。
そこで、VRAM上には主人公キャラ用のエリアを1コマ分だけ確保しておいて、随時そこをROMから転送して書き換えることで、少量のVRAMで大量のパターンを使えるようになる。今風の言葉で言うと、ストレージからストリーミングするという感じか。

↓ちなみに他機種(メガドライブ)だけど、これの実装を指示している仕様書というのが見られる。
Ancient-blog 3Dベア・ナックルII配信記念特別企画【パート1】

市販のゲームなら間違いなく使われているテクニックだけど、今までは「まあ、そこまでしなくていいかな」と思って実装していなかった。ただ、豊井さん(ドッター)のスケジュールが12月まで空いていないということなので「じゃあ、その間にやりますか」という話になった。

で、増えたパターンで何をしたいかというと、所謂spawn(登場)の演出に充てたいなと。例えば「星のカービィ」だと、開始時にカービィが星に乗って飛んでくるでしょう。

星のカービィ 夢の泉の物語

あと、ロックマンだと空からスーッと降りてくるやつ。

f:id:gyuque:20161121202500j:plain

こういうのが欲しいよね、ボーッと突っ立った状態からスタートするのダサいでしょ、と。
とりあえず転送用のルーチンは作ったので、従来のものと入れ替える作業を今から。