トップページへ戻る


マクロに属性を与える
 
「さくさく、さくさく」

「お? 編物でもしてんのか?」

「あんですきゃんてぃがあみものしないといけないのよもー! ばかぢゃん! でやー!」

「んじゃ、何してんだ?」

「シナリオ書いてんだもん」

「ほ〜、どれどれ?」

[title name="1999ChristmasEve"]\
;-----------------------------------------------------------------
*chapter0_scene00_set
[layopt layer=message0 page=back visible=false]\
[trans rule="trans01" time=2000 vague=50]\
[wt]\
[ct]\
[image storage="dinner" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
;--------------------------------------------
*chapter0_scene00|オープニング
[ct]\
ぼくは[emb exp=f.sname1][emb exp=f.name1]。
どこにでもいる普通の社会人。[l]

(中略)

素晴らしいイブの夜になると信じて……[p]
[fadeoutbgm time=3000]\
[wb]\
[image storage="drive" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
[jump target=*chapter0_scene01]\
[s]
;---------------------------------------------------
*chapter0_scene01|序章 高速道路を下りて
[er]\
[playbgm storage="9thxmaseveinst"]\
「ホワイトクリスマスになるかしら?」[l]

(中略)

ただそれだけのことだ。[p]
[jump target=*chapter0_scene24_set]\
[s]
;---------------------------------------------------
*chapter0_scene24_set
[image storage="forest" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]
[wt]\
[layopt layer=message0 page=fore visible=true]\
[jump target=*chapter0_scene24]\
[s]
;---------------------------------------------------
*chapter0_scene24|序章 車を下りて
[er]\
車のトランクを開けたぼく達は、持ってきておいた
厚手のセーターとウインドブレーカーを着込んだ。[l]


(以下略)

「とかゆーふーに、どんどんシナリオを書いてんだもん!」

「なるほどね」

「んでもねー、すきゃんてぃ、ちょー残念なんだもん」

「何がだ?」

「ここ見てよねもー」

[title name="1999ChristmasEve"]\
;-----------------------------------------------------------------
*chapter0_scene00_set
[layopt layer=message0 page=back visible=false]\
[trans rule="trans01" time=2000 vague=50]\
[wt]\
[ct]\
[image storage="dinner" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
;--------------------------------------------
*chapter0_scene00|オープニング
[ct]\
ぼくは[emb exp=f.sname1][emb exp=f.name1]。

(中略)

素晴らしいイブの夜になると信じて……[p]
[fadeoutbgm time=3000]\
[wb]\
[image storage="drive" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
[jump target=*chapter0_scene01]\
[s]
;---------------------------------------------------
*chapter0_scene01|序章 高速道路を下りて
[er]\
[playbgm storage="9thxmaseveinst"]\
「ホワイトクリスマスになるかしら?」[l]

(中略)

ただそれだけのことだ。[p]
[jump target=*chapter0_scene24_set]\
[s]
;---------------------------------------------------
*chapter0_scene24_set
[image storage="forest" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]
[wt]\
[layopt layer=message0 page=fore visible=true]\
[jump target=*chapter0_scene24]\
[s]
;---------------------------------------------------
*chapter0_scene24|序章 車を下りて
[er]\
車のトランクを開けたぼく達は、持ってきておいた
厚手のセーターとウインドブレーカーを着込んだ。[l]

(以下略)

「上のきーろいとこわ、ちょーそっくりだもん」

「なるほど。確かに似ているな。文字レイヤーの黒い枠はそのまま残しておいて、背景画像だけを入れ替えているわけか」

「んでも、こーゆー時こそ、まくろをつかいたいんだけどなー」

「使えばいいだろ?」

「だって、似てんけど、違うぢゃんよもー! よーく見てよねもー!」

パターン1
[image storage="dinner" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\

パターン2
[image storage="drive" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\

パターン3
[image storage="forest" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]
[wt]\
[layopt layer=message0 page=fore visible=true]\

「ねー!? 似てんけど違うでしょもー! これぢゃーまくろにできないもん!」

「でも、違うのは背景ファイルの名前だけだろ? それだったらマクロに登録できるぞ」

「うそだもん! そっくーりぢゃないとできないもん!」

「ちょっとコツが必要だけど、KAGなら可能だ」

「んぢゃーやり方を教えてほしーもん!」

「上の例のように、[image] タグの storage 属性だけが違う場合は、それ以外の部分を一括してマクロに登録し、storage に与えるファイル名だけを随時指定してやればいい」

「ぜんっぜんっわかんない!」

「それじゃ、上の例を元にして、短いスクリプトを書いてみようか」

[title name="test"]\
;-----------------------------------------------------------------
*scene01|シーン1
[ct]\
[image storage="春の富士山.jpg" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
春の富士山。[l]
;--------------------------------------------
*scene02|シーン2
[ct]\
[image storage="夏の富士山.jpg" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
夏の富士山。[l]
;---------------------------------------------------
*scene03|シーン3
[ct]\
[image storage="秋の富士山.jpg" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
秋の富士山。[l]
;--------------------------------------------
*scene04|シーン4
[ct]\
[image storage="冬の富士山.jpg" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
冬の富士山。[l]
;---------------------------------------------------

「たとえば、こんなシナリオがあるとする。季節毎の富士山の写真を一枚ずつトランジションで表示させるスクリプトだ」

「4ページあるんだねー。んでも、それぞれのページは、似てんけど、違うもん」

「そこで、マクロに属性を与える。この場合の属性は、[image] タグの storage 属性のことだ。つまり、ファイル名のことだ」

「んー」

「シナリオの冒頭で、下記のようにマクロを登録してみよう」

[title name="test"]\
;-----------------------------------------------------------------
[macro name=changescene]\
[ct]\
[image storage=&mp.storage layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
[endmacro]\

;-----------------------------------------------------------------
*scene01|シーン1

(以下略)

「あー、見たことないやつがあんぢゃんよもー!」

「そう。ここに注目してくれ」

[title name="test"]\
;-----------------------------------------------------------------
[macro name=changescene]\
[ct]\
[image storage=&mp.storage layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
[endmacro]\
;-----------------------------------------------------------------
*scene01|シーン1

(以下略)

「&mpってなんなのよもー!」

「難しいことは知らなくていい。この魔法の呪文 &mp を唱えると、&mp の後ろに書いた storage がマクロの属性として使えるようになる。つまり、マクロでファイル名を指定することができるようになるんだ」

「ぜんっぜんっわかんない!」

「それじゃ、丸暗記しろ。上のマクロで定義した [changescene] タグを使ってスクリプトを書き直すと、こうなる」

[title name="test"]\
;-----------------------------------------------------------------
[macro name=changescene]\
[ct]\
[image storage=&mp.storage layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
[endmacro]\
;-----------------------------------------------------------------
*scene01|シーン1
[changescene storage="春の富士山.jpg"]\
春の富士山。[l]
;--------------------------------------------
*scene02|シーン2
[changescene storage="夏の富士山.jpg"]\
夏の富士山。[l]
;---------------------------------------------------
*scene03|シーン3
[changescene storage="秋の富士山.jpg"]\
秋の富士山。[l]
;--------------------------------------------
*scene04|シーン4
[changescene storage="冬の富士山.jpg"]\
冬の富士山。[l]
;---------------------------------------------------

「すごい簡単になっちゃったけど、こんなんでほんとに動くのかなー?」

「実行してごらん」

「んーんーんー」

(ただいま実行中)

「うわー、動いちゃった!」

「どっちが楽だ?」

「まくろー!」

「だろ? マクロを本当に有効利用するということは、こういうことを言うんだ」

「すごいすっきりしたもんねー!」

「それじゃ、さっきのお前のスクリプトも直してみよう」

「えーと……」

[title name="1999ChristmasEve"]\
*chapter0_scene00_set
[layopt layer=message0 page=back visible=false]\
[trans rule="trans01" time=2000 vague=50]\
[wt]\
[ct]\
[image storage="dinner" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
;--------------------------------------------
*chapter0_scene00|オープニング
[ct]\
ぼくは[emb exp=f.sname1][emb exp=f.name1]。

(中略)

素晴らしいイブの夜になると信じて……[p]
[fadeoutbgm time=3000]\
[wb]\
[image storage="drive" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
[jump target=*chapter0_scene01]\
[s]
;---------------------------------------------------
*chapter0_scene01|序章 高速道路を下りて
[er]\
[playbgm storage="9thxmaseveinst"]\
「ホワイトクリスマスになるかしら?」[l]

(中略)

ただそれだけのことだ。[p]
[jump target=*chapter0_scene24_set]\
[s]
;---------------------------------------------------
*chapter0_scene24_set
[image storage="forest" layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]
[wt]\
[layopt layer=message0 page=fore visible=true]\
[jump target=*chapter0_scene24]\
[s]
;---------------------------------------------------
*chapter0_scene24|序章 車を下りて
[er]\
車のトランクを開けたぼく達は、持ってきておいた
厚手のセーターとウインドブレーカーを着込んだ。[l]

(以下略)

「この、きーろい部分をまづわマクロにとーろくすんだよね?」

「そう」

「まほーのぢゅもん、&mpを使って……」

[title name="1999ChristmasEve"]\
;-----------------------------------------------------------------
[macro name=changescene]\
[ct]\
[image storage=&mp.storage layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
[endmacro]\
;-----------------------------------------------------------------
*chapter0_scene00_set
(以下略)

「んでもって、次わ、シナリオの中のおんなじ部分をマクロに置き換えんだよね?」

「そう」

「んーと……」

[title name="1999ChristmasEve"]\
;-----------------------------------------------------------------
[macro name=changescene]\
[ct]\
[image storage=&mp.storage layer=base page=back]\
[trans time=2000 rule="trans01" vague=100]\
[wt]\
[layopt layer=message0 page=fore visible=true]\
[endmacro]\
;-----------------------------------------------------------------
*chapter0_scene00_set
[layopt layer=message0 page=back visible=false]\
[trans rule="trans01" time=2000 vague=50]\
[wt]\
[ct]\
[changescene storage="dinner"]\
;--------------------------------------------
*chapter0_scene00|オープニング
[ct]\
ぼくは[emb exp=f.sname1][emb exp=f.name1]。

(中略)

素晴らしいイブの夜になると信じて……[p]
[fadeoutbgm time=3000]\
[wb]\
[changescene storage="drive"]\
[jump target=*chapter0_scene01]\
[s]
;---------------------------------------------------
*chapter0_scene01|序章 高速道路を下りて
[er]\
[playbgm storage="9thxmaseveinst"]\
「ホワイトクリスマスになるかしら?」[l]

(中略)

ただそれだけのことだ。[p]
[jump target=*chapter0_scene24_set]\
[s]
;---------------------------------------------------
*chapter0_scene24_set
[changescene storage="forest"]\
[jump target=*chapter0_scene24]\
[s]
;---------------------------------------------------
*chapter0_scene24|序章 車を下りて
[er]\
車のトランクを開けたぼく達は、持ってきておいた
厚手のセーターとウインドブレーカーを着込んだ。[l]

(以下略)

「これでいーかなー?」

「うん。それで、シーンを切り替えるときの画像のトランジションやその他の処理が、[changescene] というオリジナルのマクロで一発処理できるようになったわけだ」

「これなら長ーいシナリオでもちょーわかりやすいもん!」

「そうだろ? こういう場合のメリットは、単調なシーン切り替えなどで同じ処理を行う場合、トランジションの時間や、ルールファイルの指定など、そういう部分を完全に統一できるってことだ」

「そーだねー。いちいち前の切り替えの場所を見て『今までわ何秒だったっけかなー?』なんてやんなくていーのが、便利だもん」

「それじゃ、マクロの練習はこのくらいにして、メインシナリオの作成を続けて行こう」

「よーし!」

練習日記 5日目 次へ


トップページへ戻る