キャラクタ制作で壁となるのは2点あります。 それは、DSPデータを用意する事とプログラムを作る事です。
今回はその2つの壁のうちのひとつ「DSPデータの用意」を、 他のキャラのものを流用する事で突き崩してみたいと思います。
なお、他の人の作ったデータを流用するわけですから、取扱には十分注意しましょう。
開発キットには「D_LUKS」「D_ELEN」の二つのキャラのプロジェクトディレクトリが含まれています。 どちらを選んでもいいのですが、今回は「D_LUKS」を選んでみます。
まずはキャラクタウィザードで新規プロジェクトを作成しましょう。 この行程は、前回と変わりません。 この時点では、DSPリストには「新規1」のみ、セルリストには必須セルのみが登録されているはずです。
DSPデータとセルデータを丸ごと流用してみましょう。 「D_LUKS」のプロジェクトディレクトリの下にDSPディレクトリとETCディレクトリがあると思います。
SFXVI/ + DEVELOP/ + CHAR/ + D_LUKS/ + DSP/ + OBJECT/ + PROGRAM/ + VOICE/ + ETC/
DSPディレクトリの内容を丸ごとコピーします。 さらにETCディレクトリ内にある「DSP.LST」「CELL.LST」をコピーします。
I:\SFXVI\DEVELOP\CHAR\TEST > COPY ..\..\D_LUKS\DSP\*.* DSP\ I:\SFXVI\DEVELOP\CHAR\TEST > COPY ..\..\D_LUKS\ETC\DSP.LST ETC\ I:\SFXVI\DEVELOP\CHAR\TEST > COPY ..\..\D_LUKS\ETC\CELL.LST ETC\ (パスはディレクトリ構成に応じて書き換える必要があります)
ファイルのコピーが終了したらCBを起動します。 セルの編集を選ぶと、DSPリスト、セルリスト共にD_LUKSのもの全てが登録されている事がわかると思います。
D_LUKSのセルが登録された状態で、プログラムのコンパイルを行ってみましょう。 コンパイルまでの行程はやはり前回と変わりません。 「保存とオブジェクトの作成」のボタンをクリックし必要な質問に答えて、オブジェクトの作成を行います。
CBでの作業が終了したら、PROGRAM ディレクトリに移動して MAKE.BAT を実行しましょう。 環境設定に問題がなければエラーなく終了するはずです。 コンパイルが終わったら OBJECT ディレクトリの内容を CHAR ディレクトリの下にコピーします。 このコピーの作業は忘れやすいので注意しましょう。シンボリックリンクを利用するとコピーの手間が省けますね。
コンパイル、コピーが終了したらキャラを登録してSFXVIを起動しましょう。 そして、たった今作成したばかりのキャラを選んでスタートします。どうでしょうか?
前回と同様、出来る事は歩いたりしゃがんだりする事くらいですが、 DSPとセルの流用という目的は達成されたはずです。
では次に、DSPファイル群の一部を流用する方法を説明します。 これは同時に、CB以外でDSPデータを作成した場合のリストへの登録方法にもなります。
さて、作業は前述のものの続きからはじめる事にします。 現在、DSPリスト、セルリストとも、D_LUKSのものが登録されています。 ここにD_ELENの直立ポーズを登録することにしましょう。
D_LUKS、D_ELENともに直立ポーズは「直立0〜3.DSP」の4枚用意されています。 双方の「DSP.LST」をテキストエディタで読み込んでみましょう。
D_LUKS DSP.LST
# # このファイルには、キャラクタ・ビルダがDSPデータを管理するために # 必要な情報が記録されています。ユーザが本ファイルを直接編集する # 場合は、本ファイルのデータ構造を理解した上で注意深く行うことが # 重要です。(間違ったデータ構造になってしまうと、キャラクタ・ビルダ # が異常動作してしまいます) # # [ データ構造 ] file,nh,nv; # # ・file : DSPファイル名(拡張子を除く) # ・nh : 水平方向のPCG数(1〜64) # ・nv : 垂直方向のPCG数(1〜64) # 直立0,4,6; 直立1,4,6; 直立2,4,6; 直立3,4,6; 前歩行0,4,6; 前歩行1,4,6; (略)
D_ELEN DSP.LST
(略) # 直立0,3,6; 直立1,3,6; 直立2,3,6; 直立3,3,6; 前歩行0,4,6; 前歩行1,3,6; (略)
「DSP.LST」はCBで読み込むDSPファイルのリストです。 リストの一行がDSPファイルひとつに対応しています。 例えば「直立0,4,6;」とあった場合「直立0.DSP」という名前のファイルを読み込みます。 そして、DSPデータの横方向にスプライト4枚(64ドット) 縦方向に6枚(96ドット)のサイズのデータであるとして扱われます。
以上を踏まえて、D_ELENの「直立0〜3.DSP」を DSP.LST に登録するわけですが、 D_LUKSの直立DSPは残しておきたいので、別名で登録します。
I:\SFXVI\DEVELOP\CHAR\TEST\DSP > copy ..\..\D_ELEN\DSP\直立0.DSP 直立E0.DSP I:\SFXVI\DEVELOP\CHAR\TEST\DSP > copy ..\..\D_ELEN\DSP\直立1.DSP 直立E1.DSP I:\SFXVI\DEVELOP\CHAR\TEST\DSP > copy ..\..\D_ELEN\DSP\直立2.DSP 直立E2.DSP I:\SFXVI\DEVELOP\CHAR\TEST\DSP > copy ..\..\D_ELEN\DSP\直立3.DSP 直立E3.DSP
DSPファイルのコピーですが、普通にコピーすると上書きしてしまうので、別名コピーをします。 次に DSP.LST を書き換えます。DSP.LST の存在するディレクトリに注意してください。
I:\SFXVI\DEVELOP\CHAR\TEST\DSP > cd ..\ETC I:\SFXVI\DEVELOP\CHAR\TEST\ETC > ed DSP.LST
リストに追加したいファイルは「直立E0〜3.DSP」の4つですから D_ELENのDSP.LST を参照してサイズを記述します。
(略) # 直立0,4,6; 直立1,4,6; 直立2,4,6; 直立3,4,6; 直立E0,3,6; 直立E1,3,6; 直立E2,3,6; 直立E3,3,6; 前歩行0,4,6; 前歩行1,4,6; (略)
DSP.LST を書き換えたらCBを起動してみましょう。 DSPリストに4つのデータが登録されていることが確認出来ると思います。
もしCBがエラーで起動しなくなったり、DSPデータが欠けていたりした場合は、 DSP.LST の記述ミスの可能性があります。もう一度見直してみてください。
DSPデータの追加が正しく行われていたら、DSPデータとセルのリンクを行います。
セルリストから「CELL_直立0」を探して画面に表示します。 現在はD_LUKSの直立ポーズが割り当てられています。 次にDSPリストから「直立E0」を探して画面に表示します。そして「リンク」ボタンをクリックします。 すると確認のメッセージが表示されますから「OK」を選びます。 すると、画面左のセルイメージビュアに表示されていたグラフィックパターンが「直立E0」のもの、 つまりD_ELENの直立ポーズに変化します。
同じ要領で残りの「CELL_直立1〜3」も置き換えます。
DSPデータの変更だけでは、当たり判定などの情報は以前のままです。 適正な形に設定してやる必要があります。 矩形設定に関する詳しい説明は開発講座ゲームバランス編のバックナンバーを読むのがいいでしょう。
ここまで作業が終わったら「保存とオブジェクトの作成」でデータを作成しCBを終了させましょう。 これで準備は整いました。
次にプログラムのコンパイルです。 しかし、CBで上記の作業しか行っていない場合はコンパイルの必要はありません。 DSPデータの追加およびCELLデータの更新(追加はダメ)しかしていないならばコンパイルはしなくていいのです。
コンパイルはしなくてもいいのですが、OBJECTディレクトリ内のファイルは更新されていますから、 それらのコピーは忘れないでください。
I:\SFXVI\DEVELOP\CHAR\TEST\OBJECT > copy *.* ..\..\..\..\CHAR\TEST\
それではSFXVIを起動してみましょう。直立ポーズはD_ELENで、 それ以外はD_LUKSという妙なキャラクターが出来上がったと思います。 相変わらず出来る動作は変わっていませんが。
とにかく、これでセルデータの流用という作業が出来るようになったはずです。 ここまで出来れば、あとはプログラムだけです。と、いうことで今回はここまでです。
プログラムには一切手を付けないという前提で進めてきたのですが、 次回からはプログラムにも手を染めます。難しく考えることはないので気楽に行きましょう。 プログラム作成だって、楽しいものです。