似たような処理を効率的に記述する(サブルーチン・マクロ)


投稿日:2015年9月22日 | 最終更新日:2024年5月15日

似たような処理を繰り返し使う場合は、サブルーチンマクロを使うのをおすすめします。

サブルーチン

サブルーチンは、定型句などのシナリオを呼び出して、もとのシナリオに戻るために使います。
詳細はリファレンスを確認してください

マクロ

マクロは、「複数のコマンドを組み合わせた一定の処理」を作るために使います。
詳細はリファレンスを確認してください

サンプル

以下に「好感度をアップする固定イベント」のサンプルです。

マクロの記述

サブルーチンとマクロを組みあせた、固定イベントの記述

JumpSubroutineのArg2で自動分岐、Arg3で戻り先を指定できるので、「レベルによって違う会話を呼び出して元に戻る」ということができます。
また、マクロを使って「ポイントアップして、定型文を表示」ということもできます。
マクロ内の計算式や、マクロの引数の値をレベルごとに変えることで、ある程度複雑な好感度アップなどもできるようになるでしょう。

少々複雑ですが、使いこなせば効率よくシナリオを記述することができます。

サブルーチンとマクロの違い

サブルーチンは基本的には「特殊なシナリオジャンプ機能」です。
基本的にはシナリオ分岐なので、固有のシナリオラベルをもちます。
既読判定としては、一度読んだサブルーチン先のシナリオは既読済みになります。
使用した時点でシナリオジャンプされてしまうので、同一ページ内での定型処理をすることはできません。

いっぽう、マクロは「一定のコマンドの組わせのセット」というイメージです。
柔軟性が高く、エンティティを使うことで変数を使った関数処理のようにつかうこともできます。
基本的には、マクロ内の記述がそのまま各シナリオに埋め込まれる形になりますので、同一ページ内の定型処理として使用することが可能です。
マクロ内にシナリオテキストを記述することも可能で、マクロ内でページ切り替え処理等を行うこともできます。
マクロ内にシナリオテキストが設定されている場合、使用箇所ごとに別のシナリオテキストとして扱われますので、既読判定は個別に行われます。