WOLF RPGエディター (ウディタ) で回を回してみた。
今回は、Version 3.711 を用いた。
新規作成
新しいプロジェクトを作成するには、Editor.exe と Game.exe を新しい (空の) ディレクトリにコピーする。
そして、コピーした Editor.exe を起動すると、新規作成の確認が表示される。
「はい」を押すと、作成するプロジェクトの種類を選択する画面が表示される。
今回は、「完全初期データの空データ作成」を押す。
すると、以下の画面が出て、初期データが作成される。
データを作成したら、「ゲーム設定 → ゲーム基本設定を開く」で開く画面の左上で、ゲーム名を設定しておくとよい。
イベント (プログラム) の作成
マップ内のマスに関連付ける形で、イベント (プログラム) を作成する。
ウディタの本来の使い方である RPG では、「特定のマスに主人公が入ったらプログラムを実行する」のような処理をしたいことが多そうだが、今回は主人公を用意せず、ゲームを起動してすぐにプログラムを実行するので、位置は重要ではない。
まず、「イベント」のレイヤーが選択されていることを確認する。
選択されていなければ、選択する。
マップ上の適当なマスをダブルクリックする。
すると、そのマスにイベントが作成され、イベントの編集を行う画面が開く。
以下がイベントの編集画面 (初期表示) である。
右端が見切れているので、ウィンドウの端をドラッグして広げるとよい。
イベントの起動条件を「自動実行」にする。
これは、条件を満たしていれば自動でイベントを実行する機能だが、その条件を 0 個しか設定しないことで、「常に (このイベントの実行が終了するたびに) 実行する」ことになる。
イベントの中身の作成
編集の基本
イベントの編集画面の右側の欄を用いて、イベントの中身を記述する。
一番下の黒い四角だけが書かれた行をダブルクリックするか、「■ イベントコマンド入力ウィンドウ表示 ■」ボタンを押すことで、イベントの中身に行を追加するための画面を開くことができる。
以下がこの画面の例であり、具体的な編集項目は行の種類 (この画面の左側で選択する) によって異なる。
「入力」ボタンを押すことで、イベントの編集画面で現在選択している位置に行を追加 (挿入) できる。
追加した行をダブルクリックすると、その行の内容を編集するための画面が開く。
以下がこの画面の例である。
行を選択して Delete キーを押すことで、その行を削除できる。
変数の参照
ウディタでは、1,000,000 (百万) 以上の値は変数の参照として扱われる。
変数呼び出し値 一覧 に定義が書かれている。
一部を挙げると、以下の値が使用できる。
| 値 | 意味 |
|---|---|
1100000 + x |
このイベントのセルフ変数 x |
2000000 + x |
通常変数 x |
9000000 + x |
システム変数 x |
ここで、それぞれの変数は以下の性質を持つ。
| 変数 | 性質 |
|---|---|
| セルフ変数 | そのイベントが持つ変数 (≒メンバ変数) |
| 通常変数 | どのイベントからでも参照できる変数 (≒グローバル変数) |
| システム変数 | 環境の情報を取得・設定する変数 |
回を回す
イベント定義
以下のイベント定義により、回を回すことができた。
Ctrl+A で全て選択し、右クリックして「コマンド文→クリップボードへコピー」を選択すると、以下のようにこのイベント定義が文字列でコピーできる。
■変数操作: このEvのSelf0 = Sys30:[読]プレイ時間(ミリ秒単位) * 36
■変数操作: このEvのSelf0 = このEvのSelf0 / 10
■ピクチャエフェクト:1 [描画座標シフト2(角度・拡大率反映前の値)] Xシフト 0 / Yシフト -12 [0]フレーム
■ピクチャ表示:1 [中心]文字列[\f[100]回] X:160 Y:120 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 このEvのSelf0 / 拡 100% / カラー R[100] G[100] B[100]
■ウェイト:1 フレーム
また、「イベントコード→クリップボードへコピー」では、以下のようなインポート・エクスポート用の文字列をコピーできる。
WoditorEvCOMMAND_START
[121][4,0]<0>(1100000,9000030,36,8192)()
[121][4,0]<0>(1100000,1100000,10,12288)()
[290][8,0]<0>(176,0,1,1,0,-12,0,0)()
[150][11,1]<0>(4128,1,0,1,1,1,255,160,120,100,1100000)("\f[100]回")
[180][1,0]<0>(1)()
WoditorEvCOMMAND_END
各イベントの解説
変数操作
変数などの値を用いた計算を行い、結果を変数に格納する。
今回は、システム変数の Sys30 の 3.6 倍の値をセルフ変数 0 に格納している。
Sys30 はプレイ時間のミリ秒部分 (0~999) を表し、3.6 倍することで 0~3600 の値になる。
ピクチャエフェクト
指定したピクチャの見た目を変更する。
今回は、そのまま角度を設定して回すと明らかに中心軸がずれた状態で回ったため、これを用いて回転前の位置を調整し、回り方を改善した。
なお、見た目で調整を行ったため厳密に中心になっているかは微妙だし、フォントに依存している可能性がある。
ピクチャ表示
ピクチャを表示する。
今回は、指定の文字列をピクチャとして表示する機能を用い、画面 (ゲームの基本設定で、画面サイズは 320×240 となっている) の中心の座標を指定し、そこを中心として「回」を描画する。
\f[100] は、フォントの大きさを指定する構文である。
基本的にはここで指定する数値が大きいほど文字が大きくなるが、ある程度の数値で文字の大きさが頭打ちになってしまい、文字を自由に大きくすることはできないようである。
角度として、先ほど計算したセルフ変数 0 を用いる。
角度は、3600 で1周で、正の値が時計回りである。
これにより、1秒に1周のペースで回が回る。
ウェイト (イベント制御)
指定したフレーム数だけ、イベントの処理を一時停止する。
これを入れておかないと、今回の設定では1フレームの間に無限にイベントが実行されてしまい、エラーと判定されてしまう。
実行結果
エディタ (Editor.exe) の画面を閉じ、Game.exe を実行すると、回が回った。
おわりに
WOLF RPGエディターで回を回すことができた。
ウディタをとりあえず開いてみたところ、サンプルとしてあらかじめ大量のイベントが定義されており、新規作成のメニューも無かったので面食らってしまった。
しかし、説明書を見て、新規作成の方法やイベントの定義の仕方を学んでから取り組むことで、このような単純な処理であれば数行のイベントを1個定義するだけでできることがわかった。

















