WOLF RPGエディター(ウディタ)/演出・システム【サイトトップへ戻る】
■パスワードイベントの基礎
(更新:2023/03/19)


パスワードイベントについて解説します。


ショートカット
■パスワードイベントとは?
■パスワードの入力方法
■パスワードの教えるイベントの基礎
■パスワードを入力するイベントの基礎


  
■パスワードイベントとは?

パスワードイベントは、プレイヤーにパスワードを入力してもらいたい時に設定します。

主にカギのかかった扉を開けたり、合言葉を言う場面で使用します。



パスワードイベントは…
パスワードが必要であると認識する → パスワードを探す → パスワードを入力する
と言った手間がかかるため、プレイヤーにとってはストレスになるイベントと言えます。


以下のようなパスワードイベントは、改善する必要性があります。

●パスワードの文字数が多く、一度間違えると再び1文字目から入力し直しになる。

●パスワードを入力する場面が何度も登場する。

●同じ扉を通る度にパスワードの入力が必要になる。

●パスワードを教えてくれる場所が分からない。
 仮にパスワードが画面上に表示されたとしても、それがパスワードとは認識しづらい。

●パスワードの確認が1回しかできず、それを見落としたらゲーム進行ができなくなる。

●パスワードの一部しか教えてくれず、
 不足している部分は何度も入力してゴリ押しで進めていくしか方法が無い。

●パスワードの入力に失敗すると、ダメージを受けるなどのペナルティが発生する。

必ずしも「パスワードイベントがある=良い」では無いので、
不必要にパスワードイベントを設定していくのはお勧めできません。


▲トップへ戻る▲


  
■パスワードの入力方法

パスワードの入力方法はいくつかあります。

▼[選択肢]を使う



イベントコマンド【選択肢】を使ってパスワードを入力します。

例えば上図のように「0〜9」の選択肢を表示し、
選択肢を4回選択して、4桁の数値を入力するような処理が作れます。



また以下のように複数の選択肢を組みわせて、文章(合言葉)を作る事もできます。
「山の」
「海の」
「天の」
「地の」
「光が」
「闇が」
「神が」
「魂が」
「見つめている」
「歌い出す」
「舞い降りる」
「叫んでいる」



■変数操作: Sys73:文・選択肢のマウス入力(1なら受付) = 1 + 0
を設定する事で、マウスの操作で選択肢を選択する事ができます。



選択肢の仕様の範囲内で処理する必要があるため、
例えば選択項目を横に並べて表示するような事はできません。



イベント設定が比較的簡単なので、ウディタ初心者にもお勧めしやすい入力方法です。



【[選択肢]を使ってパスワードを入力する方法を見る】
▼[キーボード入力]を使う



イベントコマンド【文字列操作】にある「キーボード入力」でパスワードを入力します。



数字だけでなく、文字の入力もできるので、
例えば「山の神様」のような指定した文字列をパスワードにする事ができます。



キーボードで入力した文字がそのまま画面上に表示されるため、
入力文字を「●●●」のような伏字にしたり、画像の文字(アイコン)にする事はできません。



【[キーボード入力]を使ってパスワードを入力する方法を見る】
▼[キー入力]を使う



イベントコマンド【キー入力】を使って、キーボードで押したキーを読み取って入力します。

例えば、指定された部屋の中でキーボードの[Y][A][D][O][T]を順番に押すと、
何らかのイベントが発動するようなイベントを作る事ができます。



他の入力方法とは異なり、画面上に何も表示しなくてもパスワードを入力する事ができますが、
逆に入力した文字を画面上に表示する場合は、押したキー内容を表示する処理が必要になります。



【[キー入力]を使ってパスワードを入力する方法を見る】
▼オリジナルの入力画面を表示



オリジナルの入力画面を表示して、キーボードやマウスを使ってパスワードを入力します。

制作者が理想とする入力画面や操作方法でパスワードを入力する事ができますが、
パスワードを入力する処理を自作する必要があるため、他の入力方法よりも作るのが難しいです。



【オリジナルの入力画面でパスワードを入力する方法を見る】
▼マップイベントを調べて入力

以下のような入力方法があります。

●複数のマップイベントを指定した順番で調べる。
●マップイベントを押して移動し、指定した位置に置く。
●床に敷き詰めたマップイベントを調べて床の色を変えて、文字や図形を作る。

パスワードイベントと言うよりは、謎解きイベントと言った方が良いかもしれません。



【正しい順番でスイッチを押すと扉が開くのページを見る】
【マップイベントを押して移動し、特定の位置に置くと扉が開く】
【地面の色を変えて図形を作ってパスワードを入力するページを見る】


▲トップへ戻る▲


  
■パスワードの教えるイベントの基礎

パスワードを教えるイベントの基礎解説です。



パスワードが固定である場合は…
■文章:パスワードは「123」だ。
とパスワードを表示してください。



パスワードがランダムである場合は、
イベントコマンド【変数操作】の乱数設定を使ってランダムなパスワードを作成し、
通常変数予備変数に保存してください。

▼パスワードが「0〜999」のいずれかになる設定




パスワードを教えるイベントでは、変数の値を表示する特殊文字「\v[変数番号]」を使って…
■文章:パスワードは「\v[1]」だ。
などと設定します。
【特殊文字に関する説明を見る】



変数に保存された数字のパスワードを表示する場合、例えば3桁の数値を表示する時には、
普通に変数の値を表示すると1〜2桁の表示では、「1」や「42」などと表示されます。

もしも「001」や「042」などと表示したい時には、以下のように設定してください。

【イベントコード表示】

■変数操作: V1[パスワード] = 0 〜 999
■条件分岐(変数): 【1】 V1[パスワード] が 9 以下 【2】 V1[パスワード] が 99 以下
-◇分岐: 【1】 [ V1[パスワード] が 9 以下 ]の場合↓
|■文字列操作:S0[[サンプル]一時文字列] = "00\v[1]"
|■
-◇分岐: 【2】 [ V1[パスワード] が 99 以下 ]の場合↓
|■文字列操作:S0[[サンプル]一時文字列] = "0\v[1]"
|■
-◇上記以外
|■文字列操作:S0[[サンプル]一時文字列] = "\v[1]"
|■
◇分岐終了◇
■文章:パスワードは「\s[0]」だ。



ランダムな文字列のパスワードを設定する場合は、
正しいパスワードを保存する文字列変数を準備して、
その文字列変数と同じ文字列を入力したら、「パスワードが正しい」と判断します。

文字列のパスワードの場合は、数値タイプのパスワードとは異なり、
ランダムに文字列を設定するイベントコマンドが無いので、
ランダムに文字列を設定するイベント処理を自作する必要があります。

簡単なものですと…
【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 0 〜 3
■条件分岐(変数): 【1】 このEvのセルフ変数1 が 0 と同じ
         【2】 このEvのセルフ変数1 が 1 と同じ
         【3】 このEvのセルフ変数1 が 2 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数1 が 0 と同じ ]の場合↓
|■文字列操作:S1[パスワード] = "abc"
|■
-◇分岐: 【2】 [ このEvのセルフ変数1 が 1 と同じ ]の場合↓
|■文字列操作:S1[パスワード] = "bcd"
|■
-◇分岐: 【3】 [ このEvのセルフ変数1 が 2 と同じ ]の場合↓
|■文字列操作:S1[パスワード] = "cde"
|■
-◇上記以外
|■文字列操作:S1[パスワード] = "def"
|■
◇分岐終了◇
と言った設定を行い、パスワードを教えるイベントは…
■文章:パスワードは「\s[1]」だ。
と設定します。



パスワードの文字列の設定を完全にランダムにする場合は…
【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 0 〜 5
■文字列操作:S1[パスワード] = "\self[0]"
■変数操作: このEvのセルフ変数0 = 0 〜 5
■文字列操作:S1[パスワード] += "\self[0]"
■変数操作: このEvのセルフ変数0 = 0 〜 5
■文字列操作:S1[パスワード] += "\self[0]"
■変数操作: このEvのセルフ変数0 = 0 〜 5
■文字列操作:S1[パスワード] += "\self[0]"
■文字列操作:S1[パスワード] =<から文字列を置換> "0" → "a"
■文字列操作:S1[パスワード] =<から文字列を置換> "1" → "b"
■文字列操作:S1[パスワード] =<から文字列を置換> "2" → "c"
■文字列操作:S1[パスワード] =<から文字列を置換> "3" → "d"
■文字列操作:S1[パスワード] =<から文字列を置換> "4" → "e"
■文字列操作:S1[パスワード] =<から文字列を置換> "5" → "f"
と言った設定にすれば一応できますが、完全なランダムの場合は、
問題がある文字列(「baka(バカ)」や「kill(英語で「殺す」)」など)になる可能性があります。

そのため、問題がある文字列にはならないような文字を設定したり、
文字と文字の間に数字を入れたりするなどの工夫が必要になります。

また誤認しやすい文字(Lの小文字の「l」と数字の「1」など)は避けた方が良いでしょう。


▲トップへ戻る▲


  
■パスワードを入力するイベントの基礎

パスワードを入力するイベントの基礎解説です。

今回はイベントコマンド【文字列操作】にある「キーボード入力」を使った方法を紹介します。
【イベントコマンド【文字列操作】の説明を見る】



基本的な設定は以下のようになります。

▼パスワードが「abc」の時
【イベントコード表示】

■文字列操作:S2[入力文字列] = キーボード入力 10バイト
■条件分岐(文字): 【1】 S2[入力文字列]が "abc" と同じ
         【2】 S2[入力文字列]が "" と同じ
-◇分岐: 【1】 [ S2[入力文字列] "abc" と同じ ]の場合↓
|■変数操作: V2[ロック解除] = 1 + 0
|■文章:ロックを解除しました。
|■
-◇分岐: 【2】 [ S2[入力文字列] "" と同じ ]の場合↓
|■文章:入力をキャンセルしました。
|■
-◇上記以外
|■文章:パスワードが違います。
|■
◇分岐終了◇



数字のパスワードの場合で「001」などと前に「0」を設定する場合は、
一度文字列変数に「0」を含めたパスワードを設定した上で、
その文字列変数と入力された文字列を比較してください。

▼パスワードが通常変数[1]にあり、1桁の場合は「001」、2桁の場合は「042」などと設定する場合
【イベントコード表示】

■条件分岐(変数): 【1】 V1[パスワード] が 9 以下 【2】 V1[パスワード] が 99 以下
-◇分岐: 【1】 [ V1[パスワード] が 9 以下 ]の場合↓
|■文字列操作:S1[パスワード文字] = "00\v[1]"
|■
-◇分岐: 【2】 [ V1[パスワード] が 99 以下 ]の場合↓
|■文字列操作:S1[パスワード文字] = "0\v[1]"
|■
-◇上記以外
|■文字列操作:S1[パスワード文字] = "\v[1]"
|■
◇分岐終了◇
■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 4バイト
■条件分岐(文字): 【1】 S0[[サンプル]一時文字列]が S1[パスワード文字] と同じ
         【2】 S0[[サンプル]一時文字列]が "" と同じ
-◇分岐: 【1】 [ S0[[サンプル]一時文字列] S1[パスワード文字] と同じ ]の場合↓
|■変数操作: このEvのセルフ変数0 = 1 + 0
|■文章:ロックを解除しました。
|■
-◇分岐: 【2】 [ S0[[サンプル]一時文字列] "" と同じ ]の場合↓
|■文章:入力をキャンセルしました。
|■
-◇上記以外
|■文章:パスワードが違います。
|■
◇分岐終了◇



イベントコマンド【文字列操作】の設定にて「キャンセル有」を設定した場合は、
以下のように設定してください。



【イベントコード表示】

■文字列操作:S2[入力文字列] = キーボード入力 10バイト [キャンセル可]
■条件分岐(変数): 【1】 Sys39:[読]キーボ入力状態 0=Enter -1=キャンセル が -1 と同じ
-◇分岐: 【1】 [ Sys39:[読]キーボ入力状態 0=Enter -1=キャンセル が 1 と同じ ]の場合↓
|■文章:入力をキャンセルしました。
|■
-◇上記以外
|■条件分岐(文字): 【1】 S2[入力文字列]が "abc" と同じ
          【2】 S2[入力文字列]が "" と同じ
|-◇分岐: 【1】 [ S2[入力文字列] "abc" と同じ ]の場合↓
||■変数操作: V2[ロック解除] = 1 + 0
||■文章:ロックを解除しました。
||■
|-◇分岐: 【2】 [ S2[入力文字列] "" と同じ ]の場合↓
||■文章:入力をキャンセルしました。
||■
|-◇上記以外
||■文章:パスワードが違います。
||■
|◇分岐終了◇
|■
◇分岐終了◇



入力したアルファベットの大文字小文字を区別しない場合は、
キーボード入力の後に大文字から小文字に変換する設定を行ってください。

また全角文字で「A」や「a」で入力した文字を半角文字の「a」に直す設定もできます。

▼半角の大文字「A」を小文字の「a」に変換する設定


【イベントコード表示】

■文字列操作:S2[入力文字列] = キーボード入力 10バイト
■文字列操作:S2[入力文字列] =<から文字列を置換> "A" → "a"
■文字列操作:S2[入力文字列] =<から文字列を置換> "A" → "a"
■文字列操作:S2[入力文字列] =<から文字列を置換> "a" → "a"
■文字列操作:S2[入力文字列] =<から文字列を置換> "B" → "b"
■文字列操作:S2[入力文字列] =<から文字列を置換> "B" → "b"
■文字列操作:S2[入力文字列] =<から文字列を置換> "b" → "b"
■文字列操作:S2[入力文字列] =<から文字列を置換> "C" → "c"
■文字列操作:S2[入力文字列] =<から文字列を置換> "C" → "c"
■文字列操作:S2[入力文字列] =<から文字列を置換> "c" → "c"
■条件分岐(文字): 【1】 S2[入力文字列]が "abc" と同じ
         【2】 S2[入力文字列]が "" と同じ
-◇分岐: 【1】 [ S2[入力文字列] "abc" と同じ ]の場合↓
|■変数操作: V2[ロック解除] = 1 + 0
|■文章:ロックを解除しました。
|■
-◇分岐: 【2】 [ S2[入力文字列] "" と同じ ]の場合↓
|■文章:入力をキャンセルしました。
|■
-◇上記以外
|■文章:パスワードが違います。
|■
◇分岐終了◇


▲トップへ戻る▲



◎関連ページ

◆パスワードイベントの基礎
┣◆[選択肢]を使ってパスワードを入力
┣◆[キーボード入力]を使ってパスワードを入力
┣◆[キー入力]を使ってパスワードを入力
┣◆オリジナルの入力画面でパスワードを入力
┣◆地面の色を変えて図形を作ってパスワードを入力
┣◆正しいパスワードを聞かないと扉が開かない(数字入力タイプ)
┗◆正しいパスワードを聞かないと扉が開かない(文字入力タイプ)

◆イベントコマンド【文字列操作】

YADOT-WOLFトップ  気紛れな空間へ戻る  メール