10分で習得!吉里吉里でノベルゲームの作り方(初歩編)

※内容に不正確さや誤りがある場合がございます。
利用の際は自己責任でお願いします。万一トラブルがあっても責任は負いかねます。

30秒でわかる吉里吉里ノベルゲーム作成:KAGタグ編

《このページの内容を10秒でまとめ》
1.吉里吉里でノベルゲームを作るにはタグ(命令)を書いていく。
2.タグ(命令)は[ ]で囲む。行の先頭で@を書いてもOK
    [cm][r][r]    @cm     ←@は一行に1つのタグのみ
3.行の先頭で ; を書くとその行は動作に影響なし(コメント行)
4.行の先頭で * を書くとラベル(移動の時の目印)になり、
    その後に|を書くとそのラベルでセーブ出来る。
    *ラベル名(半角英数字・先頭は数字不可)|セーブ名(日本語OK)
5.タグ・コメント行・ラベル行以外は普通の文字として画面に表示される。
6.レイヤという透明なフィルタがあり、初期ではmessage0レイヤに文字を書き込む。
     laycountタグでレイヤ枚数を増やせる。文字表示専用のメッセージレイヤが存在する。
7.タグの後に半角スペースで区切って属性を指定する。
    属性でファイル名を指定したりレイヤを指定する。
     [image layer=3 storage="flower.jpg"]    ←imageがタグ、layerとstorageが属性
8.storage属性で読み込むファイルはプロジェクトのdataフォルダ内のどのフォルダに入れても良い。
    ファイル名のみで読み込み可能。拡張子もフォルダ名も省略可。
     [playbgm storage="bgm"]    ←bgmフォルダ内のbgm.oggファイルを読み込んで再生
9.[r]改行,[s]ストップ,[p]クリック待ち,[er]操作レイヤの文字クリア、[cm]全レイヤの文字クリア
     [locate x=0 y=0]文字の位置,[link]選択肢,[image]画像表示,[playbgm]BGM流す,[wait]時間待ち
10.レイヤには画面に表示される表画面と、裏画面がある。
11.フェードイン・フェードアウトは[trans]タグで表画面を裏画面に徐々に切り替えることで実現する。
     切り替え後の画像を裏画面にimageタグのpage属性で指定してからtransタグで切り替える。
     [backlay]タグで表レイヤ全てを裏にコピー出来る。
     [image storage="neko" visible="true" page="back"]
     [trans method="crossfade" time=1000][wt] ←[wt]で切り替えが終わるまで待つ。
12.吉里吉里のタグリファレンスに全てのタグや属性が載っている。
13.:吉里吉里の使い方に関して沢山の優れた解説や講座がある。

【もくじ】
2.1:first.ksを編集してみよう!
2.2:吉里吉里/KAGのタグ解説
2.3:吉里吉里のレイヤとは?
レイヤの裏と表?画像のフェードイン・フェードアウト
2.4:吉里吉里/kagのタグ一覧-これだけ覚えれば安心!
2.6:吉里吉里の参考資料・解説サイト

first.ksを編集してみよう!

前回、フォルダツリーの「first.ks」ファイルをダブルクリックすると、下図のように「first.ks」の中身が無事表示されましたね。
吉里吉里(kag)は簡単に命令できるタグ(指令) と、 tjsという本格的なプログラミング言語との2種類で出来ています。
今回は比較的簡単なタグについて解説します。

[wait time=200]
*start|スタート
 [cm]
こんにちは。

行先頭に*(半角アスタリスク)を書くと「ラベル」とみなされ、
このラベルをもとに、色んな場所へ移動することが出来ます。(選択肢の移動などで活躍)
ラベル名は英数字で書きます(先頭の文字のみ数字は不可)。
後ろに|(半角パイプライン/縦線)をつけるとそのラベルでセーブが出来るようになります。
|(の後にはセーブ時の名前を指定できます。(セーブ名は日本語OK)
*label_name|セーブ名
[]で囲まれたものはタグと言われ一つの命令を表わします。
↓下例を解説すると、[cm]は画面の文字をクリア、[r]は改行、[link・・][endlink]は選択肢、[s]はそこで停止、
(選択肢の後[s]で停止しないとプレイヤーの選択を待たずに次のラベルへ進んでいきます)
[locate]は文字の表示位置をx,y座標で指定(x=横,y=縦)
(ウィンドウの表示部分左上がx=0,y=0,右に行くとxが増え、下に行くとyが増える)。

;ラベルを元に選択先へ飛ぶサンプル ;↓*startは「|」が無いのでセーブ不可
*start
[cm][locate x=10 y=100]
リンゴとバナナ、どちらがいい?[r]
[link target="*ringo"]りんご[endlink]   [link target="*banana"]ばなな[endlink][s]

*ringo|リンゴを選択
[er]
りんごですね。美味しいですよね。[s]

*banana|バナナを選択
[er]
バナナですね、朝にはバナナです。[s]

吉里吉里/KAGのタグ解説

タグ(指令)は一行にひとつだけ命令を書く場合は 行の先頭に@(半角アットマーク)をつけます。
一行に複数の命令を書く場合はタグを[ ]で囲みます。
行の先頭に;(半角セミコロン)をつけるとコメント行になります。
(コメントは動作に影響しません。自由に覚え書きなどをメモれます)
タグ以外の部分はゲーム内の文字として表示されます。

[wait time=200]
;↓一行命令(画像表示)
@image storage="usagi.jpg" layer="0" visible="true"
こんにちは。
;↓複数命令
[image storage="ringo.jpg" layer="1" page="back" visible="true"] [trans method="crossfade" time="1500"][wt]
こんばんは。[r]
rをつけると改行します。

imageは画像を表示させるタグです。
imageに続けてあるstorageは属性と呼ばれ、
タグ名の後に半角スペースを空けて書きます。
複数の属性を指定する場合も半角スペースを開けてください。
属性は属性名=値、の形で記述します。
値は" "(ダブルクォーテーション)で囲むほうが安全です。数字は囲まなくても大丈夫かも。

吉里吉里のレイヤとは?

先ほどF5を押すと「こんにちは。」と表示されたと思いますが、
この文字が表示されたのは、文字を表示させるレイヤが表示状態(visible="true")になっているからです。
レイヤとは、目に見えない透明なフィルタのようなもので、(アニメのセル画のような)
透明フィルタを何枚も重ねてゲーム画面を表示させます。
レイヤ1には背景を、レイヤ2には人物を表示させることで、
レイヤ1の背景だけを変化させたりすることが容易になります。
吉里吉里には文字を表示させるメッセージレイヤ、 人物(画像)を表示させる普通のレイヤ、
背景などを表示させるbaseレイヤの主に3種類があります。
吉里吉里は初期状態でmessage0というメッセージレイヤが表示されており、
文字は自動的にそのメッセージレイヤ(message0)の上に描写されます。
別のレイヤに文字などを表示させたい場合、予めレイヤを確保しておく必要があります。
使用レイヤの枚数を指定するにはlaycountタグを使います。 [laycount layers="10" messages="4"]
layersは人物など様々な画像を表示させるための汎用性の高いレイヤを指します。
messagesはメッセージレイヤのことです。
ここでは普通のレイヤを10枚確保しメッセージレイヤを4枚確保しています。

レイヤの裏と表?画像のフェードイン・フェードアウト

レイヤには裏と表があり、表は通常のゲーム画面に表示される部分です。
imageタグなどで属性(page="back")を指定しなければ、表に描き込まれます。
なぜ裏があるのかというと、フェードイン・アウトの利用のためです。
フェードインやフェードアウトはある画像が別の画像に切り替わる効果を指します。
つまり画像Aと画像Bの2種類を徐々に切り替えるのです。
吉里吉里ではレイヤの表が今表示されている画面、
裏はtransタグで画面が切り替わる際、後から徐々に表示される画面。
つまりtransタグは、現在の表画面と裏画面を徐々に切り替えるタグなのです。
これを利用してフェードイン・フェードアウトが実現できます。
キャラクターを徐々に出現させたいときは、以下のようにします。
※はじめにレイヤを表示するため visible="true"を指定しています。

*HitoSyutugen|キャラクター登場
[cm][position layer="message0" top=300]
;↓ふつうに画像表示
[image storage="hitoA" layer=1 pos="left" visible="true"]
[image storage="hitoB" layer=2 pos="right" visible="true"][p]
;↓裏画面にあらかじめ描写してからtransタグで切り替え
[backlay]
[image storage="hitoC" layer=1 pos="left" page="back"]
[image storage="hitoD" layer=2 pos="right" page="back"]
[trans time=1000 method="crossfade"][wt]
画像を入れ替えました![s]

imageタグのpos属性は画像の位置を簡単に指定出来るもので、
位置の具体的(x,y)な指定はdata→systemフォルダ内のConfig.tjsファイルの270行目辺り、
「前景レイヤの左右中心位置指定」の項目にて追加・変更出来ます。
読み込む画像ごとに別のレイヤを指定してください。
[backlay]は表画面を裏画面にコピーします。
切り替えるレイヤが2枚以上ある場合は一旦[backlay]で表のレイヤすべてを裏にコピーしてから、
裏画面を新たに切り替えたい画像で上書きします。
レイヤ1枚だけ切り替えたい場合は[backlay]を使わずにtransタグのlayer属性に切り替えたいレイヤ番号を指定することも出来ます。
transタグで切り替えを開始したなら通常は[wt]タグで切り替え終了まで待ってから次の動作に移るのが基本です。
[trans〜][wt]とセットで使いましょう。

吉里吉里/kagのタグ一覧-これだけ覚えれば安心!

さらに詳しくはKAG Systemリファレンス内のタグリファレンスをご参照ください。
吉里吉里/kagのタグ一覧
タグ属性説明
titlenameウィンドウタイトルバーに表示される文字を指定
locatex,y文字表示位置をx,y座標で指定(x=横,y=縦)
(ウィンドウ表示部分の左上が原点x=0,y=0)
er,cm,ct 文字をクリア。erは今指定されてるレイヤの文字のみ消える。
cmは全レイヤ、ctは全レイヤ消去+デフォルトのレイヤ(message0)が描写対象になる。
p,l p:改ページクリック待ち、l:行末クリック待ち
pとlはメッセージ履歴への改行の出力の違いや、「ページ末まで一気に」を使用したときの挙動の違いなどがあります。
またクリック待ち時のアイコンが違います。
[p][er]、[l][r]など文字消去タグや改行とセットで使うことが多いです。
r 文字の改行
s その地点で停止(次を読み進めない)
waittimetimeで指定したミリ秒間待ってから次の命令に進みます。
1000ミリ秒=1秒です。3秒待つならtime="3000"
playbgmstorageBGM(音楽)をファイルから読み込んで再生、音楽ファイルはstorageで指定
playsestorageSE(効果音)をファイルから読み込んで再生、効果音ファイルはstorageで指定
imagestorage画像をファイルから読み込んで表示、画像ファイル名はstorageで指定し、画像を読み込むレイヤをlayerで指定(数字)
layer
transtime 裏画像と表画像を徐々に入れ替え。(フェードイン・フェードアウトに利用)
time=入れ替え時間(ミリ秒)、method=どのように入れ替えるか
(ふつうのフェードイン・フェードアウトならmethod="crossfade")
[wt]で切り替え終わるまで待ちます。
method
画像などのデータはフォルダ一覧の中のどのフォルダに入れても基本的には動くはずですが、
混乱を避けるため、画像はimageやfgimageフォルダ、音楽ファイルはbgmやsoundフォルダに入れておきましょう。
storageでファイル名を指定するだけで、どのフォルダに入れたかは考えなくても再生・表示出来ます。
hito01.pngをfgimageフォルダに入れた場合、下記のように記述できます。
[image storage="hito01" layer="5"]
拡張子(.png)なども省略出来ます
が、同名のファイルがあった場合に問題が生じますので拡張子も含めて表記する方が良いでしょう。

吉里吉里の参考資料・解説サイト

吉里吉里にはすでに優良な参考ページやサイトがあります。
まずはKKDEエディタ内にあるkrkrフォルダです。
この参考ファイルはネット上にもあります。
【吉里吉里の参考資料】
吉里吉里の基本的な作り方(Tipsは上級編):krkr→kag3→kag3doc→index.html
吉里吉里のシステムに関して:krkr→kirikiri2→kr2doc→index.html
吉里吉里のtjs言語に関して:krkr→kirikiri2→tjs2doc→index.html
tjsの具体的使用例KAGタグリファレンス


【吉里吉里の参考サイト・講座】
吉里吉里2/KAG3によるノベルゲーム開発gutchie様
吉里吉里2/KAG3逆引きマニュアルgutchie様
吉里吉里/KAG ノベルゲーム制作入門」サポートページ(wiki)

【吉里吉里プラグイン配布サイト】
吉里吉里プラグインとかごった煮的配布場所