RPGツクール2000/スイッチ・変数【サイトトップへ戻る】
■「乱数」って何?
(更新:2020/06/28)


イベントコマンド:変数の操作にある「乱数」について説明します。



ショートカット
■乱数とは?
■条件分岐の設定について
■同じ値を連続させない
■一括設定について
■徐々に乱数の幅を変える設定
■ランダムイベントへの固執に注意!


  
■乱数とは?

乱数とはコンピュータが自動的に値を決めてくれる機能の事を言います。

例えば…
◆変数の操作:[0001]代入,乱数[1〜100]
を設定すると、このイベントを実行する度に変数0001番には、
「84」「21」「9」「56」などと「1〜100」の間のどれか1つの値が設定されます。



この乱数を使う事でランダム性のあるイベントを作る事ができます。

例えばサイコロイベントを作ったり、
町の人のセリフが話す度に変わるイベントなどが作れます。



▼サイコロイベント
◆変数の操作:[0001:乱数]代入,乱数[1〜6]
◆文章:\v[1]

実行する度に「1」「2」「3」「4」「5」「6」のいずれかが表示されます。



▼話す度にセリフがランダムに変わるイベント
◆変数の操作:[0001:乱数]代入,乱数[0〜2]
◆条件分岐:変数[0001:乱数]が0
 ◆文章:こんにちわ!
 ◆
:分岐終了
◆条件分岐:変数[0001:乱数]が1
 ◆文章:良い天気ですね!
 ◆
:分岐終了
◆条件分岐:変数[0001:乱数]が2
 ◆文章:この村は平和だ!
 ◆
:分岐終了



セリフがランダムに変わるイベントなどの設定方法は、
1〜2個の変数を使った設定例のページにて詳しく紹介しています。
【1〜2個の変数を使った設定例のページを開く】


▲トップへ戻る▲


  
■条件分岐の設定について

条件分岐を使用すると乱数で作られた値ごとに、
イベントの処理内容を変える事ができます。

◆変数の操作:[0001:乱数]代入,乱数[0〜2]
◆条件分岐:変数[0001:乱数]が0
 ◆アイテムの増減:ポーションを1増やす
 ◆
◆条件分岐:変数[0001:乱数]が1
 ◆アイテムの増減:アンチドーテを1増やす
 ◆
:分岐終了
◆条件分岐:変数[0001:乱数]が2
 ◆アイテムの増減:ハイポーションを1増やす
 ◆
:分岐終了



条件分岐の設定方法を変える事で、発生する確率を変える事もできます。

アイテムの種類 取得確率 条件分岐の値
ポーション 50% 50以下
アンチドーテ 40% 51〜90
ハイポーション 10% 91以上

◆変数の操作:[0001:乱数]代入,乱数[1〜100]
◆条件分岐:変数[0001:乱数]が50以下
 ◆アイテムの増減:ポーションを1増やす
 ◆
:分岐終了
◆条件分岐:変数[0001:乱数]が51以上
 ◆条件分岐:変数[0001:乱数]が90以下
  ◆アイテムの増減:アンチドーテを1増やす
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0001:乱数]が91以上
 ◆アイテムの増減:ハイポーションを1増やす
 ◆
:分岐終了


▲トップへ戻る▲


  
■同じ値を連続させない

単に…
◆変数の操作:[0001:乱数]代入,乱数[1〜100]
を設定した場合は、1回目と2回目が同じ値になる事があります。



同じ値を2回連続で発生させないようにする場合は…
◆変数の操作:[0001:乱数]加算,乱数[1〜99]
◆条件分岐:[0001:乱数]が101以上
 ◆変数の操作:[0001:乱数]減算,100
 ◆
:分岐終了
と言った感じに設定してください。

この場合は、最初の値が「32」の時には、次の値は「32以外」になります。


▲トップへ戻る▲


  
■一括設定について

乱数を一括で設定する場合…
◆変数の操作:[0001〜0003]代入,乱数[0〜99]
と設定すると…
変数0001番=12
変数0002番=88
変数0003番=37

と言った感じに、変数ごとに異なる乱数の値が設定されます。



もしも全ての変数に同じ乱数の値を設定したい時には…
◆変数の操作:[0001]代入,乱数[0〜99]
◆変数の操作:[0002〜0003]代入,変数[0001]の値
と設定してください。


▲トップへ戻る▲


  
■徐々に乱数の幅を変える設定

乱数の設定では「乱数[0〜99]」などと乱数の幅を決めておく必要があります。

しかし自作エンカウントなどで、
歩いていると徐々に敵の出現率を上げていきたい時には、
歩く度に[0〜99][0〜98][0〜97]と乱数の幅を小さくする必要があり、
大量の乱数の設定が必要になります。

このような場合は、予め[0〜999999]の乱数を実行しておき、
剰余を使って決められた乱数の範囲に変わるようにすると良いでしょう。
【剰余の説明を見る】



◆変数の操作:[0001:乱数]代入,乱数[0〜999999]
◆変数の操作:[0001:乱数]剰余,変数[0002]の値

この設定では変数0002番の値を「86」にすると、乱数の範囲が「0〜85」になります。

そして変数0002番の値を「85」「84」「83」と徐々に小さくすると、
乱数の範囲も「0〜84」「0〜83」「0〜82」と徐々に小さくなります。



この設定方法では乱数の範囲が「0〜85」などと「0」から始まる範囲になります。

もしも「10〜85」などと最小値が「0」ではない場合は、
変数0002番の値を「76」にした上で…
◆変数の操作:[0001:乱数]代入,乱数[0〜999999]
◆変数の操作:[0001:乱数]剰余,変数[0002]の値
◆変数の操作:[0001:乱数]加算,10
などと設定してください。



なお、この剰余を使った設定は値によって発生する確率が変わります。

例えば「変数0002番=800000(乱数の範囲[0〜799999])」の場合は、
「剰余800000」によって「800000〜999999」だった値は「0〜199999」になります。

そのため「200000〜799999」になる確率は「100万分の1」ですが、
「0〜199999」になる確率は「100万分の2」となり、
「0〜199999」の方が発生する確率が2倍になります。

乱数の範囲が広いと、上記のような問題が発生しますが、
乱数の範囲が狭い場合、例えば「変数0002番=60(乱数の範囲[0〜59])」の場合は、
「0〜39」になる確率は「100万分の16667」、
「40〜59」になる確率は「100万分の16666」とわずかな差になるので、
乱数の範囲が狭い場合は、あまり気にする必要はないでしょう。


▲トップへ戻る▲


  
■ランダムイベントへの固執に注意!

ランダムイベントが必ずしも「良い結果を生む」とは限りません。



例えば宝箱の中身がランダムに変わる設定の場合、
同じ宝箱を2回開けないとランダムになっている事が分かりません。

通常は1個の宝箱でアイテムが1回しか取れないので、
周回プレーなどが無い限り、ランダム設定である意味がありません。

また宝箱の中身がランダムに変わると、
運悪くポーション(HP小回復)しか取れなかったり、
運良くミラクルドロップ(HP・MP全回復)が何度も取れたり
と、
取得するアイテムによってゲームの難易度が大きく変わる可能性があり、
ゲームバランスの調整が難しくなります。



町の人のセリフがキャラごとに3パターンのどれかが表示される場合は、
町の人の数だけセリフを3パターンずつ設定する必要があり、
セリフの設定にかなりの手間がかかります。

また町の人が何らかの有益な情報を話すかもしれないので、
プレイヤーとしては町の人ごとに何度も会話する必要があり、
プレイヤーとしてもかなりの手間がかかります。

結局ランダムでセリフが変わる仕様は、制作者としてもプレイヤーとしても、
ただただ面倒臭い仕様になってしまうかもしれません。

例えば
「必ず3パターンではなく、2パターンや1パータンのみも作る」
「有益な情報を話す者はランダム設定にしない」

などと、状況に応じてランダム設定を使い分ける事で、
制作者負担もプレイヤー負担も軽減させる事ができます。



ランダムイベント=プレイヤーが喜ぶ」とは限らないので、
ゲームバランスや制作の手間などを考慮して、
必要に応じてランダムイベントを設定した方が良いでしょう。


▲トップへ戻る▲



◎関連ページ

●「乱数」って何?
┗○擬似乱数の作成

●1〜2個の変数を使った設定例
●イベントコマンド:変数の操作
●「変数」って何?
●「剰余」って何?
●一括の活用
●自作エンカウント
●雷イベント
●天候を変える

YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール