野田ゲー「モンスト」の実装テクニック

野田クリスタルさんがR-1ぐらんぷり決勝で披露したゲーム「モンスト」の実装を見てみたところ、おもしろい箇所があったので紹介します。

「モンスト」とは

「モンスト」は野田さんがHSPで書かれたWindows用のゲームです。媒体はCD-ROMで、私は3年位前に渋谷の吉本の劇場で買いました。CD-ROMにはゲームが5本入っていて、「モンスト」はその1本です。

野田さんはこのCD-ROMについて「コピーガードがないのでコピーし放題」とよく言ってますが、なぜかHSPソースコードもそのまま入っているというサービスっぷりです。これは、HSPは「hsptmp」というソースコードのバックアップファイル?を自動で作成するようなのですが、それを手違いでCD-ROMに含めてしまったのだと思います。

今回はその「hsptmp」を読んでみた、という話です。紹介するのは上記画像のストッキングに穴を開ける処理です。

あなたならどう実装するでしょうか?

野田さんの実装

該当部分を抜粋します。

color 252,226,196


if hit_f(0) = 1 : circle 0+x+88,0+y+170,box+x+95,box+y+175

何をしてるのかというと、ハサミが衝突したらキャラクターの肌の色と同じ色の円をcircle命令で描いています。

ストッキングに穴を開けるのではなく、ストッキングの上に丸を描いて穴が開いたように見せている、という実装です。つまり、ヘタウマなように見えるキャラクターは決して適当に描かれたものではなく、肌は単色である必要がある、という仕様が存在しています。

所感

ストッキング画像を部分的に透過する、といった作りを私は予想していたので、この簡単な実装にはかなり意表を突かれました。これはなかなか思いつかないんじゃないかと思います。