RPGツクール2000/スイッチ・変数
■「乱数」って何?
(更新:2015/11/28)


イベントコマンド:変数の操作の中に乱数と言う設定があります。



乱数とはコンピューターが自動的に値を作成する機能の事を言います。

例えば、
◆変数の操作:[0001]代入,乱数[1〜100]
を設定しますと、このイベントを実行する度に、
「84」「21」「9」「56」「12」「94」などと、
変数0001番に「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」の時には、
次の値は「1〜31、33〜100」のいずれかの値になります。



☆一括設定について
乱数を一括で設定する場合、
◆変数の操作:[0001〜0005]代入,乱数[0〜99]
と設定しますと、
変数0001番=12
変数0002番=88
と言った感じに、変数ごとに異なる乱数の値が設定されます。

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



☆徐々に乱数の幅を変える設定例
乱数の設定では、乱数[0〜99]などと乱数の幅を決めておく必要があります。

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

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



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


この設定では、変数0002番の値を「86」にしますと、
乱数の範囲(変数0001番の値)は[0〜85]になります。

主人公が移動する度に乱数の範囲を小さくしたい時には、
移動する度に変数0002番の値を「85」「84」と1ずつ減らしていけば、
乱数の範囲(変数0001番の値)も[0〜84]→[0〜83]と徐々に小さくなります。



☆ランダムイベントへの固執に注意!
ランダムイベントが必ずしも「良い結果を生む」とは限りません。

例えば宝箱の中身が変わるイベントなどは、
同じ宝箱を2回開けないとランダムで中身が変わっている事が分かりません。
つまりやり直しの少ないゲームや周回プレイが無いゲームでは、
宝箱の中身がランダムで変わる事すら気付かれない可能性があり、
ランダム設定が無意味になる場合があります。

また宝箱の中身がランダムで変わると、
運悪くポーション(HP小回復)が続いたり、
運良くミラクルドロップ(HP・MP全回復)が続いたりと、
プレイヤーごとにゲームの難易度が大きく変わる可能性があり、
ゲームバランスの調整が難しくなります。

さらにランダム設定にこだわって、
人との会話や宝箱の中身をランダムに変えるイベントを大量に設定した結果、
制作時間が大幅にかかり、中々作品が完成しなくなる場合があります。
最終的にランダム設定の負担から制作を中断してしまう事もあります。

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



◎関連ページ
 ●「乱数」って何?
 ○擬似乱数の作成

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


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