2011年8月4日木曜日

【とりあえずノベルゲーム作りたい】CatSystem2.0での開発について

add 13/2/12
見やすさなども考え、作業再開に伴って解説用ブログを作り始めました。
URL:http://cscstips.blogspot.jp/
昨日、久々に近衛さんに会って「ゲーム、作ろっか、あの時(GRS)の情熱を取りもどそっか・・・」と言うお話になったので、頑張って作ります・・・ごめんなしあ・・・

add12/12/23
9月17日以来全く触ってなかったので気付くのが遅れました。
公式がワイド化対応してくれたので、もう、もじゃもじゃ私が言えることはありませんね。
タイトル画面はconfig.fesとかtitle.fesとかちゃんといじろうね。title_wipe.hg3を適正サイズにしようね。
(susieとか使ってbmp形式で抽出してサイズ変更したbmpからコンバート、みたいに)
(画面切り替え、NSで使うようにwindow_xとかwindow_yみたいに定義してくれたのかな?)
あとは普通に作成できたら自分が作った設定やらを全部晒して講座とします。
手術終わりで来年二月あたりにはきちんとひと段落つけたいな。
今なら立ち絵とかもうちょっと進化して描けそう。(背景はダメだわ死ぬわ写真使うかもしれんわ)
ちゃんとHTML組んで(つかHP作成ソフト使って)見やすく作ろうと思いますキャピィ★

add12/09/15
Catsystem2 ワイド化について
http://candleschool.blogspot.jp/2012/09/catsystem2.html
結論は「出来なくもないけど見苦しい」です。
とりあえずmeswnd.hg3からメニューを呼び出さなければ普通にスクリプトが動くはずなので。
とりあえずhist.hg3を透明にしてしまえば見切れた履歴ウィンドウはなくなるので。

add09/17
「たぶん無理」ってやつなのかな・・・? しょうがないにゃあ・・・。
だれか出来たら教えてください……ってレベルです。800*600以下ならおkなので・・・つまりええと。
800*450で作って大きい画像を常に縮小して表示して最大化した時に……はああ無理無理。


【注意】
add12/09/04
やはりワイド化は難しい。と言う結論に。
メッセージ履歴だけがネックなんですけどねえ……どうして800*600でぶつ切れになるのか。

やめました。2012年1月現在、800*600以上の解像度でゲームが作れないのでやめました。
hist.hg3がバグります。ついでにEXEもバグって落ちます。解決法が分かったら再開です。

初心者がゼロ知識からゲーム作りを始めている『キャンドルスクール』ノベルゲーム制作。
今回、備忘録としてCatSystemの紹介記事を一つ書かせていただきます。
誰かの役に立てば良いんだけど。

けど、めっちゃ長いから「続きを読む」で区切っておきます。
完全に俺得記事だからね!

CatSystem2.0 講座 α版 11/09/05

マニュアル読めば分かる事しか書きません。書けません。
見れば分かる通り、初心者も良いところですので、難しい事は分かりません。
誰も作ってくれないから、私みたいのがやるしかないんです。
あなたのコメントが講座を充実させ世にクソゲーを送り出す手助けをするのです。

1.とりあえず動かすためには。
(manual/data/text/text.htmlの内容)
テキストエディタで新規作成をしたら、一行目に#newgameとでも書いてください。
一行空けて、 下記の例に倣って文章を書いていきましょう。
おっと、その前に流し目で良いので、マニュアルを読んで下さい。
テキスト記述のルールを少し覚えましょう。

【地の文を書く場合】
半角スペース(orタブ)+文章

【会話文を書く場合】
キャラクタ名+半角スペース(orタブ)+文章
 例)
+++++++++++++++++++++++++++
今日は良い天気だ。

次郎 「俺は……次郎だ」

今日は良い天気だ。
良い天気ったら、良い天気だ。

次郎 「何故二回言った……」
+++++++++++++++++++++++++++

改行する場合も文頭に半角スペース(orタブ)が必要です。
(ただし、文末に¥nを使って改行する場合は別です。また都合により全角で表記しています。)
会話文はタブ、地の文は半角スペースと言った使い分けをしても出力に問題はありません。

【ルビを振る場合】
[文章/ぶんしょう]と言うように、記述する。
[文/ぶん][章/しょう]とすると、正しくルビが振れるが、表示がちょっと気になるかも?
【言葉の途中で改行されたくない場合】
次郎 「あれが噂の[平等院鳳凰堂]か」
ルビを振る場合に似てます。普通なら平等院[改行]
鳳凰堂みたいになる場合も、これで解決できます。


文章だけで背景真っ黒ならこれだけで(不完全ながら)完成。
タイトル画面が作りたいとか、エンディングが作りたいとか、そう言うのは私がまだやってないの。


2.画像を表示するには。
(manual/data/image/img_file.htmlの内容)
まずマニュアルを読んで下さい。
「あー、無理これ無理だわ」じゃあjpgで良いですよね? そうしてください。
こればっかりはマニュアル読んで理解して下さいとしか言えません。
HG形式の変換は覚えなくてはならないポイントですが、こればかりはマニュアル通りにするほかないと思います。なので、それを覚えるまでの仮作成の時はjpgで表現しておきましょう。

【画像を表示する】
半角スペース(orタブ)+cg+半角スペース+プレーンナンバー+半角スペース+画像名ドット拡張子+半角スペース+X座標+半角スペース+Y座標


 cg 0 test.jpg 5 15
このように、拡張子をファイル名の後につけてやれば表示される。
HG3形式の画像を表示させる場合に限り、拡張子をつけなくて良い。

 cg 0 test.jpg 5 15
これについて一応解説すると、
[cg]->CGファイルだよ
[0]->プレーン0に置くよ(レイヤ0に置くよ的な感じで覚えておけば良い)
[test.jpg]->image/フォルダに入れた画像の名前だよ
[5]->画像のX座標だよ
[15]->画像のY座標だよ
※画像のX,Y座標は、システムで何も書かなくてもど真ん中に表示されるように設定されているため、複数人登場させる予定がない場合は消してしまって構わない。(0 0ではなく、記述しない)



以下過去に書いた物、消したり追記したり

【とりあえずゲーム作りたい】
基本解像度である800*600でゲームを作成していくのであれば、簡単だ。
もとからメッセージウィンドウなどの素材は全て含まれているため、それを流用すれば、
セーブ・ロード・クイックセーブ・クイックロード・履歴・次の選択肢へetc...の機能がそのまま使える。
あとはシナリオ記述の法則に従ってどんどん書いていけば良い。

キャラ名[半角スペースorタブ]本文
これでキャラのセリフ。

[半角スペースorタブ]命令文
これでCG描画などの命令ができる。


選択肢やらはマニュアルフォルダに入ってる説明を見れば分かるだろうと思います。
チュートリアルは「どう動くか」が見られるだけで、「どう書けば良いか」は基本マニュアル参照。
さあ、これで完成だ!(適当)

【時代は16:9だろjk】
そう、俺は思うんだ。と言う事で解像度を変更する、について書いておく。
config/フォルダを見ると、[vram_wide.xml]と[startup_wide.xml]みたいな、
とにかく「wide」って書いてあるのがある。元からあった[vram.xml]やらを消して、
[vram_wide.xml]→[vram.xml]とリネームする。これでワイド画面になった。

だがちょっと待って欲しい。1024*600と言う解像度になっているではないか。
おいおい、時代は16:9だろjk。これ比率どうなってんだよ、訳が分からないよ。

[startup.xml]を開く。<SCREEN>とか言う怪しい項目がある。お前だよ、お前。
1280と720に変更してやる。つまり、
<width>1280</width>
<height>720</height>
<v_width>1280</v_width>
<v_height>720</v_height>
こうだ。こうすれば良いんだよ。

下には……<type0>やらがある。解像度選択で選べる解像度だと言う事は推測で分かる。
これが分からないようじゃこの先の戦いには着いて来れない。
16:9の数字にしてやるなり、とりあえず放置しておくなり、好きにすると良い。

<title>など、設定したいと思う項目があるが今はスルー。とにかく画面を作る事だけ考える。
後でマニュアルと睨めっこしてください。

ずーっと下の<TEXTURE>タグが見つかるまで探す。
<TEXTURE>
<size>
<x>256</x>
<y>256</y>
</size>
<vt>
<x>10</x>
<y>16</y>
</vt>
<area00>
<sx>0</sx>
<sy>0</sy>
<dx>10</dx>
<dy>8</dy>
</area00>
<area01>
<sx>0</sx>
<sy>8</sy>
<dx>10</dx>
<dy>4</dy>
</area01>
<area02>
<sx>0</sx>
<sy>12</sy>
<dx>10</dx>
<dy>4</dy>
</area02>
<bpp32y>0</bpp32y>
<bpp16y>12</bpp16y>

<bpp>32</bpp>
<filter_min>1</filter_min>
<filter_mag>1</filter_mag>
<dither>1</dither>
  </TEXTURE>
実はこれ、マニュアルに載っていない。ホームページのTIPSに載っている。
意味が分からない。マニュアルに載せてよ。……数字の説明をする。
[256]->256*256の□を作りました。数字変えると□が大きくなるけど、変えなくて良いよ面倒だし。
[10][16]->X方向に□10個、Y方向に□16個置いちゃうぞって「宣言」。まだ置いてない。

つまり
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
これだけ「俺はこのゲームでこの広さを使うぞ!!」って宣言をしている。
「あれ? ゲームの解像度は1280*720じゃない?」――その通り。
この□は、ちゃんと指定してあげると動いて重なる。レイヤーみたいになる。
ゲームって、描画領域が大体4窓分くらいあれば表現できちゃってるみたいです。
2560*1440↑の領域を確保してあげればOK。と言う事で 、
<area00>
<sx>0</sx> スタートX=一番←から
  <sy>0</sy> スタートY=一番↑から
  <dx>10</dx> DRAWX=10マス使うよ
  <dy>8</dy> DRAWY=8マス使うよ
</area00>
256*10=2560(本当はもっと取りたいけど面倒)
256*8=2048(縦を無駄に取りました)
これで<area00>は「256*256の□を、10*8使う領域」となった。
当たり前だけど領域は重なっちゃならない。ので、以下は重ならないように残りを指定していく。
今回は全部埋まるようにしていしてしまったけど、慣れたら色々弄ると良い。
(僕は慣れてないので全部使ってます^q^)

エリアはゲーム領域・システム領域(メッセージウィンドウとか)・フォント領域(文字)の三つ。
本当は格好いい選択肢を作る時に使う領域があるらしいんだけど、まだお世話になってないから分かりません。
そんで、<area00>はゲーム領域。<area01>と<area02>はシステム領域とフォント領域に割り当てる事にする。

<bpp16y>12</bpp16y>
これ、別に指定しなくても良いと思うけど、指定すると少し軽くなる。
「ここから16bitカラーで表示するぜ」って命令なんだけど、 文字とか16bitで良いじゃん。
フォント領域が始まるy座標を指定してあげれば良いと言う話。

とりあえずここで保存。



あとちょっと! けどそのちょっとが長い。
[vram.xml]を開く。

<plane>ってなんだよ。マジ無理。けどこれをいじらないと進めない。
<width>は1024→1280で良い。
<height>は680→800にしておこう。

<plane>、つまりプレーン。これは透明な板である。レイヤーみたいなもん。
さっきゲーム領域を2560*2048に設定したけど、これを1280*720に近い感じで分割する。
プレーンを解像度以下の大きさにするとどうなるか、試せば分かる。描画されなくなる。
だから最低でも横幅は解像度と同じにしないとダメ。
「じゃあ何で縦は突き出てるの?」(……たぶん立ち絵とかの関係? 縦揺れしても見切れないし)

デフォルトの数字に、増やした解像度ぶんの数を加えてあげればまず間違い無いから、
それでとりあえず、ね? マニュアル読めば意味分かるから。

pl08まで設定してあげる。
(ぶっちゃけこのままだと描画クソずれる時が来るけど、その時が来たら自分で考えるべし)
(とりあえず非表示で移動させておいて、表示させてから動かすという方法で凌いでます^q^)

<イメージリストサイズ>まで下へ行く。
ゲーム領域と同じ値を設定して上げる。ここでは2560*2048だね。

<各VRAM領域>まで下へ行く。
これ分かりづらい表現だよね。VRAM領域て……メモリのことかと思っちゃうし。
<all>は256*256□が10*16のアレ。全体。つまり2560*4096ですね。
<game>ゲーム領域にどれだけ使うか。<area00>を使いたいから、□10*8で2560*2048だね。
<sysytem>システム領域以下略。<area01>を使いたいから、□10*4で2560*1024だね。
<font>フォント領域以下略。<area02>を使いたいから、□10*4で2560*1024だね。
※領域は重ならないように、始点Xと始点Yを設定してあげないとダメだからね。基本だから。


保存して起動する。
ほら、1280*720の大画面だ! けど何か右下が真っ黒だ!
800*600の画像で作られているから当たり前だったりします。
そこで、1280*720の単色画像を作って、bg01.jpgとでも名前づけて保存しておきましょう。
自分で作ったシナリオファイルに、その画像を表示してみましょう。

どや? 一面○○色やろ。ダメだったらマニュアル読み直してやり直して下さい。
一個完成したら、きちんとまとめて講座を作ろう。

0 件のコメント:

コメントを投稿