LECTURE
Oeffentliches Kunst Nr.6
ゲーム開発専用グラフィックエディタ
 ゲーム開発には、それに使用するデータの作成効率を上げるための様々なエディタが必要とされます。特にグラフィックデータ作成のように時間のかかる作業用のものは、それによって高効率化を狙うことができます。
 6回目の今回は、そんな「ゲーム制作専用エディタ」を紹介しながら話を進めていきたいと思います。これまで風雅システム社外には一切出ることのなかったツールたちが初お目見えしてまいります。
 リボルティー2用パターンエディタ
 【画面1】 デカキャラエディットモード
 リボルティー2に使用されたエディタは完全に特化されたものになっていました。Nr.01で解説したように、リボルティー2のグラフィックデータは非常に特殊なものにならざるを得ません。プログラムを組みやすいようなデータが得られるように、メインプログラマがマップエディタとキャラクタエディタも作成しています。
 特にマップエディタは特殊で、1プレーンのみの作成およびエディット作業で多色表現をするため、原理を理解したデザイナが試行錯誤を繰り返しやすいような仕様になっています。また、X1という8bit機でマウスも使いにくかったため、操作はすべてキーボードで行います。
 まず、チップ作成モードで32×16ドットのマップ構成チップを作成し、マップ作成モードに切り替えて作成したチップを並べてマップをデザインします。このとき、より高速にスクロールが可能になるように、デザイナが属性情報を同時に設定していくことになっていました。
 一方、キャラクタエディタは比較的理解しやすい形式になっています。早い話が、赤・白・黒・透明の4色が使えるドットエディタです 【画面1】。32×16ドット単位で拡大エディットします。これは640×200ドットいう解像度に機能を合わせた結果です。(確か)BASIC+マシン語で作られていました。
 ちなみに、これ以外のグラフィックデータはPC-9801上で作成されていました。そこは16ビット機を有効に活用しないと・・・・。でも、そうであれば、マウスが簡単に利用できるPC-9801上でマップやキャラクタも作れば?と思われるかもしれません。ところがいかんせん、PC-9801上で作成したデータは特別なファイル変換ソフトでX1にも読み込めるフォーマットに変換しなければなりません。この手間が結構面倒くさいのです。この点、X1上で作業するのであれば、カット&トライを簡単に手短に行うことが可能です。特に作成したデータによるスクロール速度の変化を確認する意味において、PC-9801上でスクロール動作をエミュレートするという選択肢は消えます。
 ビートバイス用グラフィックエディタ「MED(メッド)
 スクロール型シューティングゲームという点では、ビートバイスもリボルティー2と同じです。そしてまた、グラフィックチップ(以降便宜上PCGと呼ぶことにします)を並べてスクロールマップを構成するという点も類似しています。したがって、エディタに求められる基本的な機能も同じです。つまり、スクロールマップを構成する最小単位であるPCGを作成および編集でき、それらを任意に並べてマップを作成および編集でき、そのデータを保存および読み込めればよいということです。
PCGエディタ画面
 【画面2】 ビートバイス用PCG&MAPエディタ"MED(メッド)"
PCGエディタモード画面
 ところがビートバイスでは大きく変わったことがあります。それはX1用ではなくPC-9801用ソフトであるということ。ツール類も16ビットCPU+640KBメモリ+マウスという環境で贅沢に(?)作ることができるということです。また、16ビットCPUであるがゆえに、高機能のCコンパイラが使用可能であるという点は最大のアドバンテージといえるでしょう。
 【画面2】はビートバイス用のグラフィックデータエディタ"MED"の画面のひとつです。640×400ドットの画面をフルに使用しています。もちろんフルマウスオペレーションです。ビートバイスは4096色中の8色で表現されていたので、エディタもそれに合わせてあります。
 では、簡単に機能を説明しましょう。画面右下端の5つのボタンがモードを切り替えです。黄色のボタンがこの「PCGエディットモード」、水色のボタンが「PCGカットモード」、緑色のボタンが「マップエディットモード」、ピンクのボタンが「MAP障害物設定モード」、そして白色のボタンが「アニメーション設定モード」(未使用)です。
 その左横の1〜4のボタンは、左側に表示されているPCGのページ切り替えボタンです。ビートバイスは8×16ドットのPCGを最大で1024個も同時に表示できる仕様になっていたので、このようにページ切り替え方式にしてあります。作成したPCGはここ(画面下部)に登録します。
 【画面2】はPCGエディタモードで、画面上3分の2で8個のPCGを同時に編集できるようになっています。もちろんこの8個のPCGは完全にバラバラに登録することができます。つまりこの形に隣接している必要はありません。製作者が自由にレイアウト可能です。
 描画機能としては、上下左右の1ドットシフト、上下ミラー反転、90度回転、直線、矩形、矩形塗り、円、色変更、コピー、点描です。任意領域の塗りや楕円、曲線などはサポートしていません。
 色数が8色と少ないこともあって、2色タイルが手軽に使えるような仕様になっています。画面に8色のパレットが2セットありますが、右がペン色用、左がタイル決定用です。ペンは左クリック用と右クリック用の2本が同時に使用できます。ペン色にタイルを選択するには"TILE"の文字を左または右クリックします。
MAPエディタ画面
 【画面3】 MAPエディタモード画面
 【画面3】はMAPエディタモードです。画面上3分の2が切り替わります。
 操作は直感的なので画面を見てもらえればおおよそ見当がつくと思います。PCG登録域から任意矩形単位でMAP域に貼り込んでいきます。もちろんMAP域内でのコピーも可能です(【画面3】はMAP内のコピー中の様子)
 下の【画面4】はMAP障害物設定モード時の画面です。
障害物設定モード画面
 【画面4】 MAP障害物設定モード画面
 エディットの様子がわかりやすいように、カーソル付近に適当に障害物属性を設定しているところです。8×16ドットのPCG単位で設定するようになっています。これより細かな範囲は指定できません。当初はこのPCGをさらに4分割して設定できるような仕様を考えていたのですが、機体の当たり判定を緩めることによってその必要性があまりないことに気づき、一見すると大雑把にも思える仕様になっています。
 余談になりますが、画面のMAPの下部に障害物属性の設定されていない部分が見えると思います。このMAPデータは実際の製品用のものなのですが、多くのMAPにこのような「隠された通路」が存在します。ビートバイスをお持ちの方は是非一度探してみてください。
 
PCGカットモード画面
 【画面5】 PCGカットモード画面
【画面5】はPCGカットモードの一例です。このモードは他のグラフィックツールで作成したデータやイメージスキャンによるデータをPCGとして取り込むことを可能にするものです。ベタファイルを読み込んで画面上部に表示し、その中の任意の部分を下部PCG定義領域にコピーして取り込みます。
 この機能はMAP埋め込みタイプのデカキャラの作成に特に威力を発揮します。
MAPエディット例
 【画面6】 MAPエディット例
 以上のような機能を一本のツールとして統合することによって、効率よくグラフィックデータを作成できるようにしているわけです。
 また、このMEDの吐き出すデータファイル(PCGおよびMAP)は、直接シューティングプログラムにコマンドライン引数として与えることができ、作成したデータですぐにテストプレイができるようになっています。
 このMEDはC言語(Turbo-C 1.5)で記述されており、当然(?)ラージモデルでコンパイルしてあります。ちなみにラージモデルとは、8086系CPU用コンパイラにおいて、プログラムサイズもデータサイズも64KBを超える規模のオブジェクトを作成するときに選択するコンパイル形態のことです。実行速度やオブジェクトサイズでは不利になりますが、大規模なアプリケーションが作れるというメリットがあります。MEDはそれほどに大きなツールプログラムだったわけです。
 汎用セミグラフィックエディタ「SGEDIT
 社内ツールのグラフィックエディタの中でも変わっているのが、この「SGEDIT」です。このエディタはPC-9801(強いて言えばPC-8001/8801にも対応)に特有の「セミグラフィック」専用のエディタなのです。セミグラフィックはANK文字で80文字×25行のテキスト画面を使ったグラフィックのことで、160×100ドットの解像度があります。ただし、所詮はテキスト画面上なので、色は文字単位で8色しか設定できません。
 セミグラフィックはメモリの少なかった昔のパソコンでも、それなりにグラフィックっぽい表現ができるように取り入れられたもので、主に互換性維持のためにPC-9801にも残っていたようです。ちなみにSHARPのMZ-80シリーズには80×50ドットのセミグラフィック機能がありましたし、日立のベーシックマスターJr.やPanasonicのJR-100、TandyのTRS-80などにもありました。
セミグラフィックエディタ「SGEDIT」
 【画面7】 セミグラフィック専用エディタ「SGEDIT」
 【画面7】がSGEDIT使用中画面です。直線・円・フリーハンド・矩形・矩形塗り・反転など、基本的な描画機能のみサポートしています。また、色もサポートしていません。理論上はキャラクタ単位(2×4ドット)で8色中任意の色(ブリンクも可)が指定できるのですが、ゲームに利用する場合は色の指定をプログラムで処理すればよいため、単色のみの対応になっています。
 ビートバイスの特殊兵器「サンダーテンペスト」や「サークルショット」などのセミグラフィックパターンの作成などに利用されていました。
 このSGEDITの出力するデータファイルはオリジナル形式のもので、風雅システムの汎用高速グラフィックライブラリである「FGライブラリ」内のセミグラフィック用関数で直接使用することができます。このあたりが社内ツールの強力なところで、作業の効率化に大きく貢献しています。
 アマランス用グラフィックエディタ「MED2
 当然、アマランスにも専用のグラフィックエディタが存在します。アマランスは非強制型8方向スクロールのゲームですし、そもそもMAPの最小構成単位であるPCGが16×16ドットとなっており、ビートバイス用のMED使いまわすわけにはいきません。専用のグラフィックエディタの作成には大変な時間と労力が必要となりますが、トータル的な労力(グラフィッカの手間やデータ変換など)を考えると明らかに得策といえるため、新たに専用のエディタを開発することにしました。
PCGエディット画面
 【画面8】 アマランス用PCG&MAPエディタ"MED2(メッド・ツー)"
PCGエディット画面
 社内ツールの名称にこだわってもしょうがないので、新しいMAP作成用グラフィックエディタの名称はMED2としました。左の【画面8】がMED2のPCGエディタモードの画面です。画面のレイアウトが異なる以外は機能的にもそれほど変わりません。アナログパレットの変更機能や、領域ペイント機能が追加された点と、マスクデータが設定できるようになった点くらいでしょう。  マスクデータとは、一般的なグラフィックエディタにある描画補助的な「マスク機能」とは異なり、PCGの重ね合わせに使用するデータを指します。
 ちなみに、【画面8】でエディトしているPCGは「ビレンの塔」のものです。製品に使用されているデータです。
MAPエディット画面
 【画面9】 MAPエディット画面
 【画面9】はMED2MAPエッディットモード画面です。こちらも一見するとレイアウトが変わっただけに見えますが、実はMAPエディタは高機能になっています。
 MEDからの変更点として、8方向スクロール対応になったのは当然として、二重スクロールに対応するために、遠景用と近景用のMAPが作成できるようになっています。また、画面内にプレイヤーキャラクタを表示できるようなっており、プレイ中と同じように移動させることが可能です。
MAP情報エディット画面
 【画面10】 MAP情報エディット画面
 この機能は地味なのですが、効果はとても大きなものです。実際のプレイイメージを確認しながらMAPのデザインができる点は「必須」ともいえるものがあります。
 さらに【画面10】のように、MAPの属性情報を重ねて設定できる機能を持っています。マウス操作でMAPをスクロールさせながら、キーボード(カーソルキーとテンキー)で属性ビットをON/OFFできるようになっています。属性情報はテキスト画面で合成表示されているため、見やすいようにグラフィック画面のパレットを操作して明度を下げているところがミソです。
全体イメージ画面
 【画面11】 MAP全体イメージ画面
 そしてもうひとつ、MAPの全体イメージも確認できるようになっています(【画面11】)。この機能はデザインをする上において非常に便利ですが、それだけではなく、ユーザからの質問に答えるときにも重宝しました。例えば隠れキャラの居場所であったり、イベント発生地点であったりと、プリンタで印刷したものに説明を書いて返信していました。
PCGカット画面
【画面12】 PCGカット画面
 【画面12】はMED2のPCGカットの画面です。ベタファイルを読み込んで、任意の部分をPCGとして取り込むことができます。この例ではシュテラール城用のPCGが編集されていますが、下の方にエフォイスライムのパターンが登録されているのが見えると思います。このようなMAPに埋め込まれたボスキャラなどの作成および登録に威力を発揮する機能です。
アニメーション作成画面
【画面13】 アニメーション作成画面
【画面14】 背景合成アニメーション設定画面
 そして左の【画面13】がPCGによるMAPのアニメーション作成をサポートするものです。アマランスでは2〜4パターンのMAPアニメーションをサポートしていましたから、それに合わせた形になっています。
 アマランスのMAPアニメーション機能は結構強力で、定期的にPCGが1つまるごと別のPCGと入れ替わることでアニメーションを実現する「PCGアニメーション」と、マスクを付けたPCGと別のPCGを合成して背景側のPCGのみをアニメーションさせる「背景合成アニメーション」の2種類があります。とくに後者はPCGを節約しながら自然なアニメーション表現をすることができ、水の流れを表すときに特に重宝します。【画面14】がその設定例です。河岸が複雑な形であっても、水の部分にマスクを付けておけば、あとは属性の設定のみで自然な水の流れが表現できます。この例ではテスト的に川の流れのアニメーション用PCGを白と赤のマークに置き換えてあります。
 これ以外にも、違うPCGファイル同士で任意のPCGをコピーし合うツールや、圧縮効率を上げるため、歯抜けになっているPCGを詰めるツールなど、いろいろと存在します。何十枚もあるMAPを効率良く作成するため、メインのゲームプログラムと同等かそれ以上の労力をツール類にかけているかもしれません。
 「質の高いソフトを制作するには、質の高いツールが必要である」というのは風雅システムのひとつのポリシーになっているといっても過言ではありません。これをさらに推し進めたのが、今度紹介する予定のアマランス2用MAP作成用グラフィックエディタ「NMED」です。究極ともいえるその操作性など、紹介していきたいと思います。

特別講義メニューページへ
ディン:「大変な労力をかけてるわね〜」