やさしいウディタ講座17:現在の所持金を取得する方法をイベントで活用

無料のゲーム開発ツール「ウディタ(WOLF RPGエディター)」の基本的な使い方を、初心者さん向けに紹介するこの企画。

前回「やさしいウディタ講座16:お金を増やす・減らすイベントの作り方」では、コモンイベント「お金の増減」を使ったやり方を解説しました。

今回は、ゲームプレイ中に操作キャラが持っている「現在のお金」をデータとして取得し、そのデータを活用するイベントを作ってみます。

「やさしいウディタ講座」- もくじ
現在公開中の講座をまとめたページ。「ウディタのことがよくわからない」「簡単な機能から覚えたい」などの初心者さんは、初期の講座から読むのがおすすめです。
>>WOLF RPGエディター|公式サイト
公式サイトにはウディタの使い方を詳しく解説している、マニュアルやガイドが公開されています。ウディタを学ぶ際の必須となる教科書です。ぜひ参考にしましょう。

コモンイベント「所持金取得」が使える!

マップイベントを調べると「所持金が増える」、もしくは「所持金が減る」やり方について前回講座で紹介しましたが、所持金を変化させるだけで終わりの単純な内容に過ぎませんでした。

これをもう少しひねってみて、

「今の所持金が100ゴールド以上なら、お金を入手できない」

上のような、お金に関する少し複雑なイベントを作りたいと思ったとします。この場合、どうすれば良いのでしょう。

現在の所持金はいくらなのか?というデータを取得すれば、できそうな気がしますね。

…実はとても簡単にできる方法を、ウディタ制作者さんが用意してくれているんです。

コモンイベント「所持金取得」が、正にそれ

ウディタの「サンプルゲームのData」もしくは「空データ基本システム入りData」に入っているコモンイベントです。

ということで、このコモンイベント「所持金取得」を利用したイベントを作ってみましょう!

スポンサーリンク

「所持金取得」を活用したイベントを作る準備

今回使うマップイベントとして、前回の講座16で作った「タンス」と「ツボ」を使いまわしてみます。

作り方は前回の「やさしいウディタ講座16:お金を増やす・減らすイベントの作り方」を参考にしてください。

前回講座を読むのが面倒な人、ある程度ウディタの操作に慣れている人は、以下の画像を参考にマップイベントを用意しても大丈夫です。

ウディタ タンスとツボ※マップに「タンス」と「ツボ」のマップチップを配置。

ウディタ マップイベント※「タンス」と「ツボ」の上に、マップイベントを作る。

ウディタ マップイベント画面 タンス

 

ウディタ コモンイベント「お金の増減」 コマンド

※マップイベント「タンス」の設定&コマンド欄。

ウディタ コモンイベント「お金の増減」 コマンド※マップイベント「ツボ」のコマンド欄。設定内容は「タンス」と同じ。

簡単な内容なので、すぐに作れるはず。準備ができたら下へ進みましょう。

所持金が一定以上ならばお金が増えないイベントを作ってみよう

タンスのイベントにコモンイベント「所持金取得」を追加する

タンス」を調べると、お金が「80」増える。

上のようなマップイベントを前回講座16で作りました。

タンスを調べるごとにお金がガンガン増える、そんなイベント内容です。

しかし、調べるだけでお金が増え続けるというのも、ゲームとしての面白みに欠けるような気がします。どこかで制限するのが良さそうですね。

ということで…

現在の所持金が200ゴールド以上なら、お金は増えない

上のようなイベント内容に変えてみましょう。現在の所持金を取得するコモンイベント「所持金取得」の出番です!

マップイベント「タンス」のイベント画面を開き、コマンド入力の作業をはじめます。

コマンド欄の最上段の行にカーソルを合わせたら、イベント入力ウィンドウ表示ボタンをクリック(コモンイベント「お金の増減」が最上段にある場合、そのコマンドを選択状態にして、コマンド入力ウィンドウ表示ボタンを押しても大丈夫です)。

ウディタ コマンド入力ウィンドウ表示

I コモンイベント」を選択。

ウディタ イベントコマンド I コモンイベント

「I コモンイベント」の画面右側で細かな設定をします。「イベントの挿入」をチェック状態にし、プルダウンメニューから「コモン20:▲所持金取得」を選択。

ウディタ イベントコマンド コモン20所持金取得

続いて、画面の下の方にある「→結果【所持金】」の部分に注目してください。

イベントコマンド コモン20所持金取得 結果所持金

このコモンイベントを使うと、まず現在の所持金を取得し、その取得データ(現在の所持金)変数に代入されます。

変数の基本については「やさしいウディタ講座5:変数を使ってイベントを変化させよう」を参考にどうぞ。

仮に「現在の所持金が1000ゴールド」であるなら、

1000を取得

1000を変数に代入

変数の中身は1000

上の全ての作業を、コモンイベント「所持金取得」が一気にやってくれるんです。

となると、代入先の「変数」が必要ですね

今回はマップイベント「タンス」が持っている「セルフ変数0番」を利用してみましょうか。

→結果【所持金】」のところにあるプルダウンメニューを開いて、「このEv:Self0」を指定します。

ウディタ コモン20所持金取得 結果所持金でセルフ変数0に代入

セルフ変数の他、通常変数や予備変数にも代入可能です。

作業が終わったら入力ボタンをクリック。

ウディタ コマンド 所持金取得

コマンド欄に、コモンイベント「所持金取得」が入力されていれば大丈夫です。

条件分岐でイベント内容を振り分ける

  • 「所持金が200ゴールド以上」ならお金を増やさない
  • 「それ以外」なら80ゴールド増やす

上の2つのルールで、条件分岐コマンドを作りましょう。

条件分岐の基本的な使い方については「やさしいウディタ講座10:条件分岐の基本!イベント内容を振り分ける」を参考にどうぞ。

コモンイベント「所持金取得」のすぐ下に、条件分岐のコマンドを入れます。「7 条件分岐(変数)」のコマンド画面で作業開始。

ウディタ 条件分岐(変数)

現在の所持金のデータは、タンスのセルフ変数0に入っています。なので、「(タンスの)セルフ変数0が200以上」という条件を1つ目として決定。

2つ目は「(タンスの)セルフ変数0が200未満」の場合ですね。2パターンの条件しか存在しないイベントなので、200未満の場合は「上記以外の場合」の条件分岐で済ませても良さそうです(チェックを入れると使えます)。

コマンド欄は以下のとおり。

ウディタ コマンド 条件分岐

条件分岐のコマンドが違う位置にある場合、コピーや切り取り、貼り付けを駆使して並び替えれば大丈夫です。右クリックで表示されるメニューからできます。

次に、分岐後のコマンドを入力しましょう。

セルフ変数0(現在の所持金)が200以上」なら、お金を増やしません。なので、コモンイベント「お金の増減」は不要。文章の表示コマンドで適当なものを作り、プレイヤーがすぐに理解できる内容にしておきます。

ウディタ 文章の表示

一方、それ以外の条件、つまり「所持金が200未満の場合」ですが、こちらにはコモンイベント「お金の増減」を入力。お金の増減値を「80」に、入手メッセージを「1:あり」にします。

ウディタ コモン3お金の増減

前回講座「やさしいウディタ講座16:お金を増やす・減らすイベントの作り方」で作った、お金の増減コマンドが残っている場合、そのコマンドを切り取って条件分岐「上記以外」の空白行に貼り付けてください。

ウディタ コマンド

できたらセーブ。内容を保存します。

テストプレイで確認

テストプレイでタンスを調べてみましょう!

テストプレイのために主人公キャラの初期位置をこのマップにする場合、「やさしいウディタ講座2:人を配置・看板を調べるイベントの作り方 – 主人公キャラを自作マップ上で操作できるようにする」を参考に、作業してみてください。

ゲーム画面でキーボードのXキーを押し、メニュー画面をチェック。何もしてないので、所持金は0ゴールドです。

ウディタ 所持金 0ゴールド

タンスを決定キー(Enter)で調べてみましょう。「80ゴールドを手に入れた。」の文章が出ます。

ウディタ ゲーム画面

何度も調べると、1回ごとに所持金が80ゴールド増えます

ウディタ 所持金 80ゴールド

ウディタ 所持金 160ゴールド

所持金が240ゴールドに達したとき、タンスを調べると、違うメッセージが表示されました!

ウディタ ゲーム画面

メニュー画面をチェックすると、240ゴールドのまま。お金が増えていません

ウディタ 所持金 240ゴールド

「セルフ変数0が200以上の場合」の条件分岐が発動したからです。

コモンイベント「所持金取得」のコマンドによって、きちんとセルフ変数0に現在の所持金を代入しているのがわかる結果でした。

所持金取得を利用してイベントの不自然な部分を修正する

所持金が50より少ないのに「50ゴールドを失う」?

次に前回講座16で作った、お金を減らすマップイベント「ツボ」を使いまわしてみましょう。

イベントの内容は以下のようなものでした。

ツボ」を調べると、50ゴールド失う

ところでこのツボのイベント、おかしな部分があります

所持金が50ゴールド未満でも「50ゴールドを失った」と文章に出てしまうんですね。(30ゴールドしか持ってないのに、50ゴールド失うみたいな感じ)

コモンイベント「お金の増減」で、実行するたびに「所持金を50減らす」&「入手メッセージありの設定にしている」のが原因。

ウディタ イベントコマンド コモン3お金の増減

おかしな部分を、コモンイベント「所持金取得」条件分岐コマンドを使って直します。自然なイベントに見えるよう、工夫してみましょう。

ツボのイベントにコモンイベント「所持金取得」を追加する

マップイベント「ツボ」に、コマンドを入力します。

最初にコモンイベント「所持金取得」を使い、現在の所持金のデータをチェック。先に作ったマップイベント「タンス」と、やり方はほぼ一緒です。

ウディタ イベントコマンド コモン20所持金取得

→結果【所持金】」の部分で代入する変数に、ツボのセルフ変数0を使用。「このEv:Self0」を選べばオッケー。

作業が終わったら、入力ボタンをクリック。

ウディタ コマンド 所持金取得

イベント欄が上のようになっていれば大丈夫です。

条件分岐でイベント内容を振り分ける

コモンイベント「所持金の取得」の下に、条件分岐のコマンドを入力します。

イベントコマンド入力の一覧から「7 条件(変数)」を選択。下のルールに従って、条件を設定します。

  1. 「現在の所持金が50以上」なら、50ゴールド減らす
  2. 「現在の所持金が50未満」のときは、メッセージを変える

この辺りの作業も、先にやった「タンス」の条件分岐と一緒です。

ウディタ イベントコマンド 条件(変数)

1つ目の条件を「セルフ変数0(現在の所持金)が50以上」に。2つ目の分岐、50未満は「上記以外の場合」にしてみました。見た目をわかりやすくしたいなら、「セルフ変数0が50未満」の条件分岐にしても構いません。

設定が終わったら入力ボタンをクリック。

マップイベント「ツボ」のコマンド欄に、条件分岐が入力されました。

条件ごとにコマンドを変えて不自然さを無くす

これから条件分岐後のコマンドを入れますが、作業の前に知っておいてほしいことがあります。

  • ウディタの「サンプルゲームのData」、もしくは「空データ基本システム入りData」で開発している。
  • 所持金の下限に関わる設定をいじっていない。

上の両方に当てはまる場合、主人公キャラの所持金はマイナスになりません

つまり、所持金の最低は「0」ということ。

所持金50未満のときに、コモンイベント「お金の増減」でお金を50減らしても、ウディタ側で自動的に所持金を0にします。なので条件の違いに関係なく、お金の増減値は常にマイナス50にしておいても問題ありません。

以上のルールを踏まえて、条件分岐後のコマンド入力作業をはじめましょう。

まず、「セルフ変数0(現在の所持金)が50以上」の場合です。

こちらは特に難しい部分なし。コモンイベント「所持金の増減」を使い、お金を減らすコマンドを入れておきます。メッセージ表示は「1:あり」で。前回講座のコマンドが残っているなら、それを使いまわしても大丈夫です。

ウディタ イベントコマンド コモン3お金の増減

次に、「セルフ変数0(現在の所持金)が50未満」の場合です。こちらの条件には注意が必要。

コモンイベント「所持金の増減」を入力しますが、入手メッセージを「0:なし」にしてください

ウディタ イベントコマンド コモン3お金の増減

「1:あり」にすると、所持金が50ゴールド未満なのに「50ゴールドを失った」という、不自然な文章がゲーム画面に表示されてしまうからです。

入手メッセージなしにすれば、所持金からいくらのゴールドが減ったのか見た目ではわからなくなります。ゲーム開発者にとって都合が良くなるんですね。

入手後のメッセージは自分で作ってしまいましょう。

1 文章の表示」のコマンドを選び、文章を入力。「所持金を全部取られてしまった!」にしてみます。

ウディタ イベントコマンド 文章の表示

終わったら、入力ボタンをクリック。

コマンド欄が上の内容であれば大丈夫。セーブして保存しましょう。

テストプレイで確認

テストプレイがはじまったら、まずマップイベント「タンス」を1回調べて、所持金を80ゴールドに増やしておきます。

ウディタ 所持金 80ゴールド

続いて、「ツボ」を調べましょう。

コモンイベント「所持金取得」の実行で、現在の所持金が80ゴールドだとわかっています。よって、「セルフ変数0が50以上の場合」の条件分岐が発動。

「50ゴールドを失った。」という文章が表示されます。

ウディタ ゲーム画面

所持金を調べると30ゴールド。不自然な部分はありません。

ウディタ 所持金 30ゴールド

次に所持金30ゴールドの状態で、もう1回ツボを調べてみましょう。

コモンイベント「所持金取得」の実行でセルフ変数0に「30」が入りますから、「セルフ変数0が50未満の場合」の条件分岐が発動。

文章表示が変わっているのに気づくはずです。

ウディタ ゲーム画面

30ゴールドを全部取られて、結果は0

ウディタ 所持金 0ゴールド

うん、とても自然な内容です。

所持金が0のときの分岐も作っておく

無事に解決!と言いたいところですが、残念ながらこれでは不十分です

所持金が0の状態で再びツボを調べてみてください。「所持金を全部取られてしまった!」の文章が出るはず。

既に所持金が0ゴールドなのに「お金を取られる」って、変ですよね?

原因は、条件分岐で「セルフ変数0が50未満の場合」に引っかかっているから。ウディタから見れば、「所持金0」も「所持金30」も、同じ50未満です。ただ黙々と、条件どおりにコマンドを実行し続けます。

人間の常識や都合にあわせて調整してくれないんですね。

解決するには、開発者がウディタを誘導してあげれば大丈夫。条件分岐を増やしてコントロールします。

マップイベント「ツボ」に、「セルフ変数0が0と同じ」という条件を追加してください。先に作っておいた条件分岐コマンドをダブルクリックすれば、修正できます。

ウディタ イベントコマンド 条件分岐(変数)の修正

ツボを調べる前から所持金0なので、お金の増減は不要。文章の表示コマンドで、それっぽい演出をしてあげるだけです。

ウディタ コマンド

ここまでやったらセーブし、テストプレイをしてみましょう!

所持金0ゴールドの状態で、ツボを調べてみてください。

ウディタ ゲーム画面

うまく条件分岐されていれば成功です。

次回の講座は?

やさしいウディタ講座17はここまで。

次回「やさしいウディタ講座18:お金の単位を変更&画面表示のやり方」では、ウディタの「お金の単位を変える方法」と「お金の単位をゲーム画面に表示する方法」について解説します。

「やさしいウディタ講座」- もくじ
※全講座の目次ページはコチラ。