おぼえがき


吉里吉里/KAG。本気で覚え書いてみようの巻

じゃあ今まではジョークでやってたのかっつー話ですが、ははは。

じゃあいきますよー(答えねーのか)
目指すところは、「次に吉里吉里使う時に便利」。 これです。

一体どうしたらいいのか考えてみると、要は初心者の方に懇切丁寧に教える感じにすりゃいんでねーの?ってことで。
未来の。おそらくまたもやスッポリと使い方を忘れてしまって初心者同然になっている自分へ向けて書こうかと思います。
おっさん頑張れよ!


(1)吉里吉里/KAGってなに?

えぇえええ!そんなところからーっ!?? Σ(−□−;
なんつって。一人遊びはほどほどにしておきましょうかね。

えーと、フリーのサウンドノベルツクールです。以上。
何が良いって、エン●●●レインには100回生まれ変わっても真似できないであろう自由度の高さ。
あとタグ打って作ってく感じがHTMLを自分でタグ打って管理する僕みたいな面倒くさい野郎にはとても合うのですよ。

(2)準備

何は無くとも本体のダウンロード。
こっちから→http://kikyou.info/tvp/

バージョンは時期によって違いますから、安定版て書いてあるやつダウンロードすればおkです。

次にエディタ。
テキストファイルで全手打ちも職人ぽくて素敵ですが、まあ目指してるのはそこじゃないので楽できるとこは楽しましょう。
種類があるので、自分に合うもの探してそれ使えばいいんですが、
僕は”吉里吉里 エディタ”で検索して一番上に来たコレを使ってます。http://www.poringsoft.net/?page_id=42

KKDEってやつ。

初期設定の仕方は自分でマニュアル読んでね。

で、ファイル→新規作成→プロジェクトを作成→KAG3のプロジェクト(KAGEX++はよく分からん)にチェック。
プロジェクト名とフォルダを作る場所を指定して、作成ボタンを押すと自動で必要なフォルダと基本的なファイルを作ってくれます。

これで環境準備完了。
次はゲームを作る前準備。

(3)Config.tjsの設定

ここが楽しくもあり、面倒くせーところでもあるのですが。

さっき作ったプロジェクトフォルダん中にsystemっていうフォルダがあります。んでその中のConfig.tjsっていうファイルを探して開きましょう。
見れば分かると思いますが、ゲーム内の設定をここで行います。とりあえずまず最初にいじっておくのは

◆タイトル名
◆シナリオ解析モード。僕はtrueでやってます。falseとどっちがいいのかは正直分かりません。
◆画面サイズ。
◆メッセージレイヤの初期位置。
こいつが毎回厄介なので今まで僕が作ってみたやつの数値を例として書いておきます。コピペの後調整してくだされば。

(800×600の場合)(1024×768の場合)
;ml = 15; // 左端位置
;mt = 400; // 上端位置
;mw = 800-30; // 幅
;mh = 600-60; // 高さ
;ml = 15; // 左端位置
;mt = 550; // 上端位置
;mw = 1021-30; // 幅
;mh = 230-30; // 高さ

◆文字の大きさ・行間・字間。1024×768の場合、少し大きめ広めにした方がいいです。
「ワルキューレの葬列」だと28・8・2でやりました。
◆BGMの設定。type=Waveに。(Oggを使う場合もWaveです)

んなもんですかね。
同時に鳴らせる効果音の数とか、レイヤの数とか他の諸々は適宜変更してけばいいです。

(4)素材を用意する

絵とか音とかですね。
最初にどんな内容のものにするのか、イメージを固めておけば、用意するものもハッキリします。

「ワルキューレの葬列」の場合ですと、分岐無し一本道のデジタルノベル。立ち絵をつけたい。
っていう感じでしたので、まず背景に使う画像を設定した画面サイズの大きさで用意します。

んで立ち絵は、最終的に縦を768ピクセルにするので、縦1500ぐらいのサイズで作ります。
で、キャラの部分以外の場所を選択。範囲を1ピクセル広げてから黒で塗りつぶします。
元画像の名前の後ろに_mとつけて保存。それを一緒に置いておくと黒塗り部分を透過してくれるという素晴らしい機能があるわけですよ。
で、縮小。

画像データはbgimage、fgimage、imageの三つのフォルダに入れます。どこに入れても構いません。
拡張子は一般的な奴なら大概使えます。JPG、BMP、PNG辺りなら問題ありません。他の種類のやつを使う時は調べてみてください。

音データはBGMをbgmフォルダ。効果音や音声はsoundフォルダにぶっこみます。
分けんでもいいんかもですが、音関係はよく知りません。
使える種類についても各自調べてみてください。僕はWAV、OGGしか使ったことありません。MP3は確か駄目。

(5)テキストを打つ

それではデジタルノベルを作っていきましょー。
scenarioフォルダ内にfirst.ksっていうファイルがあるので、それを開きます。

吉里吉里ではタグとテキストを全部このksファイルに打ち込みます。
ゲームを起動した時、まずこのfirst.ksが読み込まれます。名前は変えられません。

さて基本の基本。テキストを入力する時に覚える基本的なタグは三つです。[r][l][er]。

吉里吉里はただテキストを打って開始すると、ぶあーっ!と全てのテキストが表示されて、終わります。(・ω・

すごく悲しい気分になります。(・ω・)

それを防ぐための三つのキー。それがこのタグであります。
まず[l]。これを入れた箇所で止まってクリック待ち処理を行います。
[r]を入れた箇所で改行します。
[er]を入れた箇所でメッセージレイヤに表示されてる文字を全消去します。

つまり[r]
こんな感じで[l][er]
使います。[l][er]

まずテキストファイルにずらーっとエロ妄想全開の厨二的小説を書いておいて、それをコピペしてくる方式でやってるんですが、
この三つを全テキストに施していく作業がまーしんどいです。
[r]タグについては、シナリオ解析モードをfalseにすることによって無用にできますが、うーん、どっちがいいんだろうか。

何かうまいやり方ないもんかと思いますが、まあまだその辺は手探りですなー。

(6)画像を表示する

ここでちょっとややこしくなってくんですよね吉里吉里は。
つーのも、画像を表示する時にトランジションていう機能を使って表示するんですが、もうややこしいので
そういうもんなの
と一括りで覚えてしまえばいいと思います。
打ち込むタグ自体は単純で、こんな感じ

@[image storage="画像ファイル名(拡張子を表記する必要はありません)" layer="base" page="back"]
A[trans method="crossfade" time="500"]
B[wt]

要約すると、
@「画像」ファイルをベースレイヤの後ろ側に用意しましたー。
Aクロスフェードのトランジションを0.5秒で行って画像を表側に持ってきまーす。
Bトランジションが終わるまで待ちまーす。

ってとこですかね。
何で一旦後ろ側に用意したし!? と思うでしょ?思いますよねー。

まあそういうもんなんで。画像の表示にはこの三行。
取り合えず覚えて、細かいとこは後々理解してけばいいと思います。

(7)立ち絵を表示する

さて、立ち絵です。
レイヤの概念は説明せんでもいいですよね

こう、透明の板が重なり合ってるイメージ。
これもコンフィグで変えられますが、確か初期設定で、前景0、前景1、前景2、メッセージ0、メッセージ1、メッセージ2、と
ベースの上に六枚のレイヤが重なってる状態だったと思います。

この前景レイヤに立ち絵を表示させるっていう寸法でありますな。

タグはこう

@[layopt layer=0 page="fore" visible="true"]
A[image storage="立ち絵" layer="0" page="fore" left="500"]

立ち絵にはトランジションを使いません。
ってことは背景画像だってトランジション使わなくても表示できるんじゃないの!?
とか余計な事言い出す人は鋭いけどちょっと黙ってて

その通りではありますが、ややこしくなるので例の呪文でやり過ごしてください。はい、せーの
そういうもんなの!

えー、と。ここで注意しとかないといけない事は、初期状態だと前景レイヤーは非表示になっている。ってとこでして。
タグの意味を要約しますと

@前景レイヤ0の表側を見えるようにしまーす。
A前景レイヤ0の表側、左から500ピクセルの位置に”立ち絵”という名前の画像を表示しまーす。

です。
ここで一旦表示されるようになったレイヤはトランジションが行われるか、[freeimage layer="0"]とタグを打たれるまで表示され続けます。
逆をかえせばトランジション後はまた非表示状態に戻りますので、次使う時はまた[layopt〜]を打つ必要があります。

トランジション後は裏側の情報が表側に持ってこられる仕組みでして、裏側はまだ非表示状態である、ためにこうなるのだと思われます。
でもまあ、立ち絵はそんなずっと表示しとくものでもないので、面倒ですがいちいち打ち込んでいきました。

色々他に手段はあるのでしょうが、ちょっとまだそこまでは理解が及んでおりません。
効率の良いやり方考え方があるなら教えていただきたい。

(8)音を鳴らす

BGMは
[playbgm storage="音ファイル"]〜[stopbgm]or[fadeoutbgm time="500"]
[fadeinbgm storage="音ファイル" time="500"]〜[stopbgm]or[fadeoutbgm time="500"]

読めば分かると思いますが、数値はフェードイン、フェードアウトにかける時間です。

音声、効果音は
[playse storage="音ファイル"]

簡単ですね。
音声、効果音にはバッファ番号が振れまして、何も指定しなければ0番。
[playse storage="音ファイル" buf="1"]と表示すれば1番の音として扱われます。

同じバッファ番号のものは同時に鳴らせないので、音声と効果音は分けておいた方がいいです。


はい、覚えるのはこんだけです。
分岐無し一本道立ち絵表示デジタルノベルはこれだけ覚えておけば作れます。

あとは実行→Releaser→出力→EXE形式実行可能ファイル にチェック
適当にファイルを作って、そこを出力場所に指定。→実行
でEXEファイルが作られます。

超簡単でしょう?
作ればいいじゃん。みんな。ねえ。

さてこっからはホントの覚え書き。
始めて触る方はまあ参考程度に。

(9)クリッカブルマップを作る。

どれ一丁、シーン閲覧ページでも作ってやろうかい。
って時に使うのがこの機能。クリッカブルマップ。
使えるようになると色々と便利、と言うか巷で売ってるようなレベルのADVぽい体裁を整えよう、と思ったら必須。

何かと言えば、「画面のここをクリックしたらこういう処理をしますよー」っていうやつです。

用意するのは、まず実際に画面に表示される画像。形式自由。
領域指定用の画像。パレットインデックス情報を保存せにゃならんので、PNGかBMPになります。
最後に領域アクション定義ファイル。拡張子はma。

適当にシーン閲覧ページっぽく整えた表示用画像を作り、クリックに反応する領域を塗りつぶした同サイズの画像を作ります。
それを256色でパレットインデックスが表示されるソフトを使って開きます。
僕の使ってるのはPictBear。

まずツールバーの右の方にあるインデックスカラーってボタンを押してフルカラーからインデックスカラーに変換します。
パレットはシステムカラーを使うのが無難。ディザも強制もなし。色数は256色。
そしたら塗りつぶしてある領域を、パレットインデックス1から順番に使って上塗りしていきます。0番は使わないこと。

んで、画面表示用画像と同じ名前で、後ろに_pとつけて保存します。PNGで。領域指定用の画像完成。

領域アクション定義ファイルはテキストファイルで作ります。メモ帳でかまいません。
新規作成したテキストファイルに

1: storage="first.ks"; target="*s001"; hint="一番だよー";

こんな風に、カラー番号を振った分だけ書いていきます。

カラーインデックス1で塗りつぶしてある箇所にカーソルを持っていくと「一番だよー」と表示されます。
クリックすると、firsi.ksというファイルの中で、*s001というラベルから下を実行しまーす。

という意味になります。ラベルについては後述。
これを表示用画像と同じ名前で、拡張子をmaにして保存、で出来上がり。
この三つを一緒に画像用フォルダに入れておけば、表示用画像が表示された時にクリッカブルマップとして使用できます。

(10)ラベルを作る。

ラベルっていうのは目印ですねー。
テキストを上から順番に流していくだけ、な場合はあんま必要ありませんけど、例えばストーリーに分岐をつけた場合。
AからBに行くにはそのまま流してけばいいですが、Bを飛ばしてCを表示させたい場合に、Cにつけておく目印。それがラベルです。
書き方はこう

*r001|ラベル001

名前は何でも構いません。自分で管理しやすい名前をつけてあげましょう。
これで

[jump target="*r001"]
と書かれた箇所に到達すると、*r001と表記した場所に飛ぶようになります。
他の用途としては前述のクリッカブルマップでのアクション定義ファイルの指定。

[link target="*r001"]ここをクリックするとラベル1に飛ぶよ[endlink] みたいな使い方で分岐を作れます。

あと栞をはさむ、でセーブされるポイントというのが最後に通ったラベル部分になります。

ついでのちなみに、jumpタグで同ksファイル内のラベルにジャンプするときはtargetでいいんですが、
他のksファイルに移動する時は[jump storage="ファイル名.ks"]になります。

(11)タイトル画面までの流れとそこから

さて、ここまで出来ればほぼ完成なんですが、ちょっと格好つけてですね、
起動すると、サークルロゴなんかが表示されて、そのあとにタイトル画面が出て、みたいなの。

作りたいじゃないですか。

んでもって初心者はかならずここで途方に暮れるんですよね。
僕は毎回ここで途方に暮れるのでいい加減書いておこうと思います。参考になれば幸い。

何が分からんてまず

メッセージレイヤの消し方。

んでもって

メッセージレイヤの表示の仕方ね。

何でここ、こんな分かりにくいのか意味が分かりませんが、きっと意味があるんでしょう。
順番に解説していきたいと思います。
つーか理解せんでいいのでそのまま書けばいいと思います。

起動してサークルロゴが出て声優さんの声で「あとりえはちふくあん」とか言ってもらって耳が幸せになってるところに
メッセージウンドウが表示されたら変じゃないですか。
まずはそれを消します。

いやこれ実はコンフィグでメッセージレイヤの初期状態を非表示にしとけば済む話な気もするんですが。まあ一応。
後で表示する時の書き方にも繋がりますんでね。

ちょっとタグが打てるようになってきてる人なら
[layopt layer="message0" page="fore" visible="false"]

でいけんじゃねーの?と思うんですよね。実際いける気がしますし、何でこれでいけないのかの方が分かりませんが
いけないんですなあコレでは
正確にはコレだけ、では。

メッセージレイヤを見えないようにするためには裏も消しとかんといかんのです。なんで
[backlay layer="message0"]

と続けて打って、メッセージレイヤ0の表の情報を、裏にコピーします。こんで大丈夫。
この一手間に中々気づけないんですよねえ。
そして毎回躓くんですよねえ。

今まで特に言及せずに来ましたが、この、レイヤーに表裏がある仕様が吉里吉里の一番高い壁になってるような気がしてなりません。
まあその分できる事の幅も広いわけですが、初心者殺しですわなあ。

表示する時も当然[backlay]タグが必要です。なので一応セットで覚えておきましょう。

そして次なる難関。

サークルロゴ画面の次にタイトル画面が表示されて、ゲームスタートやらコンティニューやらオプションやらのメニューが表示されますよね。
ただメッセージレイヤを表示して、そこに書くのでは手抜き感が拭えません。
メニューは、でん!と真ん中辺りに表示したい。ということで、
まーコレがクソ面倒くさいので次からクリッカブルマップを使おうと思っている次第ですが

[position]タグを使ってメッセージレイヤの表示部分、大きさ、透明度を変更してソレっぽく見えるように調整します。
で、他のページに移った時にまたいつもの表示に戻すわけですけど、これがねえ…

[position]タグで変更したレイヤ情報を、リセットする機能というものが存在しないんですよねえ。
どういう事かと言いますと、元の表示に戻すには、も一回[position]タグを使って元の通りに指定し直さなきゃいかんわけで。

勘の良い方ならお気づきでしょうが、このやり方をしちゃうと、最初行ったコンフィグ.tjsでのメッセージレイヤの設定が

全部無駄

になるわけですよゲッヘッヘ。

そこだけ別のメッセージレイヤを使うなり、僕レベルの知識で考える限りでもやり方は他にもあるんですけどね。まだまだ理解が足りません。
他の人はどうやってんのか、実に聞きたい。

(12)プラグイン

プラグインつーのは、えーと、アレ。
後から機能を追加する機能。

「ワルキューレの葬列」で使ったプラグインは2つでして、
音量を調整する機能と、OGGを再生できるようにする機能。

音量調整プラグインは、吉里吉里本体の中。
ki2_~→kag3→kag3plugin→gvolume っていうフォルダに入ってます。使い方もそこに書いてます。
あ、あとこれはプラグインじゃありませんが、BGMの音量を下げておくために、冒頭で[bgmopt gvolume="50%"]とか表記してます。

OGG再生は最初からプラグインフォルダに入ってます。wuvorbis.dllってやつ。

なんですが、何故かReleaserを実行した後のファイルに含まれないんですよね。僕のだけ?
なのでコピーしてきてEXEファイルと一緒んとこに放りこんでます。謎。

(13)アイコンを作る

デフォルトだと吉里吉里のお魚さんマークになってしまうので、EXEファイル用のアイコンも作っておきたいところ。

まずは適当に32×32の画像を作ります。こん時の形式はBMPに。
@アイコン変換ていうソフトでソレを開きます。
ファイル→単独iconとして保存。で完成。

Releaser実行時に 実行可能ファイル設定→アイコンを変更する にチェックをいれて今作ったファイルを指定。
これで出来上がり〜です。



どうですかね。
ここで書いたことが次回吉里吉里仕様時に役に立つか否かは、そん時になってみないとわかりませんが。参考になってくれれば幸い。

なんか文章にすると、すげー簡単なことの連続のように思えちゃって、何であんなに時間がかかるのかがまた謎に思えてくるから不思議です。


(2013年5月13日)