無料のゲーム開発ツール「ウディタ(WOLF RPGエディター)」の基本的な使い方を、初心者さん向けに紹介するこの企画。
今回は、選択肢の機能を利用したお店っぽいイベントを作ってみます。
今までの講座の応用的な内容です(結構なボリューム感)。ウディタ初心者さんには複雑に感じる部分もあるかと思いますが、ポイントごとに過去講座へのリンクも載せておきますので、マイペースにチャレンジしてみてください!
現在公開中の講座をまとめたページ。「ウディタのことがよくわからない」「簡単な機能から覚えたい」などの初心者さんは、初期の講座から読むのがおすすめです。
公式サイトにはウディタの使い方を詳しく解説している、マニュアルやガイドが公開されています。ウディタを学ぶ際の必須となる教科書です。ぜひ参考にしましょう。
目次
既存のコモンイベントで作れるお店との違い
以前の「やさしいウディタ講座19:商品を売買できる「お店」を作ろう」で、お店イベントの作り方を紹介しました。ウディタが元々用意する、お店関連のコモンイベントを使えば、簡単に高機能なお店に仕上がるという内容です。
ただ、このコモンイベントを使ったやり方だと、同時にメッセージウィンドウを表示できません。
お店みたいに商品を買えて、同時に相手のセリフを画面に表示できたら便利に感じるときもありますよね?また、コモンイベントのお店画面を表示させずに、物を売買したい場面もあるはずです。
そんなときに活用できそうなのが、選択肢の機能。
この選択肢コマンドでお店を作ろうというのが、今回の講座の目的です。
機能は購入に限定。売却機能もあると便利そうですが、コマンド内容が複雑になるので初心者さんには難しすぎます。挫折する危険があるので、単純な機能に絞ってみましょう。
今後ウディタに慣れてきたときにでも、複雑なやり方にチャレンジすれば良いと思います。
選択肢で「怪しい商人のお店」を作ってみよう!
作成するお店イベントの設定は、以下のとおりです。
- 一般のお店でも売買できるアイテムを売っている。
- 一般のお店の販売価格よりも安い。
- 商品は2つ。いずれか1つしか購入できない。1回買ったら店を閉じてしまう。
コモンイベントで作れる一般的なお店で販売できる商品を扱っていますが、そこよりも安く買えるのが特徴。一方、このお店の利用は1度切り。2つの商品のうち、いずれか1つを購入したら閉じてしまう、怪しいお店です。
そんな設定でイベントを作ってみましょう。
マップとマップイベントを作る
お店のマップイベントを配置するため、適当なマップを作っておきます。
マップの作り方は「やさしいウディタ講座1:マップを作ってみよう」を参考にどうぞ。
ツボの間に、お店のマップイベントを設置してみました。
マップイベントの設定は、以下のとおりです。
- 好きな名前を付けます。今回は「怪しい商人」にしてみました。
- グラフィックは好みのもので。
- 移動ルートは話しかけやすい「動かない」に決定。
- 起動条件は「決定キーで実行」。Enterキーで話しかけると実行します。
マップイベントの基本的な作り方は「やさしいウディタ講座2:人を配置・看板を調べるイベントの作り方 – マップの中に人を配置してみよう」を参考にどうぞ。
商品を決めて選択肢コマンドの入力開始!
まず、「何を売るのか」を考えます。2種類なので、武器と防具にしてみても良さそうですね。
武器と防具のデータは、ユーザーデータベースに登録されています。
「サンプルゲームのData」もしくは「空データ基本システム入りData」で開発している場合、武器と防具のデータが最初からいくつか登録されています。これをそのまま使ってみましょう。
似たような価格帯で、そこそこ良い性能の武器と防具を選んでみることに。
武器からは「ID8のロングソード」、防具からは「ID14のソルジャーコート」に決定。
価格の調べかたですが、各データを選んだ後の画面右側、ページ1にある販売価格の項目を見ればわかります。
ロングソードの販売価格は500。
ソルジャーコートの販売価格は520ですね。
この販売価格はウディタに最初からある、お店関連のコモンイベントの売買で、自動反映されるものです。
数字部分をいじれば価格を変更できますが、今回は元データをそのまま参考にします。
販売商品の情報が集まりました。情報を元に、マップイベント「怪しい商人」で選択肢を活用したお店作りをはじめましょう。
マップイベント画面右側、コマンド欄の空白行をダブルクリック、もしくはコマンド入力ウィンドウボタンを押し、イベントコマンド画面を開きます。
登場したイベントコマンド一覧から、「2 選択肢」をクリック。
分岐の項目に、売りたい商品名をそれぞれ入力します。
2種類の商品ですから、分岐1と分岐2に入力すれば良いですね。
表示名を工夫してみましょうか?「本来の武器防具名がわからない表示名にして、買ってから本来の性能がわかるようにする」と面白そうですね。
- 分岐1に「錆びた武器」
- 分岐2に「埃まみれの防具」
…と入れてみました。
「錆びた武器」を購入するとロングソードを、「埃まみれの防具」を購入すればソルジャーコートが手に入ります。
キャンセル分岐先については別のコマンドを実行させたいので、「別分岐」ボタンが凹んだ状態にしておいてください。
商品の販売価格を表示する
ロングソードとソルジャーコートの通常価格よりも、安く購入できるお店の設定でしたよね?武器・防具の価格の調べかたは上で紹介したとおり、ユーザーデータベースを見れば知ることができました。
- ロングソード:500
- ソルジャーコート:520
上が登録済みの販売価格です。この価格を基準に、怪しい商人のお店の設定をそれぞれ100安くしてみます。
- ロングソード:400
- ソルジャーコート:420
選択肢のテキストに価格を追加しましょう。文字と数字の間にスペースを入れるとプレイヤーが読みやすいと思います。
- 分岐1:錆びた武器 400
- 分岐2:埃まみれの防具 420
お金の単位については、後で変更する可能性も考えられます。そこでウディタのデフォルト単位のゴールドをそのまま手打ちするのをやめ、代わりに「特殊文字」を入力してみます。
お金の単位を特殊文字にする方法については、「やさしいウディタ講座18:お金の単位を変更&画面表示のやり方」を参考にどうぞ。
特殊文字で記入すれば、ユーザーデータベースで後からお金の単位を変更しても自動的に反映されます。修正の手間が省かれるってわけです。
選択肢の設定は終了。最後に入力ボタンを押し、コマンド欄に反映させます。
これで怪しい商人に話しかけると選択肢が出るはず。しかし、いきなり選択肢が出るのも不自然です。イベントコマンド一覧の「1 文章の表示」を使い、怪しい商人に何かセリフを言わせてみましょう。
選択肢の直前に、文章の表示コマンドを入力。
マップイベント「怪しい商人」のコマンド欄が、上の内容になっていれば大丈夫です。
条件分岐させるために「現在の所持金」を調べる
商品を買うにはお金が必要。
- 所持金が足りている→「購入できる」
- 所持金が足りない→「購入できない」
これを条件分岐で制御します。錆びた武器と埃まみれの防具、それぞれの選択肢の後にコマンドを入力すれば良いですね。
先に、錆びた武器のロングソードから。
価格は400ゴールドなので、所持金が400ゴールド以上なら購入可能。しかし、この条件分岐を作るために、主人公キャラ(操作キャラ)の現在の所持金を調べる必要が出てきました。
現在の所持金を調べるには、コモンイベント「所持金取得」を使えば簡単。所持金のデータを取得した後、「変数」に入れてくれるコモンイベントです。
コモンイベント「所持金取得」の使い方は、「やさしいウディタ講座17:現在の所持金を取得する方法をイベントで活用」を参考にどうぞ。
現在の所持金を調べる機会は多いと思いますので、システムデータベースの変数(通常変数や予備変数)にデータを保存するのが良いかもしれません。
マップイベントが独自に持つセルフ変数と違って、どこのマップからでも利用できる他、名前を付けられるのがメリットです。
システムデータベースの変数やセルフ変数の違いを知るには、「やさしいウディタ講座7:変数の種類と使うことのできる範囲」が参考になります。
通常変数と予備変数のどちらを使っても構いません。
今回は「予備変数」を使ってみます。「現在の所持金」という変数名で登録してみました。
システムデータベースで変数を作る方法については、「やさしいウディタ講座11:条件分岐&変数で複数イベントを変える – システムデータベースで通常変数を作る」を参考にどうぞ。
イベントコマンド一覧から「I コモンイベント」を選択。コモンイベント「所持金取得」を選び、結果を予備変数(V)「現在の所持金」に代入。最後に入力ボタンを押します。
【check!】選択肢と文章の表示が同時に表示されない場合の対処法
ここで注意点を少し。
文章の表示コマンドの後で選択肢のコマンドを入力するとき、コマンドの並び順によってはゲーム画面の表示に影響が出ることについてです。
ウディタのゲーム画面で、文章の表示(メッセージウィンドウ)と選択肢の画面を同時に表示したい場合もありますよね?
これを狙ってやる場合、必ず2つのコマンドを連続で入力してください。
上のように、両者のコマンドの間に別のコマンドが入っていると、選択肢の表示前にメッセージウィンドウが閉じてしまいます。
※開いていたメッセージウィンドウが消えて、選択肢だけしか表示されない。
狙ってメッセージ表示を維持したい場合には、文章の表示と選択肢のコマンドを隣接させるのがコツ。
コマンドの並び順が気に入らなければ、右クリックメニューから並び替えが可能。「切り取り」と「貼り付け」を使い、好きな場所にコマンドを移動させてみましょう。
商品購入の可否を条件分岐で振り分け
所持金がわかったので、条件分岐で内容を振り分けてみます。
選択肢の分岐1「錆びた武器(ロングソード)」の中に、条件分岐コマンドを入力。イベントコマンド一覧から「7 条件(変数)」を選び、作業しましょう。
「現在の所持金(予備変数)が400以上」の条件で決定。また、400未満のときの分岐先として、「上記以外の場合」にもチェックを入れておきます。
続いて、分岐2「埃まみれの防具(ソルジャーコート)」です。価格は420ゴールドなので…
「現在の所持金(予備変数)が420以上」の条件にすれば良いですね。
こんな感じにできていれば大丈夫。
条件分岐の基本については、「やさしいウディタ講座10:条件分岐の基本!イベント内容を振り分ける」を参考にどうぞ。
購入したら所持品を増やし、所持金を減らす
購入後にロングソード、もしくはソルジャーコートを入手するコマンドを入力しましょう。
まずはロングソード(錆びた武器)から。
条件分岐「現在の所持金が400以上の場合」の中に、コモンイベント「武器増減」を入力。
武器番号を「ロングソード」に、増減数は「1」にします。入手メッセージの「あり」と「なし」は、どちらでも良いです。今回は「なし」にしてみました。
アイテムや武器・防具の増減については「やさしいウディタ講座20:お店以外で所持品を増やす・減らす方法」を参考にどうぞ。
ロングソードを購入したら、代金の400ゴールドをお店に払います。ということで、ロングソード入手の直後に、所持金から400ゴールドを減らすコマンドを入れましょう。
コモンイベント「お金の増減」でマイナス400を入力し、所持金から減らします。
所持金の増減については「やさしいウディタ講座16:お金を増やす・減らすイベントの作り方」を参考にどうぞ。
購入後、商人に何かセリフを言わせるとお店らしい雰囲気が出そうです。文章の表示コマンドでそれっぽいセリフを入力。
ここまでの作業で入力したコマンド欄は、以下のとおり。
続いて、所持金が400ゴールド以上ではない、つまりお金が足りなかったときについても考えます。
この場合、所持金が400ゴールド以上の条件が自動的に無視され、「上記以外」の部分に飛ばされます。「上記以外」の部分にそれっぽい文章を入れると、プレイヤーが理解できそうです。
文章の表示コマンドで「お金が足りないようね…」というセリフを入力してみました。
ロングソードの部分はこれで完了。
次に、ソルジャーコート(埃まみれの防具)のコマンドを仕上げましょう。
やることはロングソードとほぼ一緒。コモンイベント「防具増減」でソルジャーコートを選択。コモンイベント「お金の増減」でマイナス420を入力し、所持金を減らします。
コマンド欄は以下のとおり。
ロングソードと共通するコマンド部分は、コピペで入力しても構いません。
購入しなかった場合のコマンドを入力
大体できましたが、ゲームのプレイ画面で「選択肢を選ばずにやめた場合」の演出も入れてみたいですね。
選択肢を閉じるときには、プレイヤーがキャンセルボタン(キーボードのXキー)を押します。なので、選択肢の分岐「キャンセルの場合」の部分に、何かコマンドを入れとけば良さそうです。
文章の表示コマンドで、怪しい商人にセリフを言わせてみました。
試しにテストプレイしてみる
大部分のコマンド入力が終わりました。試しにテストプレイでイベントの動きを確認してみます。
テストプレイのために主人公キャラの初期位置をこのマップにする場合、「やさしいウディタ講座2:人を配置・看板を調べるイベントの作り方 – 主人公キャラを自作マップ上で操作できるようにする」を参考に、作業してみてください。
では早速…と言いたいところですけど、考えてみれば所持金が全くない状態だとお店で何も買えませんね。所持金を増やせる、適当なイベントを作っておきましょうか。
猫のマップイベントを作成。起動条件は「決定キーで実行」にします。
コモンイベント「お金の増減」を入力。
猫に話しかけるたびに500ゴールドを入手できる、マップイベントの完成です。
所持金が足りない場合と所持金が足りている場合、それぞれのパターンで怪しい商人に話しかけてみます。
選択肢の表示、条件分岐の実行など、上手くいっている様子。
しかし現在の状態だと、ロングソードもしくはソルジャーコートを購入した後も、所持金さえ足りていれば何度でも普通に商品を売ってくれます。
最初の計画では「2種類のうち1つを購入したら、お店を閉じてしまう」内容にするはずでした。
まだまだ、イベント内容に手を加える部分がありそうです。
変数と条件分岐で商品の購入を1回限りにする
「商品を購入したらお店を閉じてしまう」
ということは、お店を閉じたパターンのイベントを作れば良いはず。
マップイベント「怪しい商人」に、別パターンのページ2を追加すればできそうです。
「新規ページ」ボタンを押し、「ページ2」を出現させます。グラフィック、移動ルートはページ1と同じ内容で。
ページ2のコマンド欄に、それっぽい内容を入れてみましょう。文章の表示コマンドで店じまいのセリフを作ってみました。
重要なのが起動条件。「決定キーで実行」はページ1と同じですが、その下の変数の条件を変更します。
このマップイベントのセルフ変数を、起動条件に加えてみましょう。
チェックを入れて使用可能な状態に変更。項目内容を「Self0:セルフ変数0が1と同じ」に設定します。
セルフ変数はマップイベント「怪しい商人」が持つ、独自の変数です。0~9番のうち、今回は0番を使ってみます。
- セルフ変数0の中身が「1」なら「ページ2」を実行。
- セルフ変数0の中身が「1以外」なら「ページ1」を実行。
セルフ変数0に代入されている値に合わせて、マップイベント「怪しい商人」の内容を変えられる、というわけです。
土台ができたので、後は変数の中身を変えるコマンド操作をすれば良いだけ。
マップイベント「怪しい商人」のページ1の画面に戻ります。
セルフ変数0の中身を1にするため、変数操作コマンドを使います。タイミングとしては、武器もしくは防具の購入に関わるコマンドがすべて終わった後が最適でしょうね。
「3 変数操作」の画面でコマンドを入力。
マップイベント「怪しい商人」の「セルフ変数0(このイベント:Self0)」に、「1」を代入すればオッケー。
変数操作については、「やさしいウディタ講座5:変数を使ってイベントを変化させよう」を参考にどうぞ。
ロングソード(錆びた武器)とソルジャーコート(埃まみれの防具)のそれぞれに、同じ内容の変数操作を入力してください。2つ目はコピペでも大丈夫。
これで商品購入の直後に、ページ2の起動条件が適用されるはずです。
テストプレイで確認!
再びテストプレイです。猫に話しかけて500ゴールドを入手した後、怪しい商人に話しかけて商品をいずれか1つ購入。
購入後、怪しい商人に話しかけてみると…営業を終了したというセリフが出ました。
何度話しかけても、商品を購入できません。
ようやく当初の計画通りのイベント内容に仕上がりました!
価格をメッセージウィンドウで表示するパターン
今回は選択肢の中に商品価格を直接入力しましたけど、怪しい商人のセリフで商品価格を表示する方法でもいけると思います。ゲーム画面のメッセージウィンドウにセリフを表示させるため、「文章の表示」コマンドを使いましょう。
すべての商品価格が同じならば、この方法でも良さそう。やりやすい方法を考えながら、コマンドを打ち込んでみてください。
次回の講座は?
やさしいウディタ講座21はここまで。
応用編とあって、凄く長い内容になってしまいました(7000文字超えてる…)。今回の内容がスラスラとできるようであれば、既にウディタ初心者から脱却しているかもしれませんね!難しいな~と思った人でも大丈夫。ゆっくり、少しずつ慣れましょう。
次回「やさしいウディタ講座22:ゲーム開始時のキャラクターを変更する」では、ゲーム開始直後に操作する主人公をデフォルトキャラクターではなく、好きなキャラクターへ自由に変更する方法を解説します。
※全講座の目次ページはコチラ。