IF分岐(AND)と(OR)の違いを理解しよう!

momotaro 初心者向け

「チュートリアル後編」記事でIF分岐の基本的な部分について解説しましたが、ANDとORの違いについては詳細を割愛していましたね。

たしか、「とりあえずANDの方を使って!」というように説明されただけで、

詳しくは別の記事で…という感じだったよね。

なので今回は昔話の桃太郎を例にして

ANDとORの違いについて解説していくよ!

脱出ゲームメーカーのアプリインストールはこちら↓

脱出ゲームメーカー - 脱出ゲームを作って遊ぼう

脱出ゲームメーカー – 脱出ゲームを作って遊ぼう

開発元:Springboard Inc.

無料

posted withアプリーチ

IF分岐ANDの桃太郎とORの桃太郎の違いを見てみよう

昔話の桃太郎はご存じでしょうか。このお話の主軸としては、桃太郎は犬、猿、キジを仲間にして鬼退治に成功しますね。この3匹を仲間する部分でIF分岐を取り入れてみましょう。

具体的には

  • 犬が仲間になる
  • 猿が仲間になる
  • キジが仲間になる

という3つのフラグを作って、桃太郎(プレイヤー)が条件を満たしたときにだけ鬼退治が成功する、という構成にしてみましょう。

ANDの桃太郎

ANDの桃太郎??

ANDの桃太郎では、

犬が仲間になる

猿が仲間になる

キジが仲間になる

3つ全部のフラグがONになった時だけ鬼退治を成功する、という内容で作って行くよ!

では、チュートリアルの流れが良いようにまずは犬、猿、キジの3つのフラグを先に作ってしまいましょう。

フラグを作るには、「メニュー画面」「フラグ管理」をタップすることで作ることができます。

「フラグ管理画面」を開いて「フラグ追加」をタップするとフラグを新規作成することができます。

フラグ追加をタップすると、名前入力欄とフラグの種類を選ぶ欄が出てきますので、下の画面のように「犬が仲間になる」とフラグに名前を付けて、フラグの種類は「フラグ」を選びます。

フラグ編集画面
フラグ編集画面

ここで「Ok」をタップすれば「犬が仲間になる」という一行が追加されます。あとは全く同じやり方で「猿が仲間になる」「キジが仲間になる」のフラグも追加してみましょう。

3つ全部作ることができたら、次の画面のようになっているはずです。

フラグ管理画面
フラグ管理画面

これで今回使うフラグの準備ができましたので、本題のタップイベントにイベントを入力してみましょう!

「イベント選択画面」から「IF分岐(AND)」をタップしてください。

間違ってORの方を選ばないようにね!

イベント選択画面
イベント選択画面

IF分岐(AND)を選択した後、条件を設定する画面になりますが、下画面のとおりタイプは「フラグ」、フラグ選択は「犬が仲間になる」、条件は「ON」としておきましょう。

条件指定画面
条件指定画面

正しく条件が入力できたのであれば下の画面のようにイベントが一行追加されるはずです。

タップイベント編集画面
タップイベント編集画面

さて、ここからがこの記事のハイライトになります。IF分岐は条件をひとつだけでなく複数設定することができます。条件を複数設定する方法は少しわかりづらい操作になりますので細かく見ていきましょう。

IF分岐に複数の条件を設定する方法

さきほど追加した「IF分岐(AND):犬が…」の行を一回だけタップしてみてください。すると下の画面のように「IF分岐(AND):犬が…」の行に青枠が現れて、画面右上の方に「変更」というボタンが現れました。

タップイベント編集画面
タップイベント編集画面

「変更」をタップすると次のような画面になります。ここはIF分岐の条件を追加したり、削除したりできます。今回は条件を追加したいので「条件追加」をタップしましょう。

IF分岐条件編集画面
IF分岐条件編集画面

「条件追加」をタップすると次の画面のように、条件指定の画面が現れます。「犬が仲間になる」の条件を入力したときと同じように「猿が仲間になる」のフラグ条件を入力して「Ok」をタップしましょう。

条件指定画面
条件指定画面

「猿が仲間になる」の行が追加されたならば、また「条件追加」をタップして今度は「キジが仲間になる」の条件を追加してみましょう。方法は犬、猿の時と同じです。

犬、猿、キジの3つの条件が入力できたならば、画面は今下のようになっているはずです。

IF分岐条件編集画面
IF分岐条件編集画面

犬、猿、キジの3つの条件がこれで追加されました。続いてタップイベントを入力するために左上の「戻る」をタップしてください。

下の画面のように、長い行ですが「IF分岐(AND):犬が仲間に~キジが仲間になるがONなら」と表示されていたら正しく入力できています。

タップイベント編集画面
タップイベント編集画面

正しく表示されていたら、この行を1回だけタップして青枠を表示させてください。そうすると「中に追加」ボタンが出てきます。

タップイベント編集画面
タップイベント編集画面

「中に追加」をタップして、IF分岐の中のイベントとそれ以外のイベントをどんどん入力していきましょう。このチュートリアルでは下の画面のように入力してみてください。

タップイベント編集画面
タップイベント編集画面

ここでは、

「メッセージ表示:鬼退治に成功した!」

「移動:クリア画面」

の2つがIF分岐の中身で

「メッセージ表示:鬼退治失敗…」

「メッセージ表示:全員を仲間にして再挑戦だ!」

の2つがIF分岐の外側だね

うん、えーと…

このANDの桃太郎をプレイすると具体的にどうなるの?

ANDの桃太郎をプレイした時、犬、猿、キジのフラグが全部ONになった時、つまり全員を仲間にした時だけ「鬼退治が成功」して「クリア画面」に移動するようになっています。

それ以外の時(例えば、誰も仲間にしていない、キジだけ仲間にしていない、など)は「鬼退治失敗」で「再挑戦しよう」というヒントメッセージが表示されます。

ふーん。3匹全員仲間にしないとクリアできないって内容なら、皆が良く知ってる桃太郎と同じ内容だね。

そうだね。じゃあ次は同じ内容でANDをORに変えるとどうなるか見てみよう!

ORの桃太郎

別のタップイベントを作って、今まで入力してきたANDの桃太郎と同じ方法で入力しますが、初めに選ぶのはORの方なので注意しましょう。IF分岐(OR)は下の画面の位置にあります。

イベント選択画面
イベント選択画面

さて、ORの方でANDの時と全く同じようにイベントをすべて入力すると下の画面のようになります。

タップイベント編集画面
タップイベント編集画面

見た目はさっきとそっくりだね。

ANDの桃太郎との唯一の違いは、IF分岐()のカッコの中がORに変わっただけです。しかし、こちらをプレイすると展開が全く変わってしまいます!

ORの桃太郎では、犬、猿、キジのどれか1匹でも仲間にしていたら「鬼退治に成功」します!例えば、犬だけ仲間にしても鬼退治に成功しますし、3匹全員仲間にしてもやっぱり鬼退治に成功します。

ORの桃太郎が鬼退治に失敗するのは、仲間が誰もいない時だけで、それ以外は全部鬼退治成功になるよ。

ANDは条件同士の関係がAかつBかつCとなり、AもBもCも全部満たさないといけないので、条件がより厳しいものになります。一方で、ORは条件同士の関係がAまたはBまたはCとなり、AかBかCどれか最低ひとつ満たせばよいので、条件は緩やかなものとなります。

ふつうの桃太郎のゲームを作ろうとして、間違ってORを使ってたら全然違う展開になっちゃうんだね…

IF分におけるANDとORの違いを理解できたでしょうか。

ちなみに、ANDとORの違いが生まれてくるのは条件を複数設定した時だけです。条件をひとつだけ設定したときはANDもORも同じ結果になるので、どちらを使っても問題ありません。

ORは使う頻度が少ないから、とりあえずANDを使っていればよいと思います

IF分岐(OR)がすごく役立つポイント

10作以上脱出ゲームメーカーで作品を作ってきましたが、ORを使ったことはほとんどありません。理由としては、ORをゲームの主軸に使ってしまうとクリア条件が一気に易しくなってしまうからです。またゲームとしても展開のパターンが増えて管理しづらくなるからです。

ところが「あること」にORを使うと特段にゲームの質が上がります!

謎解きの答えを「合言葉」や「単語」にしたいことってありますよね。

脱出ゲームメーカーでは「文字列(好きな言葉)」をIF分岐の条件として設定することもできます。しかし、「文字列」をプレイヤーに入力させる時によく起きる問題が、プレイヤーによって入力の仕方が違う場合があるという点です。

例えば、「桃太郎の家来は犬、猿ともう1匹は?」という問題に対して「きじ」と入力するプレイヤーもいれば、「キジ」または「雉」と入力してくるプレイヤーもいるでしょう。

「きじ」「キジ」「雉」でも、答えとしては正解にしたいところですが、「文字列」としては別物と判断されてしまうので、プレイヤーとしては「正解のはずなのにクリアできない!バグだ!」と思ってしまうはずです。

この問題をORで解決するにはどうすればいいの?

具体的にイベントを入力してみると以下の画面のようなパターンがあります。

タップイベント編集画面
タップイベント編集画面

IF分岐をORにして「きじ」「キジ」「雉」の3つの条件を設定することによって、プレイヤーが入力した文字フラグの内容が「きじ」でも「キジ」でも「雉」でもクリア画面に移動することができます。

その他脱出ゲームでの活用例

例えば、プレイヤーが他の部屋に行ったことがあるかどうかの判定に使う方法があります。

一軒家が舞台の脱出ゲームでリビングのシーンからゲームが始まる場合、どこでもいいのでいったん他の部屋(寝室や書斎など)を探索した後再びリビングに戻ってきた時だけ「リビングと他の部屋では壁の色が違うようだ」といったヒントメッセージが表示される。といった演出が考えられます。

具体的なイベント内容としては下のような内容を、リビングのシーンの開始イベントに入れて置くとよいでしょう。

開始イベント編集画面
開始イベント編集画面

「IF分岐(AND):壁の謎を~処理終了」の行は、ヒントメッセージが必要なくなったら表示されなくなるように設定するために入力しているよ!

その他ノベルゲームでの活用例

ノベルゲームは登場人物との会話がメインの構成になることが多いでしょう。

例えば学校が舞台であれば、プレイヤーが女子生徒、男子生徒、教師のうち誰かひとりでも会話していれば「話は少し聞けたからそろそろ教室に戻ろう」というメッセージが表示されて、教室のシーンに移動する。といった演出が考えられます。

具体的なイベント内容としては下のような内容を、廊下のシーンなどの開始イベントに入れて置くとよいでしょう。

開始イベント編集画面
開始イベント編集画面

もちろん女子生徒、男子生徒、教師の3人全員と話してしまっても教室のシーンに移動できるよ!

まとめ

IF分岐に複数条件を入れるときは「変更」で条件をどんどん足していこう!

ANDとORはそっくりだけど全然違う意味になるので入力間違えに注意しよう!

基本的にはANDを使っていればゲーム作りは十分できます!

なにかこだわったことをしたいときにORが役に立ちそう

自分はしばらくANDだけでも十分そうかな

IF分岐をマスターすればバグがなくて、展開も豊富な面白い作品が作れるようになるよ!

コメント

タイトルとURLをコピーしました