ん〜〜〜〜 | |
どうしたの? | |
KAGにも慣れてきて、いろいろ作って遊んでるんだけど・・・ | |
すごいじゃない。 不機嫌そうなのはどうして? |
|
KAGって便利なんだけど、同じような属性がいっぱいだし、同じタグを何度も繰り返して書いたりしなきゃいけないしで、色々と面倒だなぁって・・・ | |
人間、楽することばかり考えてたら堕落するよ。 | |
でもぉ〜 | |
しょうがないわね。 じゃあ、マクロ使ってみる? | |
マクロ? それって、ドラ○もんの道具みたいに、すごい力で助けてくれる? |
|
そこまですごくはないけど・・・ 知ってるとすごく便利だと思うよ。 |
|
じゃあ、教えて! | |
マクロって言うのは、リファレンスによると、「複数のタグや文章を一つのタグで表せるようにする」ための物なんだって。 | |
イマイチよく分からないんだけど・・・ | |
新しい名前のタグを作って、それで色々やっちゃおうってこと。 | |
そんなことができるの? | |
試しに、下のサンプルを実行してみる? | |
*start [macro name="new"] こんにちは。[p][er] こんばんは。[p][er] [endmacro] [new] [new] [new] |
|
macroタグも、[macro] 〜 [endmacro]のセットで使うタグね。 name属性は新しいタグにつける名前。 このタグで囲まれた部分に書かれた文章とかタグとかが、[new]って書くだけで全部実行してくれるわけ。 |
|
ほんとだ。 | |
今のはすごく単純な例だったけど、凝ったこともできるよ。 | |
*start [macro name="base"] [backlay] [image storage=%storage layer=base page=back] [trans method=crossfade time=1000] [wt] [endmacro] [base storage="base_sample.jpg"] |
|
ここのポイントは、imageタグの中にある storage=%storage ね。 | |
%って初めて見るよね。 | |
これは、マクロのタグの中で指定された属性値に置き換える記号なの。 上の例だと、[base storage="base_sample.jpg"] という具合に、マクロタグの中でstorage属性が指定されてるでしょ。この値に置き換えるってこと。 |
|
[image storage="base_sample.jpg" layer=base page=back] になるんだね。 | |
これは、別の書き方もできて・・・ | |
*start [macro name="base"] [backlay] [image storage=&mp.storage layer=base page=back] [trans method=crossfade time=1000] [wt] [endmacro] [base storage="base_sample.jpg"] |
|
これと、さっきのは同じなんだよ。 mp.storage はマクロの中だけの特殊な変数とでも思っておけばいいかな。 |
|
変数だから、&を付けてるんだね。 | |
そういうこと。 最初の%を使う方法でも、変数を使う方法でもどちらでもいいんだけど、次のような場合は注意が必要だよ。 | |
*start [macro name="new"] [eval exp="f.b=mp.a*10"] 答えは[emb exp="f.b"] [endmacro] [new a=100] |
|
この場合は %a っていう使い方はできないから。 | |
%a が変数じゃないから? | |
そういうこと。 | |
ほかには? | |
こんなのもあるよ。 | |
*start [macro name="t"] [backlay] [image storage="base_sample.jpg" layer=base page=back] [trans *] [wt] [endmacro] [t method=crossfade time=1000] |
|
* を書くと、マクロの中で指定された属性がすべて、ここで指定されるの。 | |
なるほど。 つまり・・・ [trans method=%method time=%time] って書くのと一緒だね。 |
|
半分正解。 | |
半分だけ? | |
transタグは上の2つ以外にもいろいろ属性があるでしょ。今は2つ以外は省略してるけど。 そういうものが省略されても、されなくても、大丈夫なのが * を使った書き方。 クリスの書き方だと method と time しか入らないし、どちらかが省略されたらおかしくなるよね。 |
|
そっかぁ。 こういう使い方をするときは、* を書いておいた方が無難ってことだね。 |
|
そういうこと。 もし、どうしてもそういう書き方がいいんだったら・・・ [trans method=%method|crossfade time=&time|1000]こう書くと、属性が省略されたときの規定値として設定することができるよ。 |
|
へぇ。 いろいろ考えられてるんだね。 |
|
マクロを使う時に一番注意しなくちゃいけないのが、セーブデータをロードする時なんだよ。 | |
どういう意味? | |
マクロの登録情報は、セーブデータとして保存されるの。 つまり・・・ マクロ作成→ゲーム実行→セーブ→マクロ修正→ロード という順番でプレイすると、ロードしたときにマクロの内容もロードされるから、修正される前のマクロが実行されちゃうの。 |
|
変更したはずなのに、実行すると変更されてないってこと? | |
そう。 デバッグしてる時に陥りやすいワナね。 |
|
マクロを修正したら、最初から実行しないといけないってことだね。 | |
そういうこと。 マクロは使いこなせばすごく便利な機能だから、頑張って。 |
|
よーし、やるぞぉ! | |
あ、でも、何でもかんでもマクロにすればいいってワケでもないからね。 増やしすぎても使い切れないし、混乱の元だから。 |
|
え? あはは、やだなぁ。 それくらい分かってるよ。 |
|
じゃあ、その画面いっぱいのマクロは・・・? | |
・・・・・・ |