Unity製ノベルゲーム制作キット。iphone・Android アプリ化対応。

サブルーチンとマクロを活用しよう

サブルーチンとマクロとは

ジョーカースクリプトでは、何度も繰り返し利用する処理などを
ライブラリ化して、繰り返し利用する機能があります。
それが、今回利用する「サブルーチン」と「マクロ」です。
この2つは「他のまとまった機能を呼び出す」というところは一緒なのですが
使い方や用途がちがいます。

■サブルーチンの主な用途
シナリオが大きく分岐する場合など、
シナリオファイルを分けて作成しておき
サブルーチンで処理を移動させることでシナリオを分岐させる

■マクロの主な用途
何度も繰り返し利用するスクリプトをマクロにすることで、
タグを記述するだけで繰り返し利用することができるようにする。


いかがでしょう。
ちょっと、想像しにくいですね。具体的な使用方法を確認して行きましょう。

【重要】
[jump]などでも他のシナリオファイルやラベルに移動することができますが、サブルーチン・マクロと大きくちがう所があります。
それは、サブルーチンとマクロは処理が終わると、呼び出し元に戻ってきます。しかし[jump]で移動した場合は呼び出し元に戻って来れません。


サブルーチンの基本的な使い方

サブルーチンは[call]タグを使って呼び出します。
また、サブルーチンから呼び出し元に戻る場合は[return]タグを使います。
[wait time=200]
*start
[cm]
サブルーチンを呼び出します。[l][r]
[call target=*subroutine]
サブルーチンを呼び出しました。
[s]

*subroutine
これはサブルーチンです。[l][r]
クリックをすると呼び出し元に戻ります。[l][r]
[return]
このように、ラベルを起点にサブルーチンを呼び出すことができます。
別のファイルのサブルーチンを呼び出したい場合は、file属性でファイル名を指定して下さい。


マクロの基本的な使い方

マクロとはある処理をまとめたものを1つのタグで呼び出せるようにできる機能です。
つまり、既存のタグや文章を組み合わせて自由に新しいタグを定義することができる、非常に強力な機能です。
何度も使用するタグはマクロ化しておけば、他のゲームを作る際にも再利用できますので、どんどんマクロ化していきましょう

マクロは一度定義しておけば、そのマクロをどこからでも利用することができるようになります。
なので、必ずゲーム起動時に実行される必要があるため
first.txtの最初に記述しておくのが良いでしょう。


では具体的にコードを見ていきましょう。
シナリオを進める場合、クリック待ちの[l][r]を一緒に使う事が多いでしょう。
ただ、2つタグを入力するのは面倒なので一個のタグで済むように、以下のようなマクロを定義してみましょう。 ; -- マクロの定義 --

[macro name=lr]
[l][r]
[endmacro]

;マクロを呼び出す
テストテスト[lr]
これもテスト[lr]


マクロに数値を渡す

ジョーカースクリプトでは、定義したマクロを呼び出す際に好きな値を渡すことができます。
以下の例も見て下さい
; -- マクロの定義 --
[macro name=newtag]
[font color={mp.iro}]
ここの文字が指定したいろになります
[resetfont]
[endmacro]

; -- マクロを使う --
[newtag iro=0x00ff00]

この例では定義した[newtag]というタグを呼び出す際にiroという属性と値を渡しています。
それを受け取った側は、{mp.iro}とすることで、値を渡しています。


マクロに渡された値は変数 mp という領域に格納されます

いかがだったでしょうか。マクロを上手く使えば、大幅にゲーム開発を楽にすることができますね。
また、ジョーカースクリプトではみなさんの作成したマクロを大募集しています。みんなで共有して、もっと便利な開発ツールにしていきたいです。