LECTURE
Oeffentliches Kunst Nr.7
H17/10/13記述
続・ゲーム開発専用グラフィックエディタ
 では、前回に引き続き風雅システム社内ツールのご紹介をいたしましょう。今回は予告通り、アマランス2開発用に新しく開発されたグラフィックエディタについてご紹介いたします。
 アマランス2用グラフィックエディタ「NMED」
PCGエディタモード画面
 【画面1】 アマランス2開発用エディタ「NMED(ヌメッド)」
PCGエディタモード画面
 アマランス2はビートバイスやアマランスと異なり、4096色中の16色に対応する製品となりました。推奨マシンをPC-9801VX以降の機種に設定したためです。PC-9801VMでは別売りの16色ボードの装着が必要でした。これにより、開発用のグラフィックエディタも16色に対応する必要が生まれました。
 そこでこれを機にMED2を一気に改良して、よりグラフィックデータの質および生産性の向上を図りました。
 プログラムは1から作り直しました。名称はNMED(ヌメッド)。安直に"New Map EDitor"の略です。 【画面1】がそのPCGエディタモードです。従来に比べてドットエディットエリア(画面左2/3)がグッと広くなっています。16×16ドットのPCG(MAPの最小構成単位を便宜上このように呼ぶことにします)が9個同時にエディットできます。MED2ではこれが4個でしたら、倍以上の広さがあることになります。これが作業の効率向上に大きく寄与します。
 また、色パレットが小さくエディットウィンドウの周囲に配置されているのがまたミソなのです。ペン色変更時、最小のマウス移動で目的を達成できる仕掛けです。画面縁にパレットがあることにより目的パレットにポイントしやすく(画面縁だと縁側へカーソルを押しつけるようにすればOK)、誤操作を防げます。左ペンの色なら左クリック、右ペンなら右クリックすればペン色が変更されます。【画面1】ではわかりづらいですが、左上隅と左下隅には「タイルペン」選択パレットが配置されています。
 NMEDはPC-9801専用のため、通常のウィンドウズ用のアプリケーションには応用しづらい仕様ですが、全画面モードで動作するのが前提の場合は応用が利くと思います。
描画アイコン
【画面2】 描画アイコン
 アイコン類は画面右下にコンパクトにまとめられています。ひとつのアイコンを左クリックと右クリックで使い分けているのが特徴です。【画面2】がそのエリアを拡大したものです。

編集中PCG(9個分)の実寸イメージ。
編集モード切替ボタン×3。
描画アイコン×12。
現在のタイルペン色。
ファイルの読み込み/保存。PCGファイルとアナログパレットファイル用。
PCG数の設定と拡張機能(キャラクタの切り出し)
現在のアナログパレットの参照・変更と、ドットエディットエリアのガイドラインの色設定。
マスクプレーンの設定。
PCGカーソル位置のPCG番号。
TILEタイルペン色の設定。
終了NMEDの終了。
TESTFILLフィルパターンテスト。作成中のPCGの実寸でエディットエリアを塗りつぶします。手軽にMAPに使用したときのイメージを確認するための機能です。
UNDO直前の操作をキャンセルします。

 描画機能に関してはMED2とほぼ同じですが、強化点として、「太ペン」と「偶数円」機能があります。太ペンは2×2ドットのペンです。偶数円直径が偶数値になる円を描画するものです。1ドットの中心を指定して円を描画させると通常は直径が奇数になってしまい、仮に16×16ドットのPCG一個に内接する円を描こうと思ってもそれができません。偶数円は中心が2×2ドットの太点の中心になるような円を描画します。円描画アイコンを左クリックすると奇数円が、右クリックすると偶数円が描けるようになっています。
 また、水平/垂直反転、左右シフト、上下シフト、矩形/矩形塗りアイコンも左クリックと右クリックで動作を分けています。90度回転の場合は回転方向が逆になります。
色抜きコピー機能
【画面3】 色抜きコピー機能
 そしてもう一点、「色抜きコピー機能」があります。コピーアイコンを右クリックすると、【画面3】のようなポップアップウィンドウが表示されます。全16色の中から、コピーを実行するときにコピーしない色を選択指定することができます。この例では、紺色と朱色と水色のドットが透明になってコピーされることになります。つまり、色指定型のマスクコピー機能といえます。
 操作も単純で、抜きたい色をクリックするごとに×マークがついたり消えたりします。
アナログパレット設定ウィンドウ
【画面4】 アナログパレット設定ウィンドウ
 【画面4】はアナログパレットの変更ウィンドウです。数字の上でクリックすることで数値を変更します。左クリックでアップ、右クリックでダウンです。変更したアナログパレットはリアルタイムに反映されます。
 パレットはゲーム画面全体に影響を与えますが、プレイ中でも任意に変更可能なため、MAPによって微調整することを前提にした機能です。
ファイル操作ポップアップファイル操作ポップアップ
【画面5】 ファイル操作ポップアップ
 ファイルLOAD/SAVEアイコンを左クリックすると【画面5】左のポップアップが表示されます。ここでさらに左クリックすればファイルLOAD用ファイル一覧ウィンドウが表示され、右クリックすれば【画面5】右の圧縮指定ポップアップが表示されます。圧縮指定ポップアップはSAVEする際のデータ形式を決定するもので、ここでさらに左クリックするとPCGデータはそのまま保存されます。右クリックした場合は専用の圧縮処理が施されてから保存されます。
 圧縮保存されたデータは専用のユーティリティでさらに他のデータと一緒に圧縮され、製品ディスクに入れられます。非圧縮のまま保存されたPCGデータは、圧縮効率を上げるため空白を詰めるユーティリティや未使用PCGを削除するユーティリティ、ファイル間PCGコピーユーティリティにかけることができます。
PCGファイルSAVE(LOAD)ウィンドウ
【画面6】 PCGファイルSAVE(LOAD)ウィンドウ
 保存や読み込みが確定すると【画面6】のファイル一覧ウィンドウが表示されます。ここではマウス操作のみで直感的にファイルの選択操作ができます。ドライブ変更、ディレクトリ(フォルダ)の移動、一覧ページ切り替えなどがスピーディーに行えます。
 新規にファイルを名前を付けて作成するときは、現在のパス名表示欄をクリックし、任意のファイル名をキーボードから入力します。
マスクエディットモード
【画面7】 マスクエディットモード
 【画面7】はマスクエディットアイコンをクリックして、マスクエディットモードに入ったときの画面イメージです。マスクがつけられた部分が「×」で表されています。このモード中は、画面右下のマスクメニューのみが有効となります。マスクメニューの機能は以下の通りです。
マスクドットマークの変更。クリックするごとにマスクドットを表すマークが「×」→「■」→「」と変化します。その都度、認識しやすいマークを自由に選ぶことができます。
マスクドットマークの色変更。クリックするごとにマスクドットの色が変化します。青・赤・マゼンダ・緑・シアン・黄・白の7色から自由に選択できます。
任意の矩形領域をマスクドットで塗りつぶします。
任意の矩形領域をマスクドットで網状に塗りつぶします。
マスクエディットモードを終了します。
現在表示されている全マスクドットを消去します。
情報域とPCGエリア
【画面8】 情報域とPCGエリア
 【画面8】は情報表示域です。
ドットエディットエリア内の現在のカーソル座標。
現在のペン色。タイルペン選択時はタイル色が縦に2色表示されます。
PCGエリアのスクロール。赤い矢印で示されるようにPCG3つ分だけ上下にスクロールします。
上辺と下辺にあるゲージの0〜13の数値は現在登録済みのPCGの座標を示すものです。左辺にも5と10のゲージ数値が見えますが、の上下ボタンでPCGエリアをスクロールさせるとそれに伴って変化します。
 NMEDでは最大で252個のPCGを作成・登録・保存できるので、14×18=252となることから、18行分のPCGエリアが必要になることがわかると思います。ちなみに、なぜ256個ではなく252個なのかというと、実はそれほど大きな理由はありません。当然、ゲームプログラムの方は256個のPCGに対応していますが、NMED側がデザイン上、この方が綺麗にまとまるから・・・というのが答えになるでしょうか。
 NMEDのMAPエディットモード
MAPエディットモード
【画面9】 MAPエディットモード
 【画面9】がNMEDのマップエディットモード画面です。アマランス2用ということで、MAP表示エリアの大きさも製品に合わせてあります。MAPエディットモードもMED2に比べてより洗練されて機能的になっています。ちなみに【画面9】のMAPはファネルの港町の東に続く町はずれの湖のもの。湖の中に見える宝箱には中ボス「トロイエン」が潜んでいます。残念ながら製品で省略されたイベントのため、このMAP自体が製品では未使用になっています(でもデータ自体は製品に入っています)
MAPエディットアイコン域
【画面10】 MAPエディットアイコン
  【画面10】はMAPエディットアイコン部分を拡大したものです
MAPをスクロールさせるためのカーソルボタン。右クリックで高速スクロールします。
あらかじめPCGにMAP属性を設定したり、その一覧を表示したりする。
MAPに直接属性を設定する。
MAPデータの読み込み/保存。
アナログパレットの読み込み/保存。
アナログパレットの設定とMAPの初期化。
プレイヤーキャラクタの表示および実アニメーションイメージの表示。
全体図の表示、および指定属性の全体分布確認。
MAPファイル情報の設定/変更。
10
MAPの部分パーツ切り取り。
11
MAPの部分パーツ張り込み。
属性設定/一覧選択ポップアップ
【画面11】 属性ポップアップ
  のアイコンをクリックすると【画面11】のMAP属性ポップアップが表示されます。ここで左クリック(設定)すると【画面12】のようにアイコン域が変わります。赤矢印で示されるように、指定したPCGのMAP属性を設定・変更できるようになります。ここでMAP属性をPCGに登録しておけば、MAP上で改めて属性を設定する必要がなくなります。
 また、右クリック(一覧)すると【画面13】のように、現在登録されてるPCGのMAP属性が表示されます。見やすいようにコントラストも調整可能です。
MAP属性登録画面
 登録属性一覧表示
【画面12】 MAP属性登録画面
【画面13】 登録属性一覧
  のアイコンをクリックした場合は【画面14】のMAP属性設定画面になります。右上のウィンドウで設定した属性ビットをマウスでMAPに置いていくイメージです。もちろんここでも画面のコントラストを調整したり、属性表示の色を自由に変更したりできます。また、矩形域を同一の属性で塗りつぶすことも可能です。この操作性の気持ちよさは癖になります(?)。
MAP属性設定画面
【画面14】 MAP属性設定画面
全体図選択ポップアップ
【画面15】
全体図選択ポップアップ
MAP全体図
【画面16】 MAP全体図
  のアイコンはMAPの全体図を表示するもので、クリックすると【画面15】のポップアップが表示されます。ここで左クリックするとMED2と同様のMAPの縮図(【画面16】)が表示されます。(ちなみにこのMAP縮図はトローツェン丘陵のもの)
 
逆に右クリックした場合は、MAP全体の属性分布チェック画面になります(【画面17】)。ここでチェックしたい属性ビットを点灯させ[決定]をクリックすると、【画面18】のように指定した属性ビットと合致する部分のみが白で表示されます。この場合は「障害物属性」を持つ部分のみが白で、それ以外が黒で示されています。この機能はMAP属性の設定漏れのチェックなどに絶大な威力を発揮します。
MAP全体図
【画面18】 属性全体図
分布チェック属性設定
【画面17】 分布チェック属性設定
 
MED2では直接MAP上で属性を打ち込み、チェックもひとつひとつMAPをスクロールさせながら確認していましたから、いかに効率的になったかおわかりいただけると思います。属性設定のミスはそのまま製品のバグとなるので、このチェックを確実に行うことは製品の品質向上に大きく貢献します。
 これらMAP属性に関する機能の充実はNMEDの最も大きな特徴といえます。
分布チェック属性設定
【画面19】 MAP情報設定・変更画面

 【画面19】は の[INFO.]で表示される画面です。最初の確認入力以外はすべてキーボードから入力します。
 MAP-IDはMAPファイルの識別コードで、最終データ作成時に利用されます。
 また、MAPサイズは拡大・縮小が可能で、作成途中でも自由に変更することができます。
 1011 はMAPの一部矩形域を切り取ってファイルに保存したり、それを読み込んでPCGファイルが共通の他のMAPに貼り付けたりするときに使います。これはゲーム中にMAPの一部を変化させるときにも使用します。例えば大きな扉が開いたり閉じたりするイベントがあった場合、扉が開いたMAPを作ってからその部分を切り取っておきます。そのMAPの初期状態では扉が閉まっており、イベントで扉を開ける際に切り取っておいた扉が開いたパーツを貼り込むわけです。実際にアマランス1〜4のすべてがこの手法を用いています。ちなみに扉がずっと開いたままになる場合は、そのMAPに切り替わる際にフラグをチェックして、MAPを表示する前に該当パーツを貼り込んでいます。
全体図選択ポップアップ
【画面20】
圧縮指定ポップアップ
  でMAPを保存する場合、【画面20】のポップアップが表示され、PCGの保存のときと同じように圧縮形式を尋ねてきます。PCGのときと異なるのは圧縮形式に2タイプあるということです。実はこの圧縮L.V.1とL.V.2はアルゴリズムが全く異なります。つまり、MAPファイルごとに圧縮率の高い方を使用することによって、MAP全体のファイルサイズをより小さくできるわけです。ゲームプログラムは圧縮のタイプを確認し、それぞれに対応した圧縮展開ルーチンを使ってMAPデータを復元しながらメモリに読み込みます。
 NMEDのMAPアニメーション作成モード
MAPアニメーション作成画面
【画面21】 MAPアニメーション作成画面
 MED2では保留になっていたMAPアニメーション作成モード(【画面20】)が追加されています。最大12パターンのPCGアニメーションが32種類登録できます。これはアマランス2のMAP表示ルーチンの仕様に合わせたものです。
 使い方はシンプルで、アニメーションセル(=PCG1個)を順にパターン(0〜11)に登録します。ここで実際にアニメーションさせてみて、スピードを調整します。調整が終わったらテーブル(0〜31)に登録します。
MAPアニメーション設定画面1
【画面22】 MAPアニメーション設定画面1
 登録したアニメーションをMAPに配置するには、白地に青の数字PCG(この数字が登録したテーブル番号)をMAPに置いていきます。これでアニメーションの設定は完了です(【画面22】)。
 また、最大で32種類のアニメーションが扱えるわけですが、これによって使用できるPCGの数が減ることはありません。最大で252個、きっちりと使用できます。 の[ヒーロー]アイコンがアニメーション表示の切り替えスイッチを兼ねているのです。
MAPアニメーション設定画面2
【画面23】 MAPアニメーション設定画面2
 【画面23】は【画面22】の設定を実際の表示に切り替えたものです。右の青数字PCGが消え、本来登録されていたPCGが見えています。この状態でこれらのPCGも普通に使用することができます。青数字PCGはあくまでもアニメーションを配置するための便宜上のPCGなのです。
 ちなみに【画面22・23】も未使用のナイフ海のマップです。舟で強制横スクロールするはずだったものです。アマランス2設定資料集下巻をお持ちの方は、だいたいどのあたりのMAPかおわかりになると思います(^_^;)。
 NMEDのPCG切り出しモード
MAPアニメーション設定画面2
【画面24】 PCG切り出しモード画面
 初代MEDから受け継がれてきた、他のCGファイルからのPCG切り出しモードも健在です。MEDおよびMED2ではBRGベタファイル(拡張子.B1/.R1/.G1)が対応ファイル形式でしたが、NMEDではZIMファイルのみの対応となっています。これは社内の市販グラフィックツールがZeit社のZ's Staff KID2だったためで、CGの社内標準ファイル形式に合わせることにより、作業の効率化を図ったものです。
 このモードでは【画面24】のように、640×400ドットの.ZIMファイルを読み込み、その中の任意の部分をPCGとして切り出せます。画面右下の矢印ボタンで切り出し画面をスクロールすることができます。
 NMEDのその他
 NMEDは描画関連の機能だけでなく、当時としてはかなり細かな配慮がなされていたと自負しています。下の【画面25】もその中のひとつで、データを変更したのに保存をしないで終了させようとするとこのようなメッセージが表示されます。徹夜続きで意識が途切れがちになっているときなどにはうれしい(?)機能です。
MAPアニメーション設定画面2
【画面25】 ファイル保存確認画面
MAP全体図
【画面26】 キャラクタ保存画面
 また、NMEDはキャラクタエディタの機能も持っています。MAPの部品としてのPCGだけではなく、汎用のドットエディタとしても十二分に使用できます。PCGエディタモードで[PCG]アイコンの下のカラーアイコンをクリックすると、【画面26】の右下に見える拡張機能ポップアップが表示されます。ここでハサミのアイコンボタン(といってもこれしかありませんが)をクリックすると、作成したキャラクタの切り取りモードに入ります。切り取るキャラクタの範囲を決定するとファイル保存画面に切り替わります。任意のファイル名をつけて決定すると、キャラクタファイルが出力されます。アマランス2ではアニメーションの順に切り取り、専用のツールでキャラクタデータファイルを作成しています。ちなみにアマランス2の呪術効果(バルム系・バシュ系・メッサなど)もNMEDで作成されています。

 以上、かなり長々とNMEDの解説をしました。ほとんど操作マニュアルといっても過言ではないほどになってしまいました。折角ですので(?)、もしご希望の方がいらっしゃっいましたら、このNMEDの実行ファイル一式をお送りしても構わないと考えております(フリーソフトというわけではありませんので、その点はご理解ください)。実機(PC-9801シリーズ)はもちろん、Windows上のエミュレータでもほぼ動作いたします(Anex86およびnekoプロジェクト2で確認)。ドットエディタとして十分に使用に耐えると思います。ご希望の方はこちらまでメールにてお知らせください。


特別講義メニューページへ
ディン:「ここまでやればごリッパ!」