2018/9/25 | 投稿者: ghost

今回の実装の本丸に当たる部分をエイエイヤッとやってみた。これでほぼ技術的な課題はすべて片付いたので、後は細々とした残り部分を詰めていくだけで、しかも48KBフォーマットを採用した甲斐あって現時点でまだ11KBも残り容量がある。ここまで思惑通りに進むと、何かトンでもない抜け漏れが潜んでいるんぢゃないか、と返って不安になるのは職業柄のビョーキ。


MSXに限らず、この世代のプラットホームのビデオゲームで、このサイズのキャラクタがこういうアニメーションをしながら移動する、というのはなかなかどうして稀だと思うので、インパクトだけはあると思うが、これは突き詰めれば手間暇の問題……そしてボクは暇なのである……に過ぎないのであって、技術的に特殊なことは何もない。

基本的な実装はINQ&SUQ任意サイズPCGキャラクタ表示処理の流用になる。否、厳密に言えば、INQ&SUQの処理を書いた時点で本作のこの演出が念頭にあって、その技術検証のためにINQ&SUQがあった、というのが正しいところになるが、我ながら短気なのか底抜けに気が長いのか、よくわからなくなる話ではある。繰り返し述べているように、本作は見た目の派手さほどには処理密度が高くないので、もう二回り大きいキャラクタでもフレーム落ちせずに動かせるとは思うが、これ以上の大きさは逆にデザインや演出の面で粗が目立つだろうから、この辺りが落とし所だろう。

で、手間暇の方の話をすると、ご覧の通りこの空中要塞は、本作で用いられている1ドットが2×2ピクセルから構成される拡大スプライトモードよりも、さらに大きい4×4ピクセルを1ドットとする単位で描画されている。このスペックはMSX的にはMULTI COLORモード(MSX BASICのSCREEN3)に相当するが、直接には関係がない。このキャラクタは、動きが8ピクセル単位の粗いものになっていることからわかるように、GRAPHIC 3モードのPCGで描かれている。MSXのPCGでは1ライン8ピクセルにつき2色を使うことができるが、これをPCG1つの各ライン毎に左半分と右半分に1色ずつ割り当てて4ピクセル行連ね、同じことをもう一度やって、それぞれ任意の色を取り得る正方形4つを含むPCGとしている。これを敷き詰めてキャラクタが描かれる。そういう意味においては、技術的には直接の関係はないが、考え方はまさにMULTI COLORモードのそれと同じだ。

で、手間がかかったのは、表示したい絵柄を、この4色タイルの組み合わせデータに変換する作業であって、もちろんゲーデル数的発想ですべての配色のPCGを定義してしまえば機械的変換が可能だが、それではPCGの数(画面1/3につき256種)が全然足りなくなってしまうので、まず元絵を描いて、その絵の中で用いられている配色を抽出してPCGに割り当て、同じ配色の部分が出てきたら定義済みのPCG番号を割り当てる、という、おそらくこれを読んでいる誰も俄かには理解できないだろう超面倒臭いことを、すべて手作業でやった。

クリックすると元のサイズで表示します
<デザイン用のワークシート>

以下、自身の思い出として、何をやったのか書き遺す。

続きを読む
タグ: MSX Z80




AutoPage最新お知らせ