今回はウディタ(WOLF RPGエディター)でじゃんけんイベントを作る方法を紹介します。
じゃんけんについては改めて説明する必要もないと思いますので、まずはウディタでじゃんけんイベントを作る時にはどのようなコマンドを仕込む必要があるのかから紹介します。
大きな要素としては以下の2つです。
相手が何の手を出すのかをランダムで決める
じゃんけんの結果があいこの時にループさせる
これらの要素さえ実装できれば、じゃんけんイベントを作るのは難しくありません。
それではじゃんけんイベントの作成に取り掛かっていきましょう。
- マップイベントを作成する
- じゃんけんの導入を作る
- あいこだった時のために「ループ開始」処理を入れる
- 相手が出す手をランダムで決める(抽選)
- 相手の出した手に応じた条件分岐を作る
- 自分の出す手に応じた条件分岐を作る
- 「ループ開始へ戻る」と「ループ中断」する処理を入れる
- じゃんけんの戦績(勝敗)を記録できるようにする
- じゃんけんに勝つとアイテムをもらえるようにする
マップイベントを作成する
まずはじゃんけんをする相手をマップイベントで適当に配置してください。
起動条件は基本的には「決定キーで実行」で良いでしょう。
じゃんけんの導入を作る
次にイベントの中身をつくっていきます。
まずは導入部分をつくります。じゃんけんに応じるかどうかの選択肢ですね。
じゃんけんに応じた場合と断った場合のセリフも用意しましょう。
※ウェイトフレームを入れるかどうかはお好きに判断してください。一応、選択肢直後に置いているウェイトフレームには、選択肢決定音が鳴っている間のわずかな時間を稼ぐという役割を担っています。
あいこだった時のために「ループ開始」処理を入れる
次は、じゃんけんに応じた後に「ループ開始」するコマンドを入れます。
これはじゃんけんの結果があいこだった時にじゃんけんを繰り返すための処理です。
■ コマンド入力ウインドウを表示 ■
→ イベント制御
→ ループ(繰り返し)
ループを開始するコマンドが入力できると下記画像のように表示されます。
相手が出す手をランダムで決める(抽選)
ここからは本題であるじゃんけんイベントを作っていきます。
まずはループ開始直後に相手が出す手を決める抽選を行います。
具体的には「変数操作」でランダムな値を取り出します。
■ コマンド入力ウインドウを表示 ■
→ 変数操作
「このイベント:Self0」「=」「0」「~」「2」
この変数操作では「0~2」の数値をランダムに抽選して、選出された数値をこのイベントの「セルフ変数0」に入力する、と言った操作を行っています。
このコマンドが入力できると、下記画像のように
【■変数操作: このEvのセルフ変数0 = 0 ~ 2】と表示されます。
この変数操作はランダム性のあるイベントを作る際には必須のテクニックとなりますので、覚えておくと何かと便利です。
相手の出した手に応じた条件分岐を作る
次は、先程セルフ変数に入力した数値を利用して、相手が出す手を決めます。
条件(変数)コマンドを使って、入力された数値に応じて分岐させましょう。
これで「0」の時、「1」の時、「2」の時で、3通りの分岐ができました。
この分岐ごとに相手の出す手を設定します。
例では、以下のように設定しました。
- 「0」の時 = グー
- 「1」の時 = パー
- 「2」の時 = チョキ
間違い防止のために、それぞれの分岐先に「相手の出す手が○○○だった場合」のようなコメント文を入力しておくと良いでしょう。
余談:抽選結果に偏りを出したい場合
もしもチョキばかり出してくるような「特定の手ばかりを出してくる相手」を作りたいのであれば、抽選範囲を「0~9」のように拡大して、「0」ならグー、「1」ならパー、「2以上の時」はチョキ、のような条件分岐を設定すれば、8割はチョキを出してくるじゃんけん相手が作れます。
全体の割合を調整したいのであれば、条件分岐の3変数を、上から「5以上」「2以上」「0以上」のように、【大きな数値】から順にすべて【以上】で設定しましょう。実質的に「5~最大値」「2~4」「0~1」と同義になります。
この際、小さい数値から順に並べてはいけません。処理の順番的に、必ず最初の分岐に流れてしまいますから。
自分の出す手に応じた条件分岐を作る
相手の出す手とその条件分岐は設定できましたので、今度は自分の出す手とその条件分岐を作ります。
まずは自分が何を出すのかを決める選択肢を作ります。
キャンセル分岐先は「キャンセル不能」で良いでしょう。
次に、自分が選んだ選択肢ごとにじゃんけんの結果を表示します。
上記の例では、相手が「グー」を出しているので……
- 自分が「グー」を選んでいれば「あいこ」。
- 自分が「パー」を選んでいれば「自分の勝ち & 相手の負け」。
- 自分が「チョキ」を選んでいれば「自分の負け & 相手の勝ち」。
このような結果だと分かるような文章を描画します。
「ループ開始へ戻る」と「ループ中断」する処理を入れる
じゃんけんの結果を出すことはできましたが、まだ「あいこ」だった時の処理が完成していません。
そのため、あいこの結果を表示した後に、ループ開始へ戻るコマンドを挿入します。
■ コマンド入力ウインドウを表示 ■
→ イベント制御
→ ループ開始へ
これにより、あいこの場合にはループ開始地点に設定した「相手の出す手を抽選する直前」にまで戻ります。
また、あいこ以外の時にはループする必要がないことをプログラムに教えてあげる必要がありますので、勝ち負けの結果表示後にループ中断コマンドを挿入します。
■ コマンド入力ウインドウを表示 ■
→ イベント制御
→ ループ中断
それぞれのコマンドを挿入すると、下記画像のような見た目になります。
あいことそれ以外で処理が異なりますので、間違えないように気を付けましょう。
じゃんけんの戦績(勝敗)を記録できるようにする
せっかくじゃんけんを行うイベントを実装するのですから、戦績(勝敗記録)が表示できたら面白いと思いませんか?
……と言うことで、戦績を記録する方法も紹介いたします。
まずは「相手の勝ち数」と「自分の勝ち数」をそれぞれマップイベントのセルフ変数に記録します。お好みのセルフ変数をご使用ください。
■ コマンド入力ウインドウを表示 ■
→ 変数操作
「このイベント:Self1」「+=」「1」「+」「0」
このコマンドを相手が勝った時と自分が勝った時それぞれの状況に挿入することで、該当するセルフ変数の数値が1つずつ増えていくことになります。
以下の例では、「相手の勝ち数」をセルフ変数1、「自分の勝ち数」をセルフ変数2、としてイベントを作成しました。
これで、自分が勝った時にはセルフ変数2の内部数値が+1、相手が勝った時にはセルフ変数1の内部数値が+1されます。スコアボードみたいなものですね。
ただ、これだけではゲームの中の内部数値が変わるだけなので、ゲームをプレイする人の目にも見えるようにしましょう。
このマップイベント内の文章に
¥self[1]
と入力してみてください。
すると、実際にゲームをプレイする時には「相手が勝った回数」が文章中に数値として表示されます。
¥self[●] はマップイベントのセルフ変数の数値を文章中に表示するための特殊な文字列です。●の部分には表示したいセルフ変数の番号を入力してください。
今回で言えば、相手に「これで僕の ¥self[1] 勝、¥self[2] 敗だ!」と喋らせることで戦績を確認できるわけですね。
じゃんけんに勝つとアイテムをもらえるようにする
さて、これでじゃんけんと戦績確認が実装できましたが、クリア報酬がなければプレイヤーは遊んでくれないでしょう。
そこで、今度はじゃんけんに勝った時にアイテムを入手できるコマンドを作ります。
実装する方法は大きく分けて2通りあります。
1回目に勝った時だけアイテムをもらえる
1回目に勝った時だけアイテムをもらえるという仕組みは簡単です。
①まず最初にマップイベントの「ページ1」をコピーして、「ページ2」を作成します。
②「ページ2」の起動条件を「セルフ変数●」が「1」と「同じ」に設定します。(●には未使用のセルフ変数番号を使ってください。)
③「ページ1」のじゃんけんに勝った分岐先に【コモンイベント0: アイテムの増減】を挿入して、報酬となるアイテムを入手させます。
④アイテム入手後、「セルフ変数●」を変数操作で「1」にすることで、「ページ2」にイベントを切り替えればOKです。
こうすることで、2回目以降はじゃんけんに勝ってもアイテムはもらえませんが、じゃんけん自体は何回でも遊べます。
どういうことかよく分からないと言う場合には、ウディタの公式サイトで紹介されている宝箱イベントを参考にしてください。仕組みは同じです。
n回目に勝った時にイベントが発生する
今度はじゃんけんに特定回数勝利した時にイベントが発生するようにします。
例えば、「5回勝つとエリクサーを入手!」とか、「10回勝つと相手が怒りだしてしまう!」みたいな感じですね。
まずは勝った分岐の先に以下の条件分岐を追加します。
「自分の勝ち数を記録しているセルフ変数」が「n」「と同じ」
※nには条件とする勝利回数を数値で入力してください。
※以上や以下を使っても問題ありません。
条件分岐を追加した後は、分岐した中に発生させたいイベントを作ります。
下記画像では3回勝利した記念にアイテムをもらっています。
なお、このイベント用の分岐は「ループ中断」の前に入れないと起動しませんのでご注意ください。
今回は勝った時にイベントが発生する方法として紹介しましたが、負けた時の分岐先に負け回数を条件にして追加すれば、特定回数負けた時にもイベントを発生させることができます。いろいろと手を加えてみてください。
最後に、これまでに入力したコマンドが、相手の出した手が「グー」の時、「パー」の時、「チョキ」の時の3通りすべてに対応しているかを確認しましょう。
もし対応していなければ、それぞれの勝敗関係が正しくなるように注意しながら、コピーを活用するなどして追加してください。(組み合わせは3×3で9通り)
以上、【ウディタ】じゃんけんイベントの作り方でした。
今回がはじめてのウディタ系の記事と言うことで「第1回」と命名しましたが、今後も投稿するかは未定です。もし続いた場合にはよろしくお願いします。
→続きました。
当サイトのウディタ講座一覧はこちらです。