18.コモンイベントの作成

一通りゲームは完成しましたが、まだまだ不足しているものもあります。
ここではゲームの味付けがてらに簡単な「コモンイベント」を作っていこうと思います。

「コモンイベント」というと、ウディタの公式HPをある程度ご覧になった方は、公式HPにある「WOLF RPGエディター コモンイベント集」に登録されているような様々な機能をゲームに追加することができるものというイメージがあると思いますが、ウディタのマニュアルにもあるとおり、「コモンイベント」とはゲーム中のどこからでも呼び出して使用できるイベントになります。

つまりは機能追加といった部分だけではなく、どこからでも呼び出せる汎用性が高いイベントという点がポイントになります。

例えば、城を守っている数人の「兵士」がいた場合にみんな同じ台詞を話し、プレイヤーキャラを突き飛ばすイベントがあったとします。

兵士「ここは○○城だ。許可のない者の立ち入りは禁止だ!」
プレイヤーキャラを突き飛ばす。

このくらいの規模のイベントなら、一人一人の「兵士」に設定していくのはそれほど面倒ではありませんが、こういった同じ処理内容の汎用的なイベントを「コモンイベント」として作成すれば、「兵士」側のイベントではこの「コモンイベント」を呼び出すだけで済みます。(同じマップ内のイベントであれば、「コモンイベント」コマンドでそのイベントを呼び出すことも可能。)

また台詞の変更などが発生した場合も「コモンイベント」側だけ修正すれば、すべての「兵士」のイベントに修正した台詞が反映されますので、メンテナンスが楽です。

同じイベント処理を毎回作成している場合には、汎用性がありメンテナンスが楽な「コモンイベント」として作成した方が効率よく制作を進めていけるわけです。

すでに「コモンイベント」の呼び出しについては、「お店の処理」や「仲間の増減」「戦闘の発生」などで何度か経験して来ましたが、「コモンイベント」については「ゲームーオーバー処理」を1度作っただけでした。
これから、汎用性の高いいくつかのイベント処理を「コモンイベント」として作成していきます。

全回復イベントを作ろう

よくあるRPGですと、宿屋や魔法陣?などでHPなどが全回復するような「回復ポイント」がいくつも用意されています。
こういったイベントは毎回同じ処理を行なっていますので、まさに「コモンイベント」にするのにピッタリなものです。

今回のゲームですと、「回復ポイント」は「村の自宅のベッド」と「森にある泉」の2ヶ所にします。
規模が小さいので、「コモンイベント」の効果の実感は少ないですが、練習にはちょうどいい題材です。

「自宅のベット」と「森にある泉」での回復イベントの進行としては、

  • 「自宅のベット」
    ベッドで眠る旨のメッセージ表示→画面が暗くなる→画面が明るくなる→画面フラッシュ→全回復→回復メッセージ表示
  • 「森にある泉」
    泉の水を飲む旨のメッセージ表示→画面フラッシュ→全回復→回復メッセージ表示

となり、若干違いがあります。
共通する部分は「画面フラッシュ→全回復→回復メッセージ表示」になりますので、この部分を「コモンイベント」として作成していきます。

「コモンイベントエディタ」

さっそく「コモンイベント」を作成していきましょう。

「コモンイベントエディタ」を開きます。
「コモンイベントエディタ」を表示するには、「ツールバーのアイコン」をクリックするか、「上部メニューの「表示」」から「コモンイベント」を選択することで、表示されます。

「コモンイベントエディタ」を開くと、左に「コモンイベント」のリスト、右に「イベントコマンド表示欄」などがあります。

「全回復 コモンイベント」の作成

自作の「コモンイベント」は分かりやすいように今回は「220番」から作っていきますが、何番でも自分の好きなところで構いません。
「データ最大数の変更」で増やすこともできます。

上の名前「コモンイベント」の名称になります。
まずは名前を「全回復」とします。

続けて、「画面フラッシュ→全回復→回復メッセージ表示」という処理を入れていきます。

「画面フラッシュ」「エフェクト」を選択し、「真っ白に」ボタンを押してから、「フラッシュする」にチェック、「処理時間」のフレーム数を設定して完了です。

「全回復」STEP14で作成した「ゲームオーバーイベント」でも使用しましたが、「コモンイベント4:回復・ダメージ処理」を呼び出して使用します。
「ゲームオーバーイベント」でもそうでしたが、「コモンイベント」内で「コモンイベント」を呼び出すことも問題なく出来ます。
イベントの挿入「コモン4:回復・ダメージ処理」処理内容は「完全回復」、誰に?は「パーティー全員」とします。

こちらが今回の「全回復イベント」の全処理です。
起動条件が「呼び出しのみ」になっているのを確認して、下の「OKボタン」を押します。

これで、「画面フラッシュ→全回復→回復メッセージ表示」という処理を行う「コモンイベント」が完成しました。

「自宅のベッドで回復する」イベント作成

今度は「自宅のベッドで回復する」イベントを作成し、上の「コモンイベント」を組み込んでいきます。

村マップに切り替えて、「自宅のベッド」にイベントを配置します。

「ベッド」にむかって「決定キー」が押されたら(話しかけたら)、イベントが実行され、「ベッドで休む」かどうするかの「選択肢」が出て、「休む」を選んだ場合に全回復する「コモンイベント」を呼び出します。

「選択肢」「選択肢ウィンドウ」を表示する前に注意しなければいけないのは、STEP17のタイトル画面の「スタートメニュー」を作成した際に「選択肢ウィンドウ」の表示位置を変更していることです。この表示位置の設定は新たに変更されるまで変わらないため、このままですとタイトル画面の「スタートメニュー」の表示位置だった下の方に今回の「選択肢ウィンドウ」も表示されてしまいます。
「変数操作」にて真ん中より少し上ぐらいに変更してみましょう。

「選択肢」を選択し、「休む」と「休まない」の2つの選択肢を入力します。「キャンセルボタン」が押された場合の処理を「分岐2」の選択肢にするため、左側の「分岐2」ボタンを押します。

「休む」を選んだ場合に全回復する「コモンイベント」を呼び出します。
「コモンイベント」を選択し、イベントの挿入でさきほど作成した「コモン220:全回復」を設定します。

こちらが、「自宅のベッドで回復する」イベントの全処理になります。

テストプレイで確認してみるとこのようになります。

「森にある泉で回復する」イベント作成

今度は「森にある泉で回復する」イベントを作成し、全回復する「コモンイベント」を組み込んでいきます。

森マップに切り替えて、「森にある泉っぽい場所に」にイベントを配置します。

ここは「選択肢」は出さずに、「泉」にむかって「決定キー」が押されたら(話しかけたら)、イベントが実行され、全回復する「コモンイベント」を呼び出します。

こちらが、「森にある泉で回復する」イベントの全処理になります。

「泉」に話しかけられる場所全てから、イベントが実行されるように、イベントの接触範囲拡張を使ったり、イベントの右クリックメニューにある「イベントコピー」「イベント貼り付け」でイベントを複製していきます。
「イベントコピー」「イベント貼り付け」は、イベントを選択して「Cキー」(コピー)、「Vキー」(貼り付け)のキーボード入力でも可能です。

ちょっと見映が良くないですが、このような形で「森にある泉で回復する」イベントが配置できました。

テストプレイで確認してみるとこのようになります。


これで簡単な「コモンイベント」の作り方と使い方が分かってきたと思いますので、次の段階ではまた違うタイプの「コモンイベント」を作っていきます。

お宝イベントを作ろう

※本サイトの趣旨からすると、少し難易度が高めの内容になっております。多少熟練してきてからご覧になっていただくのが、良いかもしれません。あらかじめご了承ください。
あまり複雑にならない「アイテム入手イベント」の作成を用意させていただきました。

ツボを調べると・宝箱を開けると、アイテムを発見入手! これも色々なところでよく使うイベントになりますので、「コモンイベント」にするのに最適です。

「ツボを調べる」と「宝箱を開ける」でのアイテム入手イベントの進行としては、

  • 「ツボを調べる」
    所持アイテム数を確認→
     ・アイテムが持てる場合→アイテム入手メッセージ表示→アイテム入手→その場所でアイテム入手済みのフラグを立てる
     ・アイテムが持てない場合→アイテム入手不可メッセージ表示
  • 「宝箱を開ける」
    宝箱が開く動作→所持アイテム数を確認→
     アイテムが持てる場合→アイテム入手メッセージ表示→アイテム入手→その場所でアイテム入手済みのフラグを立てる
     アイテムが持てない場合→アイテム入手不可メッセージ表示→宝箱が閉じる動作

となり、若干違いがあります。宝箱が開閉する部分以外は同じになりますので、
「所持アイテム数を確認→
 ・アイテムが持てる場合
   →アイテム入手メッセージ表示→アイテム入手
 ・アイテムが持てない場合
   →アイテム入手不可メッセージ表示」
「コモンイベント」として作成していきます。

「→その場所でアイテム入手済みのフラグを立てる」は、今回はコモンイベントを呼び出すツボや宝箱のイベントが持っているセルフ変数で管理することにしますので、コモンイベントの内容には含めません。

「お宝ゲット コモンイベント」の設計

今回の「コモンイベント」は割と複雑な処理が予想され、難易度が高くなりそうですので、あらかじめ処理の内容をきちんと考えてから、挑んでいきたいと思います。
「プログラマー」がプログラムを作成する前に「フローチャート」を作るように少し慎重に進めていきます。

まずは処理内容の確認をしていきます

「お宝ゲット コモンイベント」の流れ

所持アイテム数の確認

▼ 分岐

アイテムが持てる場合

アイテム入手メッセージ表示

アイテム入手

アイテムが持てない場合

アイテム入手不可メッセージ表示

▼「所持アイテム数の確認」
「入手させるアイテム」が、パーティーに所持させることができる所持数の上限になっているかいないか確認します。

ウディタの「基本システム」では、所持できる「アイテムの種類」の数に制限はないようです。
ただし、「アイテムの種類」ごとには「ユーザーデータベース システム設定」「アイテムの最大所持数」で設定された上限が適用されます。

具体的には、「下級キズ薬」「中級キズ薬」「上級キズ薬」・・・と「アイテムの種類」に関してはいくつでも所持することが出来ますが、その「アイテムの種類」一つ一つに関しては「下級キズ薬」99コまで、「中級キズ薬」99コまで・・・という制限があります。
※所持できる「アイテムの種類」の上限は設定できません。

デフォルトの「アイテムの最大所持数」は「99」と設定されていますので、今回はこのままで進めていきます。

というわけで、「所持アイテム数の確認」の処理は「入手させるアイテム」の所持数が「99未満(0~98)」かどうかチェックする内容にしていけばいいわけです。

また、お金を入手させる場合は「所持金の上限(999,999)」「入手させる金額」をチェックすることになります。

「999,999」はウディタで扱うことができる数値の上限でもあります。

「入手させるアイテム」「入手させる金額」の情報が必要になります。


次は「アイテムが持てる場合」「アイテムが持てない場合」で処理が分岐します。
「アイテムが持てる場合」の処理から見ていきます。

▼「アイテム入手メッセージ表示」→「アイテム入手」(「アイテムが持てる場合」)
「入手させるアイテム」をパーティーの所持品に加え、メッセージを表示します。
これは、「基本システム」で用意されている「コモンイベント0:アイテム増減」「コモンイベント1:武器増減」「コモンイベント2:防具増減」「コモンイベント3:お金の増減」 を使用して行ないます。

「入手させるアイテム」「入手させる金額」の情報が必要になります。


「アイテムが持てない場合」の処理を見ていきます。

▼「アイテム入手不可メッセージ表示」(「アイテムが持てない場合」)
単純に「文章表示」で「○○はこれ以上持てない」というかんじのメッセージを表示します。
お金の場合は「お金はこれ以上持てない」というかんじにします。

「入手させるアイテム」「入手させる金額」(お金かどうか)の情報が必要になります。


これで大体処理の内容と流れがつかめました。

「お宝ゲット コモンイベント」に対して、「入手させるアイテム」「入手させる金額」の情報を与えることで、各処理が実行されていきます。

「お宝ゲット コモンイベント」の設定

「コモンイベントエディタ」を開き、「221番」に「お宝ゲット」という名前「コモンイベント」を作っていきます。

今回のお宝ゲット「コモンイベント」は最初に作った全回復する「コモンイベント」のようにイベントの挿入で呼び出すだけの単純なものではありません。

下の画像の「回復・ダメージ処理」の「コモンイベント」や「戦闘発生」、「お店」、「仲間増減」の「コモンイベント」のように「コモンイベント」を呼び出してから、いくつか項目を設定する必要があるものになります。
下の画像でいうところの「処理内容」、「誰に?」、「何ポイント?」といった部分です。

お宝ゲット「コモンイベント」で設定する必要がある項目は、「お宝ゲット コモンイベント」の設計 の最後に記載したとおり、「入手させるアイテム」「入手させる金額」となります。

お宝ゲット「コモンイベント」に設定項目「入手させるアイテム」「入手させる金額」を追加していきます。

設定項目を追加するには「コモンイベントエディタ」のコモンイベントの名前の下にある「設定ボタン」を押します。

「入力内容の設定」画面が表示されます。

今回は「入手させるアイテム」、つまりはデータベースに登録されているアイテム番号・アイテム名を見ながら選択できるようにしていきます。

  • 「入力する値の意味」数値1を「入手アイテム」、初期値を「0」にします。
    これは「コモンイベント」を呼び出した際に設定項目名として表示される文章と、設定項目のデフォルトの値になります。
  • 「特殊設定」データベース参照をチェックして、「ユーザーデータベース」「タイプ2番」(アイテム設定)とします。
    こうすることで、設定項目に値を入力する際に「ユーザーデータベース」にある「アイテム設定」の内容(アイテム名)をプルダウンメニューで参照しながら選択することができます。
    この「特殊設定」入力する値の数値1~4ごとに設定することが出来ます。

設定ができたら、「OK」ボタンを押します。

「コモンイベントエディタ」の右下の「OKボタン」「更新ボタン」も忘れずに押しましょう。

うまく設定できたかどうか、適当なイベントやコモンイベントからこの「コモンイベント」を呼び出してみましょう。

無事に「ユーザーデータベース」「アイテム設定」にあるアイテム名で値を入力できるようになっています。
ですが、問題が……武器や防具が設定できません。これは参照する「ユーザーデータベース」の場所が「アイテム」「武具」「防具」と分かれているからです。

というわけで、「アイテム」「武具」「防具」「金額」の4つが設定できるように「コモンイベント」を修正していきます。
コモンイベントエディタで「設定」ボタンを押します。

「入力内容の設定」画面にて。

  • 「入力する値の意味」
    • 数値1を「入手アイテム」、初期値を「-1」にします。
      前回は「0」でした。「0」だと何かしらアイテム名が設定されている状態になりますので、「-1」にして何もアイテム名が設定されていないという状態にします。
      「アイテム」「武具」「防具」と項目を追加することになるため、デフォルトですべての項目が「0」になっていると、「武具」の項目だけ値を入力したい場合に、「アイテム」と「防具」の値を手動でアイテム名が設定されていない状態「-1」にする必要がありますので、利便性を考え、デフォルト値を「-1」としました。
    • 数値2を「入手武器」、初期値を「-1」にします。
    • 数値3を「入手防具」、初期値を「-1」にします。
    • 数値4を「入手金額」、初期値を「0」にします。
      金額はデータベースを参照しませんので、「0」ならそのまま入手金額0(ない)ということになります。
  • 「特殊設定」
    「入力[数値1]」「入力[数値2]」「入力[数値3]」ボタンが並んでいます。
    それぞれ、「入力[数値1]」が「入手アイテム」、「入力[数値2]」が「入手武器」、「入力[数値3]」が「入手防具」と対応していますので、対応したボタンを押してから設定していきましょう。
    「入力[数値4]」の「入手金額」は何も設定する必要はありません。
    • 「入力[数値1]」データベース参照をチェックして、「ユーザーデータベース」「タイプ2番」(アイテム設定)とします。
      「-1」~「-3」の項目を追加するをチェックして、それぞれ「なし」と入力します。
    • 「入力[数値2]」データベース参照をチェックして、「ユーザーデータベース」「タイプ3番」(武具設定)とします。
      「-1」~「-3」の項目を追加するをチェックして、それぞれ「なし」と入力します。
    • 「入力[数値3]」データベース参照をチェックして、「ユーザーデータベース」「タイプ4番」(防具設定)とします。
      「-1」~「-3」の項目を追加するをチェックして、それぞれ「なし」と入力します。

設定ができたら、「OK」ボタンを押します。

「コモンイベントエディタ」の右下の「OKボタン」「更新ボタン」も忘れずに押しましょう。

確認のため、また「コモンイベント」を呼び出してみます。

問題なく「入手アイテム」では「アイテム名」、「入手武器」では「武器名」、「入手防具」では「防具名」が値として、参照できるようになりました。

少し手間がかかってしまいましたが、お宝ゲット「コモンイベント」の初期設定が完了しました。

実はまだ不足している設定がありますが、のちほど説明します。

「お宝ゲット コモンイベント」の処理作成

コモンイベントエディタに戻り、これからコモンイベント内で処理を構築していきます。

コモンセルフ変数の確認

まずは、「お宝ゲット コモンイベント」の設定で行った設定項目がこの「コモンイベント」内でのみ使用できる「コモンセルフ変数」に自動的に代入されていることを確認します。

コモンイベントエディタの右上にある「セルフ変数使用状況」を押します。

コモンイベントの設定項目名が「コモンセルフ変数名」となっているのが確認できます。
マップイベントのセルフ変数は名前を付けられませんが、コモンイベントの「コモンセルフ変数」にはこのように名前が付けられます。

  • 「コモンセルフ変数0」には「入手アイテム番号」
  • 「コモンセルフ変数1」には「入手武具番号」
  • 「コモンセルフ変数2」には「入手防具番号」
  • 「コモンセルフ変数3」には「入手金額」

これらの「コモンセルフ変数」を使って、各処理を実行していきます。

入手される物の判定

「入手される物」が「アイテム」なのか「武器」なのか「防具」なのか「お金」なのかを判断していきます。
この処理は「条件(変数)」コマンドを使います。
下記のような4つの条件に分岐していきます。

  • 「コモンセルフ変数0」に何かしら「入手アイテム番号」が代入されている場合。
    「-1」の場合は「なし」のためスルー。
  • 「コモンセルフ変数1」に何かしら「入手武具番号」が代入されている場合。
    「-1」の場合は「なし」のためスルー。
  • 「コモンセルフ変数2」に何かしら「防具番号」が代入されている場合。
    「-1」の場合は「なし」のためスルー。
  • 上記の条件に当てはまらなかった場合。
    「お金」の可能性がありますが、何も「入手物」が設定されていないということも考えられますので、もう一度「条件(変数)」コマンドで判定します。

「条件(変数)」を選択し、

  • 「3変数を連動」のチェックを外します。
    3つ設定できる条件判定でそれぞれ別々の変数を指定することができるようになります。
  • 「コモンセルフ変数0」(入手アイテム番号)が「0 以上」の場合。
  • 「コモンセルフ変数1」(入手武具番号)が「0 以上」の場合。
  • 「コモンセルフ変数2」(入手防具番号)が「0 以上」の場合。
  • 「「上記以外の場合」を作成」をチェックします。
    「お金」か「なにも入手物が設定されていないエラー」。

続いて、分岐ごとに処理を見ていきます。
取り扱うデータが少し違うだけで、基本的な処理内容はすべて同じになっています。

「入手される物」が「アイテム」の場合

「コモンセルフ変数0」(入手アイテム番号)のアイテムをパーティーがいくつ持っているか調べます。
「DB(データベース)操作」を選択し、「パーティーの所持アイテム」が格納されている「可変データベース 7:所持アイテム個数」からアイテムの「所持個数」を呼び出して、「コモンセルフ変数4」に代入します。

  • 「可変DB」ボタンを押します。
    • DBタイプ番号は「名前」をチェックして、「所持アイテム個数」を選択します。
    • データ番号は「変数」をチェックして、「コモンセルフ変数0」を選択します。
      「コモンセルフ変数0」には「入手させるアイテム番号」が入っており、「可変データベース 7:所持アイテム個数」にある「データ(アイテム)番号」と対応しています。
    • 項目番号は「名前」をチェックして、「所持個数」を選択します。
  • 「変数に代入」ボタンを押します。
  • 「数値または代入先」をチェックして、「変数/文字列」ボタンを押し、「このコモンセルフ変数4」を選択します。
    「このコモンセルフ変数4」「アイテムの所持個数」取得用に新たに使用します。

「入力ボタン」を押します。

今度は「アイテムの所持個数」を格納した「このコモンセルフ変数4」を使って、アイテムの「最大所持個数 99」(今回の設定上の制限)よりも「アイテムの所持個数」が少ない(「アイテムが持てる」)か、それ以外(「アイテムが持てない」)かを調べ、分岐させます。

「条件(変数)」を選択し、

  • 「コモンセルフ変数4」(アイテムの所持個数)が「99 未満」の場合。
    「アイテムが持てる」場合。
  • 「「上記以外の場合」を作成」をチェックします。
    「アイテムが持てない」場合。

「入力ボタン」を押します。
これで「所持アイテム数の確認」ができました。

「アイテムが持てる」場合と「アイテムが持てない」場合の処理に分岐しました。
まずは、「アイテムが持てる」場合の処理から見ていきます。

「アイテム入手メッセージ表示」「アイテム入手」の処理をします。
「コモンイベント」を選択して、「コモンイベント0:アイテム増減」を呼び出します。

  • アイテム番号は右のボックスをチェックして「1600000」。
    「1600000」、これは「コモンセルフ変数0」(入手アイテム番号)と同じになります。
    詳しくは「変数呼び出し値 イベント/コモンイベントのセルフ変数」を参照してください。
    変数呼び出し地はなかなか覚えるまでに時間がかかりますが、入力中に下部に内容「1600000 = このコモンEvセルフ0<入手アイテム>」が表示されます。
  • 増減数は「1」。
  • 入手メッセージは「あり「個数無し」」。

「入力」ボタンを押します。

続いて、コモンイベント上でアイテムが入手された「フラグを立てる」処理になります。

あらたに「コモンセルフ変数10」を使用するため、変数名をつけることにします。コモンイベントエディタの右上「セルフ変数使用状況」を押します。

まずは、先程「アイテムの所持個数」を格納していた「コモンセルフ変数4」に「所持数」という名前を付けておきます。

グレーにしてある「コモンセルフ変数5~6」はコモンセルフ変数の中で文字列を扱えるものになります。他は数値のみです。
今回はこちらは使いませんので、飛ばして、「コモンセルフ変数10」に「入手判定」という名前を付けます。

イベントの編集に戻り、「変数操作」を選択します。

  • 代入先「コモンセルフ変数10:入手判定」
  • 代入演算子を「=」。
  • 「右辺」は「1」。

「入力ボタン」を押します。


「アイテムが持てない」場合の処理を見ていきます。

「アイテム入手不可メッセージ表示」をします。
「文章の表示」を選択し、「入力エリア」に「「\udb[2:\cself[0]:0]」はもう持てない。」と記述します。
「\udb[2:\cself[0]:0]」は「ユーザーデータベース タイプ2番:データ番号「コモンセルフ変数0」(入手アイテム番号):0」を参照した値を表示するという表記になります。参照した値は「アイテム名」です。
詳しくは「特殊文字 数値・文字列代入」を参照してください。
「入力ボタン」を押します。

「変数操作」を選択し、アイテムが入手できなかった場合も入手判定の変数に値を代入しておきます。。

  • 代入先「コモンセルフ変数10:入手判定」
  • 代入演算子を「=」。
  • 「右辺」は「0」。

「入力ボタン」を押します。

以上でアイテム入手の処理は完成です。
こちらの赤枠部分がアイテム入手の処理内容です。

「入手される物」が「武器」の場合

「武器」「防具」の入手処理は「アイテム」とほぼ同じで一部修正するだけですので、コマンド文をコピー&ペーストして修正する部分のみ見ていきましょう。

「Shiftキー」を押しながら範囲選択し、「コピー」もしくは「Cキー」を押します。

「武器」と「防具」の入所処理部分にそれぞれ「貼り付け(ペースト)」もしくは「Vキー」を押します。

修正箇所は3箇所です。

1つ目は「DB読込(可変)」となっているコマンド文で以下のように修正し、「可変データベース 8:所持武器個数」から武器の「所持個数」を呼び出して、「コモンセルフ変数4:所持数」に代入します。

  • DBタイプ番号を「所持武器個数」にします。
  • データ番号は「コモンセルフ変数1:入手武器」を選択します。

2つ目は武器が入手可能な場合の「コモンイベント」部分で、「コモンイベント1:武器増減」に変更します。

  • アイテム番号は右のボックスをチェックして「1600001」。
    「1600001」、これは「コモンセルフ変数1」(入手武器番号)と同じになります。
  • 増減数は「1」。
  • 入手メッセージは「あり「個数無し」」。

3つ目は武器が入手できない場合の「アイテム入手不可メッセージ表示」部分になります。
「入力エリア」に「「\udb[3:\cself[1]:0]」はもう持てない。」と変更します。
「\udb[3:\cself[1]:0]」は「ユーザーデータベース タイプ3番:データ番号「コモンセルフ変数1」(入手武器番号):0」を参照した値を表示するという表記になります。参照した値は「武器名」です。

以上で武器入手の処理は完成です。

「入手される物」が「防具」の場合

「防具」も「武器」と同じ様に3箇所だけ修正します。

「DB読込(可変)」となっているコマンド文で以下のように修正し、「可変データベース 9:所持防具個数」から防具の「所持個数」を呼び出して、「コモンセルフ変数4:所持数」に代入します。

  • DBタイプ番号を「所持防具個数」にします。
  • データ番号は「コモンセルフ変数2:入手防具」を選択します。

次に防具が入手可能な場合の「コモンイベント」部分で、「コモンイベント2:防具増減」に変更します。

  • アイテム番号は右のボックスをチェックして「1600002」。
    「1600002」、これは「コモンセルフ変数2」(入手防具番号)と同じになります。
  • 増減数は「1」。
  • 入手メッセージは「あり「個数無し」」。

3つ目は武器が入手できない場合の「アイテム入手不可メッセージ表示」部分になります。
「入力エリア」に「「\udb[4:\cself[2]:0]」はもう持てない。」と変更します。
「\udb[4:\cself[2]:0]」は「ユーザーデータベース タイプ4番:データ番号「コモンセルフ変数2」(入手防具番号):0」を参照した値を表示するという表記になります。参照した値は「防具名」です。

以上で防具入手の処理は完成です。


ここまで、「アイテム」「武器」「防具」の入手処理はこちらのようになっています。

「入手される物」が「お金」の場合

「お金入手」の場合は、まずは最初の分岐の「上記以外」の処理で「お金入手」か「何も入手される物が設定されていない」かを判定します。

「条件(変数)」を選択し、

  • 「コモンセルフ変数3:入手金額」が「0 より大きい」場合。
    「入手金額」が設定されている場合。
  • 「「上記以外の場合」を作成」をチェックします。
    「何も入手される物が設定されていない」場合。

「お金入手」の処理も「アイテム」などと同じ様にデータベース上の所持金を調べるところから始めます。

「DB(データベース)操作」を選択し、「パーティーの所持金」が格納されている「可変データベース 6:パーティー情報」から「所持金」を呼び出して、「コモンセルフ変数4:所持数」に代入します。

  • 「可変DB」ボタンを押します。
    • DBタイプ番号は「名前」をチェックして、「パーティー情報」を選択します。
    • データ番号は「名前」をチェックして、「メイン設定」を選択します。
    • 項目番号は「名前」をチェックして、「所持金」を選択します。
  • 「変数に代入」ボタンを押します。
  • 「数値または代入先」をチェックして、「変数/文字列」ボタンを押し、「このコモンセルフ変数4:所持数」を選択します。

「パーティーの所持金」「コモンセルフ変数4:所持数」に代入されたので、「所持金の上限 999,999」から「コモンセルフ変数4:所持数」(パーティーの所持金)を引いて、「残り所持可能な金額」を取得します。

あらたに「コモンセルフ変数11」を使って、「残り初期可能な金額」を取得します。

先に変数名をつけたいのですが、コモンイベントエディタの右上の「セルフ変数使用状況」からでなくとも、セルフ変数名をつけることができます。
「変数操作」を選択し、中央下にある「変数名の設定」「コモンセルフ変数11」を選択し「変数名」に名前を入力し、「名前をつける」を押します。

このまま「変数操作」の処理を入力し、「コモンセルフ変数11:所持可能金額」「所持金の上限 999999」「コモンセルフ変数4:所持数(所持金)」を代入します。

「所持可能金額」がわかったので、「入手金額」と比較して、これ以上お金が持てるか判定します。

「条件(変数)」を選択し、

  • 「コモンセルフ変数3:入手金額」が「コモンセルフ変数11:所持可能金額」以下の場合。
    お金が持てる場合。
  • 「「上記以外の場合」を作成」にチェック。
    お金が持てない場合。

まずは、お金が持てる場合。

「コモンイベント」を選択し、「コモンイベント3:お金の増減」とします。

  • お金の増減値は「1600003」。
    「1600003」は「コモンセルフ変数3」(入手金額)と同じになります。
  • 入手メッセージは「あり」。

「変数操作」を選択し、「コモンセルフ変数10:入手判定」に「1」を代入します。

お金が持てない場合は、「文章の表示」で下記のようなメッセージを表示します。

「変数操作」を選択し、「コモンセルフ変数10:入手判定」に「0」を代入します。

以上でお金入手の処理は完成です。
お金入手の処理は下記のようになります。

「入手される物」が「なにも設定されていない(エラー)」の場合

お金入手の分岐と際に作成した「上記以外」の処理に、「なにも入手物が設定されていない(エラー)」場合の処理を作っていきます。

「文章の表示」でエラーメッセージを入力します。

「変数操作」を選択し、「コモンセルフ変数10:入手判定」に「0」を代入します。

「なにも入手物が設定されていない(エラー)」場合の処理はこの2つだけで完成です。

コモンイベント「お宝ゲット」の完成

こちらが「お宝ゲット」のすべての処理になります。
もっと省略できる部分もあるのですが、わかりやすくまとまっている方があとから見た時になんの処理をしているのがすぐにわかるので、なるべくシンプルに作るのが良いかと思います。
また「コメント文」なども活用して見やすくなるように意識しましょう。

最後にもう1つ設定をコモンイベントエディタ上部の「設定ボタン」を押し、このコモンイベントを呼び出したマップイベントや別のコモンイベントに、アイテムなどが入手できたかどうか結果を渡せるようにします。

「結果を返す」をチェックし、「名前」を入力、「返す値」を「コモンセルフ変数10:入手判定」とします。

作ったコモンイベントの保存を忘れないよう、「OKボタン」「更新ボタン」を押します。

「変数呼び出し値」など多少複雑な内容もありましたが、なんとか今回の「コモンイベント」が完成しました。
なかなか理解しにくいかもしれませんが、部分部分で見ていくと何かに役立つ内容があると思いますので、だんだん把握できるよう、少しずつ馴れていきましょう。

「宝箱でお宝ゲット」イベント作成

上の「コモンイベント」を組み込んで「宝箱でお宝をゲットする」イベントを作成していきます。

「宝箱」は森に何個か配置する予定です。
ここでは、説明用に1箇所だけ作っていきます。

森マップに切り替えて、適当な場所にイベントを配置します。

名前を「宝箱1」にして、「宝箱」の画像を設定します。

  • 影グラフィック番号は「装飾・影なし」
  • 起動条件は「セルフ変数0 が 0 と同じ」。
    この場所の入手物が入手されていない時。

グラフィックはタイルセットの画像から使用します。
宝箱が閉じているチップがあるので、それを選択します。

続けて、アイテム入手済みの時の開けられた「宝箱」の設定もしておきます。
右上の「コピー」&「ペースト」で「ページ1」を複製した「ページ2」を作ります。
「ページ2」に切り替えて、開いた「宝箱」の画像を設定します。

  • 起動条件は「セルフ変数0 が 1 と同じ」。
    この場所の入手物が入手済みの時。

グラフィックはページ1と同じくタイルセットの画像から使用します。
宝箱が開いているチップがあるので、それを選択します。

「ページ1」に切り替えて、「イベントコマンド」を1つだけ追加します。

「コモンイベント」から「コモン221:お宝ゲット」を選択し、「入手武器」を硬い木の棒として、「結果【入手結果】」をこのEvSelf0に代入とします。

これで、宝箱を調べると「硬い木の棒」が入手できるイベントとなっているはずです。

「テストプレイ」で動作を確認します。

宝箱が開くタイミングをもう少しどうにかしたいところですが、「宝箱でお宝ゲット」イベントは無事完成しました。

「ツボでお宝ゲット」イベント作成

今度は「ツボでお宝をゲットする」イベントを作成していきます。

お宝入りの「ツボ」は村に何個か配置する予定です。「ツボ」だけじゃないかもしれません。
ここでは、説明用に1箇所だけ作っていきます。

村マップに切り替えて、「ツボ」がある場所にイベントを配置します。
宝箱のときと同じ様にイベントのグラフィックをタイルセットから選択してもOKです。

名前を「ツボ1」にします。

  • 起動条件は「セルフ変数0 が 0 と同じ」。
    この場所の入手物が入手されていない時。
    入手されたら、このイベントは消えます。

「コモンイベント」から「コモン221:お宝ゲット」を選択し、「入手アイテム」を下級キズ薬として、「結果【入手結果】」をこのEvSelf0に代入とします。

「ツボでお宝ゲット」イベントの全処理も1行のみです。
頑張ってコモンイベントを作っておくと一連の処理がこのように簡略化できて、その後のイベント作成がたいへん楽になります。

テストプレイ」で動作を確認します。

「ツボでお宝ゲット」イベントもあっさりと完成しました。

「お宝ゲット」コモンイベント使用上の注意

今回作成した「コモンイベント221:お宝ゲット」は仕様上、アイテム・武器・防具・お金を同時に入手設定することが出来ますが、複数入手設定されていたとしても入手されるのはアイテム>武器>防具>お金の順番になります。

1種類のものを1つしか入手できません。お金の場合は金額は自由。

アイテム・武器・防具・お金の複数やそれぞれを1コ以上入手させたい場合には、基本システムに元々ある「コモンイベント0:アイテム増減」~「コモンイベント4:お金の増減」を組み合わせて使用してください。

「お宝ゲット」に組み込めないこともないのですが、さらに複雑な処理になるためここまでとさせていただきます。

コモンイベントの学習

このサイトでの「コモンイベント」の説明はこのくらいになります。

より高度な「コモンイベント」の作成については他のサイトや、ウディタの公式HPにある「WOLF RPGエディター コモンイベント集」に登録されているものや、よく使われる簡単なコモンイベントの作成方法が記載されている「WOLF RPGエディターWiki サンプル用コモンイベント」などを参考に学習してみましょう。

続いて、「STEP19 デバッグ&調整」に進みましょう。

コメント(匿名投稿OK、メールアドレスとWEBサイトも任意です)