なんなの?Rescomp(SGDKのはなし)

この記事はSGDK2.00とそれに付随するRescomp3.83をベースに書いています。
また、細かいところは端折ってます。
誤情報あれば修正したいと思いますが、他人の備忘と思っておきらくに。

幼少のころにワタシの脳を焼いたメガドライブで動くゲームを作りたく、
SGDKと呼ばれるC言語開発補助ツールを学んでいますが、なかなか進みが悪い。
これはひとえにプログラミングの実務経験がほぼないからでしょう。
最初にどう手をつけていいのかわからない。手を動かしたいが動かせない。
コンストラクションツールでゲームを作り上げた経験はたくさんあるけど
イチからプログラムを書くということが、これほど難しいとはね。


その穴を開けるのは情熱、使命、義務、まあなんでもいいけど、気持ちですね。
んでふと立ち返ってみたのですが、
絵描いたりマンガのネームをきったりするワタシがゲーム制作をしたいわけだから、
とにかく画像とか文字とか音楽とかを扱いたいわけです。
なので、そういう欲求を切り口にやり始めることにしました。
メガドライブに自分の描いた絵が出たら面白いだろ。

そこで出てくるのが、Rescompです。

容量の少ないカートリッジに、ワタシの絵や音楽を詰めてもらわないといけない。
それをうまく詰めて、引き出してくれるのがSGDK同梱のRescompというツールです。

「res」と呼ばれるフォルダに素材を保存し、
「resources.res」というような名前のテキストに素材を書いておくと、
SGDK上で呼び出して使えるようになると。なーるほど。
いままで試したチュートリアルの意味がまた少しわかりました。

でもこの「resources.res」に何が使えるのか、どう書いていいのかようわからず
いっつも手が止まるので、調べた結果をつらつら書いていき、お茶を濁していきます。


これがベースです。
https://github.com/Stephane-D/SGDK/blob/master/bin/rescomp.txt
Rescompでは、以下のファイルが扱えると明記されています。


【BITMAP】
ビットマップファイル。画像の生データ、みたいな捉え方でいいかな。
忍者武雷伝説の明らかに写真取り込みな能面?ああいう使い方だと思います。
汎用性なさそうだし、後述の「IMAGE」があるので、いまのとこ私には必要なさそう。


【PALETTE】
パレットファイル。*.palファイル(PaintShopProの形式)か、
256色以下のインデックスカラー画像が使えます。
画像に対してこれを適用すると、カラーパレットが書き換えられるんですね。
スライムとスライムベス…いや、
おそ松くんはちゃめちゃ劇場の鬼ダヨーンみたいに色差し替えで使うとか。
「鬼だから怒っているんダヨーン」って取説にあるけど、どういう意味?

ていうかこれ読んでワタシ根本的な勘違いに気が付いたんですが
仕様上ゲーム1本を16色*4本のパレットで作らないといけないと思ってました。
容量が許すなら、これで差し替えてやればいいってことなのね。
そうだよね、そういうのがなきゃセガロゴの鮮やかな青とか
コラムスのカラーテストとか成立せんもんね。


【TILESET】
【TILEMAP】
【MAP】

タイルセットとは、タイルに使う画像のようです。
RPGツクールでいうマップチップのように、細切れな絵をひとつにした物。

遊んでたら最終面でバグったゲームことXDRのVRAM(本体に保存された絵のメモリ)。
左下のぐちゃっとしたノイズなのがVRAMそのもの。
これをプログラムできれいにならべて、右のように見せているわけですね。
[BG B(PlaneB)]が後ろの背景、
[BG A(PlaneA)]が手前の背景。レイヤーだな。
[Window]は、BG Aと扱いは同じだけど、スクロールせず固定なもの。
自機みたいに動く、動かすものは[SPRITE]。ここには出てきてません。

TILEMAPとMAPはその配置データで、TILEMAPは大規模なものに使えないようです。
大規模ってなによ。どっから大規模よ。
まあ、画面外に及ぶようなものはきっと大規模ですね。

絵描きからするとこの、”ステージを描く”という作業をプログラミングするのは
絵を描いたあと字で絵を描く、みたいな行為でちょっとしんどいんですが
どうも以下のようなタイル作成ツールで作ったもの(TSX、TMXファイル)を
インポートすればツクールっぽくなって楽になりそうです。まだ試してはいません。

[Tiled] https://www.mapeditor.org/
[16TILE] https://allone-works.com/
[Beehive] https://github.com/BigEvilCorporation/Beehive

TiledはWolfRPGエディターいじってた時に見たことあるので、有名かな。

なお、テキスト読む限りTILESET、TILEMAP、MAPの3つは
画像取り込みもサポートしているので、
たぶんTILESETでタイル画像を読ませて、
そのタイル画像を使って描いた大きな背景絵をTILEMAPやMAPで読ませれば
タイル画像と大きな背景絵とを自動照合して、
タイル画像だけのVRAMリソースで大きな背景絵を自動再現する…
というような事が可能なのだと思います。
大きな背景絵にタイル画像以外の絵が1pxでも混ざったら
エラー吐くよと書かれているので、そういうことなのでしょう。


【OBJECT】
これこっちのレベルが低すぎてマジ意味わからんけど、TMXファイルが指定できて、
上述のソフトウェア「Tiled」にて
「作ったMAPにアタッチしたいすべての定義に使用できる」とあるので
なんだろう、想像するに背景アニメの指定とか、当たり判定とか、
そういうことではないだろうか。
もしそうならきっと楽だろうね。RPGツクールで移動判定○×つけるような。違うか?


【IMAGE】
背景にイメージ画像を直接描画する…やっぱBITMAPいらなくない?
BMPとPNGファイルが読み込める。画像内のパレット情報なども保持するらしい。

思えばOHSAT GAMESさんのチュートリアルをいくつか作成しましたが、
背景は全部「IMAGE」でした。じゃ、MAPでない背景画像はこれでいいのかな。


【SPRITE】
操作するもの、されるもの。動く存在はこれ。ゲームの花形だね。
BMPとPNGファイルが読み込める。自機、敵キャラ、弾、アイテム…。
画像を指定するときにcollision(衝突)タイプとか指定できるので
いろいろ指定するとゲームが作りやすくなるのかも。

簡単なゲームならIMAGEとSPRITEでどうにかなりそう。
サンプル見ると、実際なってる。アドベンチャーくらいはいけちゃうのか?
でもまあ、それだけじゃちょっとね。


【XGM】
【XGM2】
【WAV】

音ファイル。WAVは生音ですね。サンプリングとかそういう。
XGM、XGM2はMIDIやVGMみたいな楽譜データのようです。
ここは、先人の力を借りることにします(笑)!

https://note.com/karu_gamo/n/ndeb91e3e7559
https://note.com/karu_gamo/n/n86608420647d

アーシオンの開発に携わられているkaru_gamoさんによると、
メガドライブ用に制作されたフォーマット・XGMとその改良版であるXGM2のほかに、
外部ツールとしてMDSDRVというのもあるのだそうです。
このあたりは、自在に絵が出せて、なんかチャカチャカ動かせるようになったら
取り組みたいです。今は鼻歌でガマン。
でもVGMからXGMに変換するのは基本のようだから
VGMが作成できるソフトは触っておいたほうがいいんだろうね。


【BIN】
【ALIGN】
【UNGROUP】
【NEAR】

アンロックされていません(オレのスキルツリーでは)。
ALIGNはバンク切り替えという記述が見えたので、いずれ使うのではないだろうか…。


まとめると、簡単なゲームは【IMAGE】【SPRITE】で実現可能で、
マップデザインは元になる絵【TILESET】と
骨組みになる【TILEMAP】or【MAP】を使うのがよさそうで、
それらは「Tiled」といったマップエディタを使えば
イメージを作りやすい…てカンジですかね。それかもう画像で具現化するか。
そして曲に関しては、VGMファイルベースで作ればなんとかなるだろうと。
ソフトはどういうのがいいんでしょうね。それも探すか。

絵はいろいろ描いてあるので、次はRescompでの記述とSGDKでの呼び出しを
見ていければなと思います。特にこのMAP関連は一気に苦手意識を克服できそうな
予感がするので、習得したいところです。
またまとまってきたら記事にしまーす。結構こういうアホアホ記事なくて。

タイトルとURLをコピーしました