【ウディタ解説】並列実行のコモンイベントをセルフ変数で起動/停止させる【制作補助】

お久しぶり。レビニアよ。

しばらく更新せずにごめんなさいね。ぼちぼち再開していくつもりだからまたよろしくね。

WOLF RPGエディター バージョン3公開

ウディタがバージョンアップして機能が超絶強化されたわね。

アップデート内容は紹介しきれないほど多岐に渡るのだけど、処理速度の向上やピクチャ・エフェクト関連の機能強化が主になるかしら。

今回のバージョンアップに際し、当ブログでも一部機能について解説させていただこうと思うわ。

自動/並列実行コモンの起動条件にセルフ変数を使う


修正された機能の1つにコモンの起動条件にコモンセルフ変数が使用可能になったというものがあるわ。以前は画像のように起動条件に使えるのは通常/予備変数だけだったのだけど、


このように、そのコモンイベントのセルフ変数の値も起動条件にすることができるようになったわ。

ウディタ製作者様もおっしゃっている通り、これによる利点は「通常/予備変数を使わない=配布しやすい」と「コモン自体を呼び出すことで並列or自動実行の起動/停止が行える」ということね。

並列実行のコモンイベントを呼び出しで起動/停止させる


実際に並列実行コモンで試してみましょうか。まずは入力設定に起動と停止の選択肢を作成


次に起動条件に使用するセルフ変数を用意。分かりやすいように99番を使いましょうか。


そして用意したセルフ99番を「1と同じ」で起動条件に設定する。これでこの並列実行コモンは「セルフ99=1」の時だけ実行されるようになったわ。

※呼び出し時に起動/停止させる用の変数と起動条件にする変数は同じじゃダメみたい。セルフ99番じゃなく0番を起動条件に使って試してみたけど、その時点で呼び出し元コモンが止まっちゃったりとうまくいかなかったわ。


次に呼び出しで起動/停止させるための処理を作成するわ。まずセルフ0番で条件分岐を作成してね。
■条件分岐(変数): 【1】 CSelf0[起動/停止] が 1 と同じ 【2】 CSelf0[起動/停止] が -1 と同じ
-◇分岐: 【1】 [ CSelf0[起動/停止] が 1 と同じ ]の場合↓
|■
-◇分岐: 【2】 [ CSelf0[起動/停止] が -1 と同じ ]の場合↓
|■
◇分岐終了◇


分岐1はコモンを起動させるための処理よ。呼び出し時に使ったセルフ0の値を0に戻す&起動条件のセルフ99の値を1に設定。そしたら一旦イベント処理を中断させてね。
■変数操作: CSelf0[起動/停止] = 0 + 0
■変数操作: CSelf99[起動条件] = 1 + 0
■イベント処理中断


分岐2はコモン停止の処理だからセルフ99を0にして同じくイベント処理中断
■変数操作: CSelf0[起動/停止] = 0 + 0
■変数操作: CSelf99[起動条件] = 0 + 0
■イベント処理中断


これで呼び出し時のコモン起動/停止処理はOK。この下に記述したコマンドが起動時に並列実行されるようになるわ。

並列実行コモンの呼び出しによる起動/停止を試してみる


それじゃ試してみましょう。とりあえず分かりやすく画面に日時を表示してみましょうか。
■ウェイト:1 フレーム
■ピクチャ表示:1 [左上]文字列[\sys[77]年\sys[78] X:5 Y:5 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]


ピクチャ表示を入れたから、コモン停止時に消去されるコマンドも入れなきゃね。
■ピクチャ消去:1 / 0(0)フレーム


マップイベントから呼び出して起動/停止させてみましょう。
■文章選択肢:/ 【1】並列実行コモン/起動 / 【2】並列実行コモン/停止
-◇選択肢:【1】 並列実行コモン/起動 の場合↓
|■イベントの挿入[名]: [“▲並列コモン起動/停止”] <コモンEv 217> / 1:起動
-◇選択肢:【2】 並列実行コモン/停止 の場合↓
|■イベントの挿入[名]: [“▲並列コモン起動/停止”] <コモンEv 217> / -1:停止
◇分岐終了◇


作成した並列実行コモンを呼び出し実行で起動させるわ。


左上に日時が表示されたわ。


F8キーで実行中並列コモンを表示。ちゃんと起動しているようね。


次は同じくコモンを呼び出して、今度は並列実行コモンを停止させてみましょう。


表示した日時が消えて、


コモンも実行されていないわ。ちゃんと停止したようね。

とまぁこんな感じで、並列実行コモンを「通常/予備変数を使うこともなくコモン単体で」「セルフ変数を起動条件にして呼び出しで起動/停止」させることができるようになったというわけ。

個人的にこれはかなり便利ね。並列実行コモンを動かしたり止めたりするのに、今まではいちいち別に変数操作したり専用のコモンを作ったりしなければいけなかったけど、これが並列実行コモンそのものの呼び出しだけでオンオフすることができるわ。

また、公式コモン集での配布など他者へコモンを渡す想定の場合でもやりやすくなったわ。通常変数への配慮を考えなくて済むようになったからね。

今回の解説は以上よ。他にもバージョン3の新機能について説明できそうなものがあれば解説させていただくつもりよ。