MSX「8ドット2色」を攻略する(追記)~主線と戦う~
前記事の「ファミコンに対する嫉妬と憧れ」の項でも触れてますが、ファミコンゲームの模写はずいぶんやりました。
あちらは8ドット内に3色+背景色が使えるので、いわゆるアニメ絵というか漫画絵のような主線(黒もしくは濃いめの色)と描画色の表現がしっかり描き込まれている絵が多いのですが、MSXでのCGは8ドットに2色という制限の都合上、なかなか模写もうまく行きませんでした。
顔(肌色)髪色と続くようなイラストでは、境界線1ドットを挟んで両側に別の色が入っているので、MSX的カウントでは8ドット内に3色打たなきゃなりません。
これがハードウエア的制限でできないので、主線のないぼやけた絵にするか境界線部を十分な太さにしてはみ出さないようにするの二択になりした。
背景が"黒"のレトロゲームでは比較的気にならなかったんですが、アーケードゲームの移植などで背景に色がついてくる時代になると、主線のない絵はどうにもぼやけた感じになるので、見劣りしちゃうんですね。
主線問題をスプライトで越えてみよう
で、みな考えるわけです。「背景(PCG)色には制限があるけど、MSXにはスプライト機能があるじゃない!」
主線部をスプライトに依存すれば、ぼやけた絵を引き締まった絵に変えることができる…はず?
というわけで、やってみました。
素材は、ファイアーエムブレム 暗黒竜と光の剣(シリーズ初代)から

可愛いですよね。
うん。
描いた本人もびっくりです。
主線の入ったメリハリのある絵が、MSX(1)環境で描けるんだね。

同様に、第一話のイントロ。ジェイガン・マルス・シーダの会話シーンから


PCG部分は固定でスプライト部分だけでアニメーションを実現しています。
横幅がスプライト3枚分なので、口もと部分だけ分離して可動部だけ1枚に収めれば、比較的ローコストで3コマアニメも実現できそうです。
横並びに4枚制限があるので、16ドットx4=64ドット幅のイラストまでしか、スプライトで覆えません。
うまく描いたら飛び飛びにもっと大きな絵を描けるのですが、複雑な絵を描くなら、安定的な限界値は横幅64ドットです。
下記のロゴの場合は、主線が残るようにロゴの縁取りの欠けた部分にツギハギ(パッチ)をあてるような使い方です。

左端Cと右端Aのはみ出し部分のみをスプライトパッチで処理した
「やろうと思えばできる」を超えないので、タイトル画面や部分的な演出には使えそうですが、画面全体をスクロールさせたり、アクションゲームの背景に使ったりはできそうにありませんね。
派手さが欲しい所だけに一点突破的に使えるテクニックかなと。
交互配色で、干渉しない方法を検討
スプライトで主線描くのは万能ですが、せいぜい顔グラフィックぐらいの用途にしか使えません。
ゲームのフィールドとしてもっと広い面積を覆うときに、2色の壁や床を8ドット境界を気にせずに自由な位置に描きたいこともあるのです。
そこで、数年前に一つの手法として、二行交互に着色するという方法を思いつきました。
作例は以前発表した、デビルクラッシュの外周壁です。

ほぼこの絵のために思いついた手法なのですが、床は青系・壁は黄色系とハッキリした色使いなので、奇数行に床描き偶数行で壁を描くことで MSX が苦手とする斜めの境界線を実現してみました。
これは、床も壁もレンガ模様の作りなので、割と自然にかけました
なお、曲線っぽい部分は(一応)使用チップ数を減らすために角度の異なる斜め直線の組み合わせで表現してます。
この作例では交互色の相方が必ず黒なので、境界部分にはっきりとした主線を引いていないのですが、結果的に境界部に黒線が発生している格好です。
境界部は必ず暗い色になりますし、ゲームなどの雰囲気次第ではありますが、境界線部分の表現を頑張ってデザインすれば応用範囲は広いはずです。
2行一組の混色を応用した主線表現
上記の交互配色事例をもうすこし拡張してみましょう。
先の例では背景色の組み合わせで"黒"を共有して、境界線の代わりに使いました。
万能表現ではありませんが、2行一組の混色表現で、先の"黒”の代わりに背景色と同じ色(または近似色)を共有する場合、共有された背景色に相当する行には"主線"が表現できる可能性があります。

山や雲などの遠景部に青+1色というルールで混色してみました

この追加色で境界線を引いてみた
ゲームとして、マリオやノコノコのスプライトが目立たなかったらゲームにならないので、手前を通過する山や雲はぼやけた色にしたほうが「ゲーム」的な事情としては正義です。
背景パーツの形状はファミコン版を意識しつつ、MSX的事情にも優しい感じになったと思います。
なお、主線部はファミコン同様"黒"でも良かったのですが、せっかくぼんやりした色使いにしたのに、境界線が黒だと強すぎてスプライトを重ねたときに、邪魔になりそうだったので、暗青色や暗緑色で引いてみました。
基本的にキャラクタが重ならない"床"のブロックは境界と影の主線として黒を使って凹凸を強調してみました。
床の黒線でわかると思いますが、黒の境界線のほうが圧倒的にはっきりした色合いになるので、MSX2 SCREEN4 +カラースプライトで、スプライト側にも主線を描き込むなら黒主線を検討するの余地もあるかと思います。
立体ロゴにも応用できるかも?
背景色で主線を表現する応用例が、以前発表した描き直しバージョンの「バベルの塔」タイトルロゴです

全体背景が赤+黒のストライプ表現。文字部分が赤+黄色のストライプ表現で、背景色と共通の赤のライン部分には境界線として3色目が入れられます。
左境界線は明色(ハイライト)、右境界線は太目の黒(シャドウ)とすることで、立体表現にも寄与してます。
なお、8ドット2色の制限により、8ドット内にハイライトとシャドウの両方が必要な箇所では、左側のハイライトエッジが描けてないところがあります。

絵全体としては、右上から左下に流れる線(Aの左肩など)ハイライトを1段明るくすることで、左上からの光源を強調して、ハイライトが連続していないことに「言い訳」的な理由をもたせると同時に、描けない場所(Bの縦棒など)は"黒(影)"を優先して文字としての外形を整えています。
このへんは「正しさ」より「勢い」で押し通る感じです。
この手法は、色に制限がつきますが、左側にハイライトをいれなければ安定的に利用できます。
くっきりした境界線のあるキャラクタは目立ちますので、たとえば地形としてのチップには境界線を持たせず、ボスキャラなどにだけ境界線をもたせるような使い方で、画面にメリハリを付ける効果も狙えると思います。
まとめ
以上、ここ2年くらいの成果から、割と新し目の「8ドット2色攻略情報」になったかとおもいます。
今回で触れていませんが、SCREEN 4でも、パレットを適切に設定すればより美しい(自然な)混色表現や境界線表現が可能なので、応用範囲が広がったかな? いずれ、ニュージーランドストーリーやラスタンサーガあたりの背景描き直しもしてみたいです。
また、2行一組の混色をずいぶん精度よく変換できるツールも出てきましたので、++や3などのニューハードに合わせて、SCREEN2(1.5)や SCREEN 4 系の 新しいゲームも出てくるんだろうなぁっと期待してます。
MSXの精神「上位互換」というのは、温故知新の体現ですからね。
いいなと思ったら応援しよう!
(チップに限らずコメントなど)応援していただいたシリーズは、続きや描いた絵を実機で表示するためのデータの公開など追加コンテンツも考えますので、ぜひワンアクションを!
あと、リクエストも歓迎します。
