CyanTriggerでVRC脱出ゲームを作りたい④ーパスワードギミック・正解の判定編 後半ー

 前回の記事では、各ボックスと"controller"との紐づけを行いました。今回はいよいよ、"controller"で各ボックスの値がパスワードと一致しているかどうかを判定していきます。

※画像については後ほど追加致します。
画像(予定)


パスワードギミック作成手順

④パスワードが一致しているか判定する

 "controler"の"Inspector"を開いてください。まずは"Add Event"から"Custom"を追加しましょう。"Name"は"try_unlock"としました。
 ここにパスワードが合っているか判定するための条件を入れていきます。パスワードは「1234」として、説明を続けます。

 今回は、まず一番左のAの値を見て、それが正しければBの値、Cの値というふうに順にパスワードをチェックしていく条件を作っていきます。

④-1 ボックスAの値の判定

 先ほど作った"Custom Event"の"Actions"のすぐ下の辺りで右クリックしてください。そこででてきた"Add Action"→"Special"→"If"を選択します。
 そうすると"Condition"や"ConditionBody"が出てくると思うので、"Condition"の上で右クリックしてください。そして、"Add Action"→"int"→"int.Equals"を選択します。
 "int"の右の"Input"となっている所を押して、"Variable"を選択してください。そして、その右側で"box_A"を選択します。
 パスワードの一番最初の数字は"1"なので、"obj"の"Input"は"1"にしましょう。
 "out bool"の右"+New"を押すと、"condition bool"が出てくるので、それを選択しましょう。

画像9(予定)

④-2 ボックスBの値の判定

 今回はAの値が正しかったらBの値の判定に移る、というふうにしたいので、AとBを入れ子にする形で条件を追加していきます。
 ④-1の"ConditionBody"の上で右クリックしてください。そして、"Add Action→Special→If"を選択します。
 次に、④-1と同様に"Condition"の上で右クリックしてください。そして、"Add Action→int→int.Equals"を選択します。ここでは、ボックスBの値の条件を追加したいので、"int"の横の"Input"となっている所を押して、"Variable"を選択したら、その右で"box_B"を選択します。
 パスワードの2番目の数字は"2"なので、"obj"の"Input"は"2"にしましょう。
 ④-1同様に"out bool"の右"+New"を押すと、"condition bool"が出てくるので、それを選択しましょう。

画像10(予定)

④-3 ボックスC、Dの値の判定

 ④-1、④-2で行ったのと同様に、C、Dの条件を追加してください。

画像11(予定)

⑤"UdonBehavior"の追加

 "controler"の、②で作った"set_box_A"の"int.Set"の下にアクションを追加していきます。
 "+"をクリックしたら"UdonBehavior"→"SendCustomEvent"を選択します。"Variable"は"This UdonBehavior"になっていると思うので、そのままで大丈夫です。その下の"event Name"は"Input"を"try_unlock"にしてください。
 ボックスC~Dにも同様の操作を行ってください。

⑥ パスワード正解時のアクションの指定

 今回は、パスワードが合っていたら音を鳴らす、というものにします。
 "controler"の"If"を使ってパスワードの指定をした所に戻ってください。
 ボックスDの条件を指定した部分の下、"ConditionBody"で右クリックして、"Add Action"→"AudioSource"→"AudioSource.Play"を選択します。
 前回、前々回の記事と同じ手順で"Audio Source"を追加しましょう。

お疲れ様です!

本当によくがんばったな。お前の苦労を……

参考にしたサイト等

https://github.com/CyanLaser/CyanTrigger/wiki

Special Thanks
 りーふでさん