XVY 開発講座


はじめに

 開発講座と銘打ってはいますが、データ開発のノウハウは私もまだほとんど持っていません。 ですから、このページでは私がこれからキャラクター等の開発をしていく中で得たノウハウを 逐次書き綴っていこうと思います。

 XVY自体が、まだ仕様がフィックスしていない部分がありますし、 常に最適解に私が辿り着けるとも限りません。ご容赦ください。
 また、皆さんのフォローもお待ちしてます。

(2001/06/14)

SFXVIのステージデータをXVYで使う

 XVYにおいて何が問題かといえば、データがほとんど出まわっていないということでしょう。 仕方がないことですが。SFXVIとの互換性もないですからね。
 しかし、ステージデータについては比較的簡単に流用することが出来ます。 今回はその方法について書いていきます。

★必要なものを集める
XVYシステムキット
GRPデータ表示プログラム(GRPprint.x)
ZMUSIC用小物ツール(DtoS.x dis_zpd.x)
ZMS→MDCコンバータ(ZMS2MDC.x)
PDX 作成ツール(PDMK.x PDXM.x)

 XVYシステムキットは ここから ダウンロードしてください。現時点での最新は01/06/10版です。 ダウンロードしたファイルを展開したら XVY/DEVELOP/BIN にパスを通してしまいましょう。

 続いて、GRPデータ表示プログラムですが、 ぴくせるさんが作られた GRPprint.x くらいしかありません。 現在手に入れられるかどうかは不明です。入手方法および代替プログラムをご存知の方は一報を。

 以下はBGMのコンバートに必要なツールについてなので、その必要のない場合は読み飛ばしても結構です。

 まず、DtoS.x、dis_zpd.x はZMDをZMSに変換、ZPDをバラバラに分解するツールです。 両者ともmu-Z Studioより ダウンロードできます。
なお、dis_zpd.xはPDX_ZPD に含まれています。

 ZMS→MDC変換ツールはCUL.CANで ダウンロードできます。 ZMS2MDC.xだけでなくドライバなども一通りダウンロードしておいたほうがいいかもしれません。

 PDX 作成ツールはいくつか種類がありますが、Web上での入手は難しいようです。 PDMK.x、PDXM.x 等がそうです。これらはMXDRV のデータ作成ツールに含まれているはずです。


★コンバート
 まずはXVY/DEVELOP/STAGE/の下にディレクトリを作ります。ここでは仮にディレクトリ名を SAKURAとでもしておきましょう。 ここにXVY/DEVELOP/STAGE/Z2RYUディレクトリの中身をまるごとコピーします。
 次に、変換元となるSFXVIのステージデータの中身をSAKURA/OBJECTディレクトリにコピーします。 全部コピーしてもいいのですが最低限必要なファイルを以下に示します。
BACK1.GRP背景画像(手前)
BACK1A.PAL背景パレット(手前)
BACK2.GRP背景画像(奥)
BACK2A.PAL背景パレット(奥)
BGM1.ZMDBGMデータ
BGM.ZPDBGM用PCMデータ

 必要なファイルをコピーし終えたらまずは、グラフィックデータのコンバートです。 これはXVY/DEVELOP/STAGE/convert.batというバッチファイルを SAKURA/OBJECTディレクトリで実行するだけです。  C:\XVY\DEVELOP\STAGE\SAKURA\OBJECT>..\..\convert  これでBACK1.GFXBACK2.GFXが作成されたはずです。 ただし、このディレクトリにはXVY/DEVELOP/STAGE/Z2RYU/からコピーしてきたBACK?.GFX があるはずですからタイムスタンプを見て確認しましょう。


 次にCHAR.VSPの作成です。これはコマンドラインから
 C:\XVY\DEVELOP\STAGE\SAKURA\OBJECT>mkvsp .. とでもうってやればOKです。


 BGMのコンバートは、現在、有効な手法が確立されていません。 まあ、それでも出来るところまで説明します。 BGM1.ZMDファイルは以下の手順でBGM1.MDCに変換します。  C:\XVY\DEVELOP\STAGE\SAKURA\OBJECT>DtoS BGM1.ZMD
 C:\XVY\DEVELOP\STAGE\SAKURA\OBJECT>ZMS2MDC -o BGM1.ZMS
これでBGM1.MDCが出来ました。 ただし、ZMS2MDC.xは完全なコンバートが出来ません。 具体的にどこがどうダメなのかはよくわかっていませんが・・・。 傾向と対策をご存知の方は情報提供をお願いします。

 最後にBGM.ZPDのコンバートです。これはコンバータが存在しないらしく 手作業でPDXファイルにコンバートしなければなりません。 NEYさんからその方法を教えていただきましたので転記します。
1.dis_zpd.xでBGM.ZPDを分解。BGM0**.PCMが作られる。
2.テキストエディタでPDLファイルを作る。表記は
X = bgmY.pcm (X=Y-15)
    ・
    ・
3.PDMKなどでPDLファイルからPDXファイルを生成。

★resource.xarの作成
 以上で必要なリソースファイルは全てそろいました。 これらをまとめてひとつのファイルとするXARというツールがXVYには用意されています。 こうすることで、読みこみ時間の短縮が計れ、 たくさんの小さなファイルが存在することから発生するクラスタギャップを抑えることも出来ます。

 XARを使ってresource.xarを作りましょう。 Makeが使える人はSAKURAディレクトリに存在するresmakeというファイルを 以下のように書き換えます。黄色の文字で書かれた部分が追加箇所です。
#マクロ定義
DIR = object
XAR = $(DIR)/resource.xar
OBJS = $(DIR)/back1.gfx \
       $(DIR)/back2.gfx \
       $(DIR)/bgm1.mdc \
       $(DIR)/bgm.pdx \
       $(DIR)/cell.vsp \
       $(DIR)/cell.pal

#依存物
$(XAR): $(OBJS)
	xar a $(XAR) $(OBJS)
 そしてMakeを実行します。  C:\XVY\DEVELOP\STAGE\SAKURA>make -f resmake これでresource.xarが作成されました。

 Makeを持っていないという場合はカレントをSAKURA/OBJECTディレクトリに移動して、 コマンドラインから以下のように打ちこんでください。  C:\XVY\DEVELOP\STAGE\SAKURA\OBJECT>xar a resource.xar back1.gfx back2.gfx bgm1.mdc bgm.pdx cell.vsp cell.pal
★action.cのコンパイル
 SAKURAディレクトリに存在するaction.cは基本的な機能は一通りそろっていますが BGMを演奏する機能が入っていません。そこでこれを書き換えてBGMを演奏できるようにしてしまいましょう。
 以下で指定している行に、それぞれの行を追加してください。 ただし、追加するときは下から追加しないと行番号がずれてしまいますから注意。
30行目
char *g_ptrMdc;
char *g_ptrPdx;

77行目
	g_ptrMdc   = res_getXarPointer(xar, "BGM1.MDC");
	g_ptrPdx   = res_getXarPointer(xar, "BGM.PDX");

102行目
	bgm_registMDC( g_ptrMdc );
	bgm_registPDX( g_ptrPdx );

113行目
	bgm_play();

 修正済みのaction.cをダウンロード出来るようにしておきました。

 あとはコンパイルです。makefileSAKURAディレクトリに存在してますから、 その場でMakeを実行してしまいましょう。

 これで必要なファイルが全てそろいました。

★最後の仕上げ
 XVY\DEVELOP\SAKURAディレクトリにファイルを置いたままではXVYで使うことは出来ませんから XVY/STAGE/SAKURAディレクトリに必要なファイルをコピーしましょう。 コピーするのは以下の二つのファイルです。
C:\XVY\DEVELOP\STAGE\SAKURA\action.x
C:\XVY\DEVELOP\STAGE\SAKURA\OBJECT\resource.xar

 xvy.lstに今作ったステージを登録し、きちんとコンバートされたか確認してみましょう。 うまく出来たでしょうか・・・?


 現時点ではSFXVIのステージデータを完全に再現することは出来ません。 例えば背景のラスタースクロールであるとか、MIDIと内蔵音源の切り替えだとか、 ピンチ時のBGM変化などがそうです。
 だからといって手をこまねいて待っているだけというのは寂しすぎます。 出来るところから少しずつ手をつけていってXVYの世界を少しでも広げるよう頑張りましょう。

(01/06/14)

Zmusic→MCDRV

 上でも説明していますが、XVYで使用しているサウンドドライバはMCDRVです。 開発環境が整っているわけでもなく、過去の資産があるわけでもないMCDRVが採用された経緯は いまいちよくわかってないんですが・・・。処理が軽く、テンポずれが起きにくいなどの利点はありますけどね。

 と、いうわけでXVY用のBGMデータ作成は他フォーマットのコンバートが主流になると思われます。 各種フォーマットからのコンバータは用意されてはいますが、もっとも使用頻度が高いと思われる Zmusic(ZMD)データからのコンバートがもっともハードルが高いようです。
 そこで傾向と対策を練ってみることにしましょう。

★コンバート手順を再確認
 ZMDデータからのコンバートは上でも書いていますが、もう一度まとめてみましょう。
1. DtoS.x で ZMD ファイルを ZMS ファイルに変換
2. ZMS2MDC.x で ZMS ファイルを MDC ファイルに変換
3. ZPD2PDX.x で ZPD ファイルを PDX ファイルに変換

さりげなく手順3が変わっていたりしますが、気にしないように。あとで説明しますから。


トップページへ SFXVI Worldへ