CatSystem2 では、セーブデータや環境ファイルなどは CatSystem2 自体が置かれているフォルダの階層下に置かれることはありません。最近の Windows の仕様に則り、Windows のユーザー毎のデータフォルダ内に保存されるようになっています。ただし、これはデフォルトでの動作であり、変更することも可能です。
データが保存されるフォルダを変更するには、startup.xml の [FOLDER]-[save] の項目を修正します。初期設定は、%USERPROFILE%¥%brand%¥%title% となっています。%で括られている部分は、各種設定の値を使用する変数です。ここに使用できる変数は以下の通りです。
%USERPROFILE%
ウィンドウズで設定されているアプリケーションデータフォルダ(ローカル)
%ProgramData%
ウィンドウズで設定されているアプリケーションデータフォルダ(全ユーザ)
%ALLUSERSPROFILE%
同上
%brand%
Startup.xml の [APP]-[brand] の値
%title%
Startup.xml の [APP]-[title] の値
ただし、ここで方法については解説していますが実際には [FOLDER]-[save] の項目を変更することはなるべくしないほうが良いと思います。
上の項目で解説したとおり、セーブデータや環境ファイルなどは、ユーザー毎のデータフォルダに置かれ CatSystem2 自体から見ると、その場所は固定されています。ただし、CatSystem2 によって作られたタイトルがひとつだけなら良いのですが、もし複数のタイトルが同一マシンの中に存在していた場合、セーブデータや環境ファイルが他のタイトルによって上書きされてしまいます。
そのため、オリジナルでゲームを作成する際には、セーブデータ(フォルダ)がかぶらないようにする必要があります。そのための項目が、startup.xml の [APP]-[brand] および [APP]-[title] です。
これらの項目は名前の通りそれぞれ、「ブランド名」と「ゲームタイトル」です。この項目が他のゲームと偶然一致してしまわないように、十分に注意してください。
なお、startup.xml に関しては、マニュアルでも説明されていますので、設定の詳細に関してはそちらもご参照ください。
現在の公開版では、画面の解像度が 800×600ドットの基本セットと 1280×720ドットの基本設定が用意されています。昨今の主流は 1280×720ドットになっていると思われますので、基本的にはこれで事足りるとは思うのですが、中には解像度を変更したいという場合もあるかと思います。
解像度を変更するためには、やや面倒な設定が必要になってくるのであまりオススメはしませんが、一連の設定方法を理解しておくと CatSystem2 におけるプレーンというものの概念により精通出来るので、一度以下の説明に目を通しておくのも良いかと思います。
まず解像度を変更するためには、startup.xml の [SCREEN] の項目を変更することで任意の解像度に設定できます。それぞれの項目の詳細内容は以下の通りです。
%width%
ゲームウィンドウの幅
%height%
ゲームウィンドウの高さ
%v_width%
システム環境設定内の項目『ウィンドウサイズの幅』のデフォルト値
%v_height%
システム環境設定内の項目『ウィンドウサイズの高さ』のデフォルト値
上記の v_width 及び v_height は、基本的には width 及び height と同じ値にしてください。例として、解像度を 800×600ドットの設定を元に 1280×960 にしたい場合は以下のように設定します。
<SCREEN> <width>1280</width> <height>960</height> <v_width>1280</v_width> <v_height>960</v_height> <fps>60<fps> <no_skip>0</no_skip> </SCREEN>
ただし上記の設定変更を行い CatSystem2 を起動し直してみると、下の画像のように表示解像度が変更されずにウインドウ内の画像が小さく表示されてしまうことがあります。これは、一度でも CatSystem2 を起動すると、セーブフォルダに表示解像度の情報が保存されてしまうからです。
この状態から表示解像度を正しく直すには、ウインドウのメニューから「設定」→「システム環境設定」を呼び出して、ゲームウインドウサイズを変更すればOKです。ゲームウインドウサイズの設定は、システム環境設定の「表示1」タブの中にあります。
あるいは、ウインドウメニューから「システム」→「セーブフォルダ」を選択してセーブファイルを選択し、Catsystem2 を終了後にセーブフォルダ内の setup.xml を削除してから CatSystem2 を起動し直せば自動的に設定した解像度で起動されます。このとき、CatSystem2 を終了させる前に setup.xml を消しても、CatSystem2 の終了時に setup.xml を作成してしまいますのでご注意ください。
さて、これで表示解像度は変更できますが、800×600ドットの設定から 1280×960ドットに変更するなど、解像度を上げた場合は他にももう少し設定をする必要があります。
CatSystem2 では画像を描画する際に、プレーンという概念を使用しています。プレーンとは簡単に言ってしまえば、VRAM(GPU)上に置かれたテクスチャになります。これを使用するために、GPUのメモリをどれだけ確保するかを定義し、シーンスクリプトの vram命令で確保したメモリのどの領域を使用するかを指定しなければいけません。
公開している CatSystem2 の基本セットでは、あらかじめ使いやすいように設定がされているので簡単に使用する場合は何も知らなくても良かったのですが、解像度を変更した場合はそのあたりもきちんと設定する必要があります。
以下では、その定義方法を説明します。
CatSystem2 が使用するVRAM領域は、startup.xml の [TEXTURE] の項目で定義されています。この内容を変更することによって、スクリプト内で使用できるVRAMの領域を増減させることが出来るようになります。
増やした場合にはビデオカード(GPU)のVRAM容量を余計に消費することになりますし、減らす場合はプレーンとして使用できる領域が少なくなりますので動作がおかしくならないように細心の注意をする必要があります。
[TEXTURE] 項目内の詳細は以下の通りです。
vt x 横方向テクスチャ使用ブロック数 y 縦方向テクスチャ使用ブロック数 area?? (??には数値が入ります) sx 有効テクスチャブロックの開始X位置 sy 有効テクスチャブロックの開始Y位置 dx 有効テクスチャブロックの横方向ブロック数 dy 有効テクスチャブロックの縦方向ブロック数 bpp32y 32bitテクスチャブロックの開始Y位置 bpp16y 16bitテクスチャブロックの開始Y位置
上記のうち、vt は 256×256 のテクスチャを1ブロックとしたとき、縦横にそれぞれ最大何ブロック並べるかを設定します。ただし、この項目の設定のみでは実際にテクスチャは確保されません。
実際にテクスチャ領域を確保するためには、area?? の項目で設定する必要があります。公開されている 800×600ドット版の「startup.xml では、area00 から area02 まで確保されており、その内容は以下のようになっています。
<TEXTURE> <size> <x>256</x> <y>256</y> </size> <vt> <x>8</x> <y>15</y> </vt> <area00> <sx>0</sx> <sy>0</sy> <dx>8</dx> <dy>6</dy> </area00> <area01> <sx>0</sx> <sy>6</sy> <dx>8</dx> <dy>3</dy> </area01> <area02> <sx>0</sx> <sy>9</sy> <dx>4</dx> <dy>3</dy> </area02> <bpp32y>0</bpp32y> <bpp16y>8</bpp16y> <bpp>32</bpp> <filter_min>1</filter_min> <filter_mag>1</filter_mag> <dither>1</dither> </TEXTURE>
この設定では、area00~area02 はそれぞれ、開始位置が (0,0) (0,6) (0,9) となっており、領域のサイズが (8×6) (8×3) (4×3) となっていますので、図で表すと、VRAMは下のように確保されていることを意味します。
VRAMの使用領域についての定義方法が理解いただけましたでしょうか。(上図のひとつのマスが 256×256 のテクスチャ領域ひとつ分を表しています)
上記の領域のうち、area00 についてはプレーンの領域として使用され、area01 はシステム領域、area02 はフォント領域として使用されています。ただし、これもあくまでデフォルト状態のもので、必ずしも area01 がシステム領域になるとは限りません。どの領域が何の用途に使われるかは、また別の場所で定義されていますのでご注意ください。
ここで理解して欲しい内容は、[TEXTURE] の定義項目はあくまでもテクスチャ領域を確保するだけだということです。それぞれの領域を何の用途で使用するかの設定方法は、また別の項で解説します。
とは言うものの、ここで理解することがもう一つだけあります。それは上の図で赤い枠線で囲われた部分ですが、ここはテクスチャが 32bit(フルカラー)ではなく 16bit(ハイカラー) となっています。 16bit テクスチャ領域はフォント用に使用されます。
16bit 領域の指定は bpp16y の項目で設定します。これは 16bitテクスチャ領域の開始Y位置を指定することになっていますが、上の設定では 9 が指定されています。なので、Y位置が 9以上の赤い枠の部分が 16bit テクスチャ領域であることを意味するようになっています。
startup.xml で定義したVRAMを、システム内でどのように使用するかは config/vram.xml にて設定します。
<imagelist> <width>2048</width> <height>1536</height> </imagelist>
上の設定は、プレーンで使用する領域(スクリプト実行中に P ボタンを押すと一括表示される領域)のサイズをピクセル単位で指定するものです。
<vram> <all> <x>0</x> <y>0</y> <width>2048</width> <height>3840</height> </all> <game> <x>0</x> <y>0</y> <width>2048</width> <height>1536</height> </game> <system> <x>0</x> <y>1536</y> <width>2048</width> <height>768</height> </system> <font> <x>0</x> <y>2304</y> <width>1024</width> <height>768</height> </font> </vram>
上の設定は、プレーン領域・システム領域・フォント領域のVRAM内での位置とサイズをピクセル単位で指定するものです。
all の領域サイズは、startup.xml の [TEXTURE]内の vt の値 x と y にそれぞれテクスチャサイズ 256 をかけた値を指定します。デフォルトでは、それぞれ 8 と 15 が入っていますので、それぞれに 256 をかけて、2048 と 3840 が設定されています。
game 領域は、プレーンで使用する領域となります。デフォルトでは、[TEXTURE]内の area00 の領域が設定されています。なお、ここで領域を設定しても、startup.xml の [TEXTURE] 内でテクスチャが確保されていない領域は使用できませんのでご注意ください。(使用しても正しく表示が行われません)
system 領域は、メッセージウインドウや履歴ウインドウなど、システム側で使用する画像データが置かれる領域になります。このサイズは、最低1画面分の面積を確保する必要があります。なお、開始座標を game領域のすぐ下にするなどして、game領域と重ならないように注意してください。
font領域は、文字を描画するための領域です。通常、[TEXTURE]の設定で 16bit テクスチャとして確保した領域を使用するようにします。これも、他の領域と重ならないように注意してください。
vram.xml に関しては、マニュアルでも説明されていますので、設定の詳細に関してはそちらもご参照ください。
これまでの説明で、プレーンで使用するためのVRAMの確保が事由に出来るようになったはずです。あとはVRAMのサイズに基づいて、プレーンの定義を正しく行うだけです。
プレーンの設定はシーンスクリプトの vram命令でも行うことは出来ますが、デフォルト値をしっかりと設定しておいたほうが良いです。
このデフォルト値は config/vram.xml 内で設定されています。800×600ドット版の vram.xml では以下のように設定されています。
<!-- プレーン初期値 --> <plane> <pl00> <x>0</x> <y>0</y> <width>1024</width> <height>680</height> <disp>1</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>512</x> <y>340</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl00> <pl01> <x>1024</x> <y>0</y> <width>1024</width> <height>680</height> <disp>1</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>512</x> <y>340</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl01> <pl02> <x>0</x> <y>682</y> <width>1024</width> <height>680</height> <disp>1</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>512</x> <y>340</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl02> <pl03> <x>1024</x> <y>682</y> <width>1024</width> <height>680</height> <disp>1</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>512</x> <y>340</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl03> <pl04> <x>0</x> <y>0</y> <width>2048</width> <height>680</height> <disp>0</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>1024</x> <y>340</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl04> <pl05> <x>0</x> <y>682</y> <width>2048</width> <height>680</height> <disp>0</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>1024</x> <y>340</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl05> <pl06> <x>0</x> <y>0</y> <width>1024</width> <height>1536</height> <disp>0</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>512</x> <y>768</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl06> <pl07> <x>1024</x> <y>0</y> <width>1024</width> <height>1536</height> <disp>0</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>512</x> <y>768</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl07> <pl08> <x>0</x> <y>0</y> <width>2048</width> <height>1536</height> <disp>0</disp> <shift_x>0</shift_x> <shift_y>0</shift_y> <base> <x>1024</x> <y>768</y> </base> <pos> <x>400</x> <y>300</y> </pos> </pl08> </plane>
この pl00~pl08 の設定が、プレーン0番から8番の設定に当たります。そのプレーンでVRAM座標のどこから使用するのかを指定しているのが x と y の値で、プレーンのサイズを width と height で指定しています。
プレーン0~3ではそれぞれVRAMの領域をずらして 1024×680ドットの大きさのプレーンを定義しています。
プレーン4~5では 2048×680ドットの横2画面分として使えるプレーンを定義しています。プレーン6~7では 1024×1536ドットの縦2画面分以上の大きさで定義しています。さらにプレーン8では 2048×1536ドットという4画面分以上の大きさのプレーンを定義しています。
ただ、プレーン4はプレーン0と同じVRAM座標で定義されていますので、これらのプレーンの領域は重なっています。さらにサイズが横2画面分あるので、プレーン1の領域にも重なっています。つまりプレーン4は、プレーン0とプレーン1を足した領域として定義されているのです。プレーン5以降も同様に他のプレーンの領域と重なっています。
この設定は 800×600ドットの解像度のものですが、この定義では 1024×680ドットという一回り大きいプレーンを定義していますが、これは一回り大きい画像を多用するためにこういった定義がされています。
これに習って、横方向の解像度が 1024 や 1280 など、256 で割り切れるサイズの解像度を設定する場合にも、VRAMを一回り大きめに確保しておくことをオススメします。
実際に、1280×720版の基本セットでは、VRAMの横方向は 3072ドットで確保し、プレーンの横幅は 1536ドットで定義されています。
この設定内容に関しては、マニュアルでも簡単に説明されていますので、是非合わせて確認してみてください。
さて、これまでの情報で任意の解像度の設定を行うことが出来るはずです。あとは試しに設定を行ってみて、きちんと思い通りの設定が出来るようチャレンジしてみて下さい。
ここまでのことが理解できれば、CatSystem2 におけるプレーンというものの仕組みがかなり理解できているはずです。この仕組みを理解していなくてもプレーンを活用することは可能ですが、理解していればかなり柔軟にプレーンを活用できるはずです。
旧バージョンでは、ここでワイド化のための説明を行っていましたが、バージョンアップに伴いワイド化のための設定が多少変更になりました。その代わり、現バージョンでは始めから 800×600版と 1280×720版の二つの解像度設定を用意されるようになりました。
従って、今後は選択した解像度に合わせてベースとなるデータを選択すれば良くなりますので、古い情報は削除させていただきました。
ダウンロードページに 800×600版と 1280×720版の二つのファイルを用意していますので、必要なほうをダウンロードして開発の際のベースとしてご使用ください。