WOLF RPGエディター(ウディタ)/基本システム改造【サイトトップへ戻る】
■基本システムの改造テクニック
(更新:2023/02/01)


基本システムの改造テクニックを紹介します。

ショートカット
■改造で使う機能:F7(ピクチャ詳細一覧)
■改造で使う機能:F8(デバッグデータ)
■改造で使う機能:検索
■改造で使う機能:デバッグ文
■【F7の活用例】戦闘画面の背景を真っ黒にする
■【F8の活用例】キー入力の入力待ちを行っている場所と特定する
■【検索の活用例】最大HPを増減する時に表示される文章を変更
■【デバッグ文の活用例】基本システムにあるデバッグ文の設定
■主人公のステータス画面の表示位置の改造について
■コモンイベントの改造前にバックアップを残そう!

基本システムの基本的な説明は別ページに記載しています。
【基本システムの基本的な説明を見る】


  
■改造で使う機能:F7(ピクチャ詳細一覧)

テストプレイモードでキーボードの[F7]を押すと「ピクチャ詳細一覧」が表示されます。

▼メニュー画面を表示中に[F7]を押した時


このピクチャ詳細一覧ではピクチャの表示位置や不透明度などの設定状況を確認する事ができ、
特に「最後に[表示]したEv」の情報は、どこでピクチャを表示したのかが分かるため、
ピクチャの表示設定を変える時には、役に立つ情報と言えます。

例えば一番上にある「ID:10000」の場合は…
最後に[表示]したEv【 コモン88 121行 】
になっているので、表示した設定がコモンイベント[088:X[移]メニュー描画]121行目である事が分かります。



▲トップへ戻る▲


  
■改造で使う機能:F8(デバッグデータ)

テストプレイモードでキーボードの[F8]押し続けると「デバッグデータ」が表示されます。

▼戦闘画面で主人公の行動選択中に[F8]を押し続けた時


改造で特に重要になるのが[実行中イベント]であり、例えば上図の[実行中イベント]を見てみると…
<Ev0 0行> -> <Ev0 コモン37 55行> -> <Ev0 コモン188 54行> -> <Ev0 コモン191 99行> ->
<Ev0 コモン192 137行> -> <Ev0 コモン65 84行>
になっており、
マップイベント[0]の0行目からコモンイベント[37]を呼び出し
コモンイベント[37]の55行目からコモンイベント[188]を呼び出し」と言ったように、
イベントコマンド【イベントの挿入】でイベントを呼び出している処理の流れを確認する事ができます。



この[F8]は画面を表示している間もイベント処理が進んでいきます。

そのため特定の場所までの処理の流れを確認したい時には、
処理の流れを確認したい所にシステム文字列[55:[読]Ev実行経路]を設定してください。

【イベントコード表示】
■デバッグ文:\sysS[55]

▼表示例
Ev0 line0 ->
Ev0 Common37 line55 ->
Ev0 Common188 line54 ->
Ev0 Common191 line99 ->
Ev0 Common192 line137 ->
Ev0 Common65 line84 -->


▲トップへ戻る▲


  
■改造で使う機能:検索

コモンイベントの検索機能を使って、目標とするイベントコマンドを探す時に使います。

▼文字の検索
▼変数の検索

変数を検索する時には「変数呼び出し値」を設定します。
【変数呼び出し値についての説明を見る】

右上の図の「1600000」の場合は「セルフ変数[0]」を検索する設定になっています。



イベント設定で使用している変数の番号を違う番号に変える時にも「検索」を使う事があります。
詳しくは以下のページをご覧ください。
【変数の番号や文字列を別のものに置き換えるを開く】


▲トップへ戻る▲


  
■改造で使う機能:デバッグ文

イベントコマンド【デバッグ文】を使って、
変数の数値や文字列が正常に設定されているかどうかを確認する時に使います。

変数の値を表示する場合は特殊文字を設定する必要があります。
【変数の値を表示する特殊文字を確認する】



デバッグ文を大量に設定すると、大量の情報がデバッグウィンドウに書き込まれて、
必要な情報を確認しにくくなります。

そのため、たまに使う程度のデバッグ文は一時的に【コメント文】に変えたり…
■回数付きループ [ 0 ]回
■デバッグ文:x\cself[10] y\cself[11]

◇ループここまで◇◇
と言ったように、ループ回数を「0回」にしたループの中にデバッグ文を設定しておき、
デバッグ文を表示したい時には、ループ回数を「1回」に変えて表示させるようにした方が良いでしょう。



デバッグ文で数値を表示する時には、単に「10 15」などと数値だけを表示するのではなく、
「x10 y15」と言ったように、何の数値なのかが分かる文字を一緒に表示させると、
改造の作業がスムーズに行えます。

数値のみ表示 文字を追加
■デバッグ文:\cself[10] \cself[11] \cself[12]

■デバッグ文:ID:\cself[10] x\cself[11] y\cself[12]




デバッグ文の隠し機能を使うと、ピクチャや変数の変化を確認する事ができます。

【イベントコード表示】
■デバッグ文:ValWatch:ON=9000001


▼ONにした設定をOFFにする場合
【イベントコード表示】
■デバッグ文:ValWatch:OFF=9000001
左の設定で変数呼び出し値を設定すると、
指定した変数の値に変化があった時に、
その変化内容がデバッグウィンドウに表示されます。
【変数呼び出し値の説明を見る】

▼表示例(文章を表示した時)
【イベントコード表示】
■デバッグ文:PictureWatch:ON=10000


▼ONにした設定をOFFにする場合
【イベントコード表示】
■デバッグ文:PictureWatch:OFF=10000
左の設定でピクチャIDを設定すると、
指定したピクチャに何らかの変化があった時に、
その変化内容がデバッグウィンドウに表示されます。

▼表示例(戦闘を開始した時)

この隠し機能を使うと処理が重くなるので、デバッグの時に一時的に使うようにした方が良いでしょう。


▲トップへ戻る▲


  
■【F7の活用例】戦闘画面の背景を真っ黒にする

戦闘中の背景を真っ黒に変える改造を行います。

改造前 改造後



まずは何も改造していない状態でテストプレイを実行し、戦闘画面を表示してください。



[F7]を押して「ピクチャ詳細一覧」を表示してください。

戦闘画面の背景の画像は、戦闘画面で使用しているピクチャの中で最も小さいピクチャIDになるので、
ID:10000」が戦闘背景用の画像である事が分かります。

この「ID:10000」を表示しているイベントID行数を確認してください。




テストプレイを終了し、コモンイベント[180:X[戦]バックグラウンド描画]40行目を表示します。




40行目にある【ピクチャ表示】を開きます。



「ファイル」の設定を以下のように変えてください。

変更前 <GRADY-779-000>
変更後 <GRADY-000-000>


以上で改造完了です。



▼補足1

ピクチャを使って画面を真っ黒にする設定方法には「<SQUARE>」を使った設定方法もあります。

<SQUARE>」を使った設定方法の場合は、
カラー(RGB基本値100/0〜200)」の設定値を全て「0」にすると真っ黒な画像になります。



【イベントコード表示】
■ピクチャ表示:CSelf21[一時ピクチャ番号] [左上]ウィンドウ「<SQUARE>」
       サイズ[Sys116:[読]画面サイズX,Sys117:[読]画面サイズY] X:0 Y:0 / 10(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]



▼補足2

ゲーム画面を真っ黒にする方法として…
【イベントコード表示】
■色調変更: R0 G0 B0 / 0フレーム
と言ったような設定方法もあります。

但しイベントコマンド【色調変更】で真っ黒にした場合は、
ピクチャID[0〜9999]の画像が見える状態になってしまいます。

そのため、ピクチャID[9999]以下の画像も見えない状態にする場合は、
ピクチャ[10000]で真っ黒な画像を表示する必要があります。


▲トップへ戻る▲


  
■【F8の活用例】処理が止まっている場所を特定する

イベントコマンド【キー入力】の処理で「入力待ち」を行っている場所を調べます。



以下は戦闘中に主人公が攻撃する敵キャラを選択している画面を表示している時です。





この画面で[F8]押し続けると、以下の画面が表示されます。



[実行中イベント]の部分を見てみると…
<Ev0 0行> -> <Ev0 コモン28 0行> -> <Ev0 コモン188 54行> -> <Ev0 コモン191 113行> ->
<Ev0 コモン192 228行> -> <Ev0 コモン157 63行> -> <Ev0 コモン159 255行> -> <Ev0 コモン162 51行>
になっており、処理がコモンイベント[162:X[戦]敵対象選択実行]51行目で止まっている事が分かります。

なお、実際の行は「50行目」になります。
([F8]の行数(51行目)と実際の行数(50行目)にずれがある理由は不明です)





▼補足

コモンイベントで特定のイベントコマンドを探す時には、通常は「検索機能」を使います。

しかし検索するキーワードが分からない場合や、
検索でヒットした場所がたくさんあって、どこが目的の場所なのかが分からない場合は、
今回のように[F8]を使うなど、別の方法で特定のイベントコマンドを探した方が良いです。

イベント設定でも言える事ですが、1つのやり方だけで何とかしようとすると上手くいかない事があるので、
上手くいかない場合は別の方法を試してみるのも、ゲーム制作では重要な事になります。


▲トップへ戻る▲


  
■【検索の活用例】最大HPを増減する時に表示される文章を変更

最大HPを増減する時に表示される文章を変える改造を行います。

改造前「上がった!」 改造後「増えた!」



この手の文章の表示では…
\cself[5]の最大\cself[6]が\cself[10]上がった!
と言ったように、主人公の名前や数値の部分を変数で表示するように設定されています。

そのため、検索キーワードの設定では、変数で設定していそうな文字(主人公の名前など)は避けて、
「上がった!」などの特徴的なキーワードで検索した方が良いでしょう。





「上がった!」で検索すると、初めにコモンイベント[070:X[移]パラメータ増減]163行目がヒットします。

実際に最大HPを増減する処理はこのコモンイベント[070:X[移]パラメータ増減]の中で行っていますが、
しかし少し上の方(130行目)を見てみると「レベル」と書かれているため、
163行目の「上がった!」はレベルが上がった時の「上がった!」である事が分かります。

続けて検索すると次にコモンイベント[070:X[移]パラメータ増減]439行目がヒットしました。

少し上の方(428行目)には「最大HP」と書かれているので、
この439行目の「上がった!」が最大HPの「上がった!」で使用される文字列である事が分かります。

この439行目の「上がった!」の文字列を「増えた!」に変えると、
最大HPを上げた時の表示が「増えた!」に変わります。



444行目の「下がった!」を「減った!」に変えると、最大HPが下がった時の表示が変わります。


以上で設定完了です。



▼補足1

今回の改造では検索キーワードを「最大HP」にしても、最大HPを増減する設定に辿り着く事ができます。

しかし検索キーワードを「最大HP」のように「HP」を全角の文字にすると、
コモンイベント[070:X[移]パラメータ増減]は素通りしてしまいます。

また今回の場合は【文章の表示】を使っているので、
メッセージウィンドウが表示されている時に[F8]を押し続けて、
現在実行中の【文章の表示】がどこにあるのかを調べる方法もあります。

▼[実行中イベント]を見ると「コモン70 682行」で文章を表示している事が分かります


文章を表示しているのがコモンイベント[070:X[移]パラメータ増減]である事が分かれば、
そのコモンイベント[070:X[移]パラメータ増減]の中を調べれば、
最大HPを増減している設定に辿り着く事ができるでしょう。



▼補足2

データベースの特定の項目を改造する場合で、
その項目がコモンイベント内のどこで使用しているのかを検索する場合は、
その改造する設定名をコピーしたものを検索キーワードにした方が良いでしょう。



但し全角の空白文字が含まれている設定名の場合、
イベントコマンドの表示では「半角の空白2文字」に変換して表示されるため、検索がうまくいかない事があります。

例えば可変DB[18:基本システム用変数]データ[35:ステータス欄表示 元座標X]の空白文字の場合、
データベースの設定では「ステータス欄表示元座標X」の「」の部分は全角の空白文字になっていますが、
イベントコマンドの表示では半角2文字になっています。

そのため、「ステータス欄表示 元座標X」の設定名をコピーして検索機能の検索語に貼り付けた場合は、
途中にある全角の空白文字を削除し、代わりに半角の空白文字を2文字設定してから検索を実行してください。

他の方法では、イベントコマンドで…
■可変DB書込:DB[ 基本システム用変数 : ステータス欄表示 元座標X : 0 ] (18 : 35 : 数値) = 0
を設定し、右クリック→「コマンド文→クリップボードへコピー」を選択してコマンド文をコピーし、
検索機能の検索語に貼り付けたあとに、
検索で使う「ステータス欄表示 元座標X」以外の部分を削除してから検索を実行する方法もあります。


▲トップへ戻る▲


  
■【デバッグ文の活用例】基本システムにあるデバッグ文の設定

デバッグ文は主に処理が正常に動いているかどうかを確認する時に使います。

例えば以下の表示は、メニュー画面を表示し、アイテムの選択画面から「薬草」を選択し、
ウルファールに使用するまでに表示されたデバッグ文です。



このデバッグウィンドウにある…
>>19001 140 25 (140 5) 0 3 50 -->[コモン96/115行]
>>19000 149 25 (149 5) 2 5 52 -->[コモン96/115行]
の部分は、HPの回復量をピクチャで表示する時のデバッグ文になります。

▼ピクチャ[19000〜19001]で「30」を表示


ピクチャの場合は[F7]を押す事で、ピクチャの表示位置などを確認する事ができますが、
しかし[F7]を押すとイベント処理が止まってしまうなどの問題があるため、
処理を止めずにピクチャの表示設定などを確認する場合は、デバッグ文を使います。



通常の状態ではデバッグ文が表示されない状態になっているデバッグ文も存在します。

例えばコモンイベント[064:X[共]万能ウィンドウ描画処理]403行目にある設定です。

■回数付きループ [ 0 ]回
|■デバッグ文:\cself[10] \cself[11] \cself[12]が\cself[27]以上?
|■
◇ループここまで◇◇

この設定の場合、デバッグ文を表示するためには、ループ回数を「1回」にする必要があります。

デバッグ文の内容としては、万能ウィンドウの縦のスクロールの処理に関するものであり、
ウディタの基本システム作成時に使用していた設定がそのまま残っているものだと思われます。

またコモンイベント[196:X┃┣◆行動可能判定]115行目にある…
▼ 行動指定=\cself[10]
のようにイベントコマンド【コメント】の設定にしておき、
必要な時にイベントコマンド【デバッグ文】に変えて表示するパターンもあります。



処理状態を確認するデバッグ文の他に、
エラーが発生する変数の値になっている時にデバッグ文を表示する設定もあります。

例えばコモンイベント[050:X[共]アイテム増減]13〜24行目にある設定です。

■条件分岐(変数): 【1】 CSelf0[アイテム番号] が 0 未満
-◇分岐: 【1】 [ CSelf0[アイテム番号] が 0 未満 ]の場合↓
|■デバッグ文:【基本システムエラー】\n 異常なアイテムIDが指定されています!\n → \cself[0]
|■イベント処理中断
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf0[アイテム番号] が 9999 超
-◇分岐: 【1】 [ CSelf0[アイテム番号] が 9999 超 ]の場合↓
|■デバッグ文:【基本システムエラー】\n 異常なアイテムIDが指定されています!\n → \cself[0]
|■イベント処理中断
|■
◇分岐終了◇

この設定はアイテム番号(ユーザーDB[2]のデータID)が範囲外の時にデバッグ文で警告するものです。

このようなデバッグ文の設定はあまり行いませんが、例えばコモン素材を作る時に、
コモン素材の利用者にエラー内容を伝えるために、このような設定を行う事があります。


▲トップへ戻る▲


  
■主人公のステータス画面の表示位置の改造について

メニュー画面や戦闘画面では、主人公のステータス画面が表示されます。

メニュー画面 戦闘画面

パーティの1人目はここに表示する」と言ったステータス画面をどこに表示するのかの設定は、
メニュー画面はコモンイベント[091:X[移]キャラクター欄_座標算出]で、
戦闘画面はコモンイベント[174:X[戦]味方欄_座標算出]で行っています。

もしもステータス画面の表示位置を全体的に下へ下げたい時など、表示位置を変えたい時には、
コモンイベント[091:X[移]キャラクター欄_座標算出]や、
コモンイベント[174:X[戦]味方欄_座標算出]を改造してください。



ステータス画面の中にある主人公の名前や顔グラフィック、HPなどのパラメータの表示などは、
メニュー画面はコモンイベント[090:X[移]キャラクター欄描画]で、
戦闘画面はコモンイベント[178:X[戦]味方欄_単体描画]で行っています。

もしも主人公の名前の表示位置や表示サイズなどを変えた時には、
コモンイベント[090:X[移]キャラクター欄描画]
コモンイベント[178:X[戦]味方欄_単体描画]を改造してください。


▲トップへ戻る▲


  
■コモンイベントの改造前にバックアップを残そう!

コモンイベントを改造する場合は、改造するコモンイベントをコピーして、
コモンイベント[215]以降の空いている所に貼り付け、
その貼り付けたコモンイベントを改造した方が良いでしょう。
こうする事で改造前のコモンイベントのバックアップを残す事ができます。

例えばコモンイベント[188:X◆戦闘処理]を改造する場合は、
左側の一覧のコモンイベント[188:X◆戦闘処理]の上で右クリック→[イベントコピー]を実行し、
コモンイベント[215]の上で右クリック→[イベント貼り付け]を実行して複製品を作成し、
改造設定はその複製したコモンイベント[215]の方で行います。



ウディタの基本システムでは、同名のコモンイベントが2つ以上ある場合は、
コモンイベントIDが大きい方のみが実行される
ため、古いコモンイベント[188]の設定が残っている状態でも、
コモンイベントIDが大きいコモンイベント[215]の方のみが実行されます。

万が一改造に失敗した場合は、
コモンイベント[215]を削除するだけで元のコモンイベント[188]の処理に戻ります。

一時的にコモンイベント[188]の処理に戻したい時には、コモンイベント[215]のコモンイベント名を…
X◆戦闘処理a
などと違う名前にする事で、コモンイベント[188]の処理に戻す事ができます。



なお、改造途中の改造品のバックアップを取りたい時には、上記のように改造途中の複製品を作成し、
バックアップのコモンイベント名を変えておけば良いでしょう。

また画面左下のファイル出力でコモンイベントを出力してバックアップを残す方法もあります。



★補足1

コモンイベント[048:X[共]基本システム自動初期化]
コモンイベント[063:X[共]メッセージウィンドウ]
コモンイベント[126:X[移]歩行時_並列キー処理]

この3つのコモンイベントは「並列実行(常時)」で処理されているため、
上記のような複製設定を行ってもコピー元もコピー先も両方とも動いてしまいます。

そのため「並列実行(常時)」で動いているコモンイベントに関しては、
複製品を作成したあとにコピー元のコモンイベントの起動条件を「呼び出しのみ」に変えてください。



★補足2

コモンイベントIDを指定して呼び出している場合は、
複製品の方をバックアップにして、複製元の方を改造した方が良いでしょう。

例えばメニュー画面にある「相談」は、
ユーザーDB[17:システム設定]項目[12:┗特殊メニューA呼出コモン]の設定にて、
コモンイベント[212]を呼び出す設定になっています。

コモンイベント[212]の複製品をコモンイベント[215]に作成し、
コモンイベント[215]の方はそのままにしてコモンイベント[212]を改造した場合は、
ユーザーDB[17:システム設定]の呼び出し設定はそのままで問題ありません。

しかし複製したコモンイベント[215]の方を改造した場合は、
ユーザーDB[17:システム設定]の設定をコモンイベント[215]を呼び出す設定に変える必要があります。



★補足3

データベースの設定(項目設定)を改造する場合も、改造前の状態をバックアップしておいた方が良いでしょう。

バックアップはデータベース画面左下の「ファイルの出力」で出力したり、
別のタイプに複製してタイプ名を変更してバックアップを残す方法があります。

大規模な改造の場合は、作品データ全体のバックアップを残しておいた方が良いでしょう。


▲トップへ戻る▲



◎関連ページ

◆バックアップの残し方

◆「基本システム」って何?
┣◆コモンイベントの一覧と補足説明
┣◆基本システムで使用しているピクチャ番号
┣◆メニュー画面の処理構造
┗◆戦闘処理の処理構造

YADOT-WOLFトップ  気紛れな空間へ戻る  メール