2007/12/06
第四十一段 『〜OMASU流 吉里吉里で作るノベルゲーム講座〜第四回』
開発篇
★『OMASU流 吉里吉里で作るノベルゲーム講座』、第四回目をお送りします。
今回の講座までを一通り修得すれば、基本的なノベルゲームを作る事が出来るようになります。
まずは、基本的な準備をします。今までの講座のおさらいも含まれています。
1、『準備1』
吉里吉里2内の『KAG3』フォルダを開く→『template』フォルダをコピー→貼り付けし、『template』を自分の作るゲームの名前に書き換える→保存→『system』フォルダの設定を決定する→『scenario』『syste』以外のフォルダに画像・BGM・SE等のゲームの素材を格納する→番号は、0〜9の順で並び替えられるので、最初のフォルダは、『???01.???』の名付けるとよい。
2、『準備2』
マクロファイルを書く→『scenario』フォルダに格納する→『first.ks』フォルダの文章を全て消し、マクロファイルを読み込んだ後、最初のシナリオファイルにジャンプするようにする。
ここで、筆者の使っているマクロを公開します。数値や名前を書き換えれば、自分なりのマクロに改造出来ます。色々、研究してみてください。
プログラムの内容は、解説を読めば、何となくわかるのではないでしょうか。詳しい解説は、また、後に行います。
まずは、書かれている内容をよく見てみてください。
*macro
;------------------------------
;【マクロを定義】
;------------------------------
;【マップ選択画面のメッセージレイヤーを表示するマクロ】
[macro name=mla]\
[position layer=message0 marginl=8 margint=28 marginr=8 marginb=8 left=16 top=16 width=608 heignt=448]\
[endmacro]\
;------------------------------
;【ウインドウタイプのメッセージレイヤーを表示するマクロ】
[macro name=wla]\
[position layer=message0 marginl=8 margint=8 marginr=8 marginb=8 left=16 top=352 width=608 heignt=448]\
[endmacro]\
;--------------------------------------
;【背景レイヤーを表示するマクロ】
[macro name=bon]\
[image storage=%storage layer=base page=fore left=0 top=0]\
[endmacro]\
;---------------------------------
;【左にウィンドウを表示するマクロ】
[macro name=won]\
[image storage=%storage layer=4 page=fore left=8 top=352]\
[layopt layer=4 page=fore visible=true]\
[endmacro]\
;---------------------------------
;【左ウィンドウを消すマクロ】
[macro name=woff]\
[backlay]\
[freeimage layer=4 page=back]\
[trans method=crossfade time=200]\
[wt]\
[endmacro]\
;-----------------------------------------------------
;【左にキャラを表示するマクロ(レイヤー2)】
[macro name=lon]\
[image storage=%storage layer=2 page=fore left=0 top=0]\
[layopt layer=2 page=fore visible=true]\
[endmacro]\
;-------------------------------------------
;【右にキャラを表示するマクロ(レイヤー1)】
[macro name=ron]\
[image storage=%storage layer=1 page=fore left=0 top=0]\
[layopt layer=1 page=fore visible=true]\
[endmacro]\
;-------------------------------------------
;【中央に一枚絵を表示するマクロ(レイヤー2)】
[macro name=son]\
[image storage=%storage layer=2 page=fore left=0 top=0]\
[layopt layer=2 page=fore visible=true]\
[endmacro]\
;-------------------------------------------
;【中央にマスク用の一枚絵を表示するマクロ(レイヤー3)】
[macro name=s2on]\
[image storage=%storage layer=3 page=fore left=0 top=0]\
[layopt layer=3 page=fore visible=true]\
[endmacro]\
;-------------------------------------------
;【中央の一枚絵を隠すマクロ】
[macro name=soff]\
[backlay]\
[freeimage layer=2 page=back]\
[trans method=crossfade time=200]\
[wt]\
[endmacro]\
;-------------------------------------------
;【中央の一枚絵を隠す遅いマクロ】
[macro name=ssoff]\
[backlay]\
[freeimage layer=2 page=back]\
[trans method=crossfade time=1500]\
[wt]\
[endmacro]\
;-------------------------------------------
;【中央のマスク用の一枚絵を隠すマクロ】
[macro name=s2off]\
[backlay]\
[freeimage layer=3 page=back]\
[trans method=crossfade time=500]\
[wt]\
[endmacro]\
;-------------------------------------------
;【中央のマスク用の一枚絵を隠す遅いマクロ】
[macro name=ss2off]\
[backlay]\
[freeimage layer=3 page=back]\
[trans method=crossfade time=1500]\
[wt]\
[endmacro]\
;---------------------------
;【左キャラを隠すマクロ】
[macro name=loff]\
[backlay]\
[freeimage layer=2 page=back]\
[trans method=crossfade time=200]\
[wt]\
[endmacro]\
;---------------------------
;【右キャラを隠すマクロ】
[macro name=roff]\
[backlay]\
[freeimage layer=1 page=back]\
[trans method=crossfade time=200]\
[wt]\
[endmacro]\
;---------------------------
;【[l]\[er]\を一行にするマクロ】
[macro name=ler]\
[l]\
[er]\
[endmacro]\
;---------------------------
;【BGMを再生するマクロ】
[macro name=pbgm]\
[playbgm storage=%storage]\
[endmacro]\
;--------------------------------
;【SEを再生するマクロ】
[macro name=pse]\
[playse storage=%storage loop=false]\
[endmacro]\
;---------------------------
;【BGMをフェードアウトするマクロ】
[macro name=fbgm]\
[fadeoutbgm time=2000]\
[endmacro]\
;--------------------------------
;【地震を起こすマクロ】
[macro name=qon]\
[quake time=500 hmax=20 vmax=20][wq]\
[endmacro]\
;--------------------------------
;【CG鑑賞モード用マクロ】
[macro name=imagemem]\
[image *]\
[eval exp="sf[mp.storage]=1"]\
[endmacro]\
;-------------------------------------------
;〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[return]\
;〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
3、『吉里吉里プログラミング』
いよいよ本体となるファイルを書きます。吉里吉里では、0から始まるフォルダを先頭にファイルの順番がリソートされるので、ファイル名は、『???01.拡張子』というファイル名を作るのがよいでしょう。
ここで、筆者の吉里吉里ノベルゲームの作例を公開します。
既に公開したマクロファイルの内容と合わせて、このファイルの内容を理解出来れば、吉里吉里でノベルゲームが作れます。
;------------------
*ep01-4-1
*ep01-4-1|
;------------------
;<11月1日 聖マリア学園の朝>
;---------------
[cm]\
[mla]\
[son storage="bbl"]\
[bon storage="bti08"]\
[ssoff]\
[ler]\
[son storage="bti08"]\
[bon storage="bbl"]\
[ssoff]\
[son storage="bbl"]\
[bon storage="bti09"]\
[ssoff]\
[ler]\
[son storage="bti09"]\
[bon storage="bbl"]\
[ssoff]\
[mla]\
[bon storage="bbl"]\
[son storage="bgu"]\
[font color=0xffffff][font size=30] 20XX年。
[l]\
[font color=0xffffff][font size=30] 11月1日。
[l]\
[font color=0xffffff][font size=30] 聖マリア学園の朝。
[ler]\
[resetfont]
[cm]\
[soff]\
[wla]\
[ler]\
;------------------
*ep01-4-2
*ep01-4-2|
;------------------
[son storage="bbl"]\
[bon storage="br"]\
[ssoff]\
[bon storage="br"]\
[pbgm storage="BGM21"]\
[won storage="w"]\
鮮血が目に入ってしまったかのように、私の視界は、真っ赤に染まっていた。
[ler]\
見慣れた父の書斎が炎に包まれている。
[ler]\
;----------------------
;〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
;----------------------
[soff]\
;【背景トランジョン→立ち絵ONスクリプト】
[s2on storage="bre01"]\
[son storage="sbya06"]\
[bon storage="bre01"]\
[s2off]\
;----------------------
白蓮「あ・・・・・」
[ler]\
;----------------------
[soff]\
;【背景トランジョン→立ち絵ONスクリプト】
[s2on storage="bre01"]\
[son storage="sryuko01"]\
[bon storage="bre01"]\
[s2off]\
;----------------------
[s2on storage="sryuko01"]\
[son storage="sryuko02"]\
[bon storage="bre01"]\
[s2off]\
;----------------------
*ep01-4-23
*ep01-4-23|
;------------------
一人の白衣姿の女性が、安達さんの側に駆けつけた。
[ler]\
あの人は─。
[ler]\
[fbgm]\
[cm]\
[woff]\
[soff]\
[son storage="bre01"]\
[bon storage="bbl"]\
[ssoff]\
[jump storage="ed01-1.ks" target=*ed01-1-1]\
;/////////////////////
[s]\
★吉里吉里のプログラミングは、半角文字で行います。
ます、『;』で始まる文章は、セパレーターです。この記号を文頭に入れると、その文字は画面に表示も命令の実行にもなりません。
注意書きとして使いましょう。
★
;------------------
*ep01-4-1
*ep01-4-1|
;------------------
は、このファイルが拙作のノベルゲーム、『学園霊異記』のエピソード1の四章、分岐1のテキストである事を表わしているラベルです。
ラベルとは、ジャンプ先のファイル名を表わした名札のようなものの事です。
吉里吉里のプログラムは、この『*(アスタリスク)』の付いたタグを探して実行する、という仕組みになっています。
アスタリスクが二つ並んでいるのは、二つ目に、『|(パイプライン)』を付けたラベルを並べたかったからです。この記号が付いたラベル上でのみ、セーブ・ロードが実行されます。
★
[cm]\
は、画面に表示されていた文章を全て消しておくタグです。
これを入れて置かないと、前のファイルの文章の文字がそのまま、画面に残ったまま、表示がされてしまいます。
ファイルの先頭には、本文よりまず先に、このタグを置いておいて下さい。
吉里吉里では、文章を表示するのに特別なプログラミングは必要ありません。
ただ、吉里吉里には、自動改行の機能が無いので、文章が画面いっぱいに広がると文字がもう見えません。
そこで、改行表示のコマンドを文末に入れる必要があります。
[l]\・・・・・文末に付けると、自動的に改行。
[er]\・・・・・何かキーを押さないと改行させないコマンド。
筆者のマクロ、[ler]\を文末に入れると、一行ごとに、改行待ち→改行というゲームが作れます。
★文章の先頭には、まず、
[cm]\
というタグを入れておいてください。
これは、画面に表示されていた文章を全て消しておくタグです。
これを入れて置かないと、前のファイルの文章の文字がそのまま、画面に残ったまま、表示がされてしまいます。
★
[mla]\
は、画面いっぱいに文字が表示されるスタイルの画面を選ぶ為のタグです。
この後、作例では、
[font color=0xffffff][font size=30] 20XX年。
[l]\
で、物語の場面を説明するモノローグを入れています。
[font size=30]
を文頭に入れると、拡大された文字を表示出来ます。
[font color=0xffffff]
は、文字の色を決定するタグです。
この場合、『0xffffff』が白で、これは下5ケタの文字が、HTMLの物と共用です。
★
[resetfont]
は、文字の変更をリセットしてディフォルトに戻すタグです。
★
[son storage="bbl"]\
[bon storage="bti08"]\
[ssoff]\
は、画像を表示→フェードアウトして下に隠しておいた画像にゆっくり切り替えるというタグです。
ファイル名『bbl』は、自作の黒一色の画像(640×480サイズ)で、この画像を上に置き、じわりじわりと[ssoff]\タグで消す事で、下に隠しておいた『bti08(タイトル用画像08番)』を表示させるというタグです。
この切り替えは、画像切り替えの基本となるスタイルです。
単に画面から上に載せて表示した画像を消したい時は、[off]\タグを使います。
★
[pbgm storage="BGM21"]\
は、BGMを鳴らすタグです。この場合は、BGM21を鳴らしています。
BGMは、
[fbgm]\
タグでフェードアウトさせる事が出来ます。
SEを鳴らしたい時は、pをseに変えて下さい。
★
[won storage="w"]\
タグは、『w』という名前のウィンドウ用の画像を表示するタグです。画像出力タグと同じ物です。
★ファイルの最後には、
[jump storage="ed01-1.ks" target=*ed01-1-1]\
;/////////////////////
[s]\
というタグを入れます。これは、拙作のノベルゲーム、『学園霊異記』のエピソード1のエンディング1にジャンプする為のタグです。
最後の
[s]\
は、ここで、プログラミングは終わりという事を示すストップタグです。
4、『分岐の作り方』
★ノベルゲーム特有の機能である分岐の作り方を説明します。
[font color=0xffff00 size=30][link target=*i-ep01-4-01]『自己紹介をする』[endlink]
[s]\
これは、マウスで文字をクリックすると指定のファイルへジャンプするというシンプルながら非常に便利なタグです。
画像ギャラリーやマップ分岐なども、これを画面に並べれば大抵は事足ります。
次回第五回では、吉里吉里ノベルゲームで使える画像ファイル・BGMファイルの形式や作り方のコツなどを作例をまじえて解説します。
免責・・・・・・・次回講座の掲載時期は未定です。掲載時期についての質問は一切受け付けられません。ご了承下さい。
また、吉里吉里の操作取り扱い等の質問にも、一切返答は出来ません。ご了承下さい。
第四十一段 『〜OMASU流 吉里吉里で作るノベルゲーム講座〜第四回』 了
戻る