乱数と定数

rの入力ボックス

 編集ツール側に、「r」と隣に書かれたエディットボックスがいくつかあります。これは、そのボックスには乱数式の入力が許可されている、という意味です。

 乱数の入力ボックスは、定数の入力ボックスも兼ねています。必ずしも乱数にしなければならないということではなく、値がいらなければ空に、定数で十分であれば定数をそのまま書きます。

表記方法

 二つの表記に対応しています。

 整数のみを受け付ける項目にもR乱数は使えます。その場合、四捨五入となるのか、切り捨てになるのかは項目によります。

■ 整数乱数 d

 d は dice の d だと思われます。D乱数はダイス、つまりサイコロを振ることによって得られる整数1〜Nの乱数です。以下の表現を乱数表記に変えます。

α面体のサイコロをβ個振って、γ足す

 αは面数、βは個数、γは定数です。これを乱数式に変えると、以下の通りになります。

βdα+γ

 数値、d、プラス記号、マイナス記号はすべて半角にします。

 1d6 にせよ 1d100 にせよ、乱数項の最低値は絶対値が 1 になることに注意して下さい。ゼロではありません。1d6 は 1〜6 になります。ですので、1d1 は 1 にしかなりません。

 その他、以下の規則があります。

■ 実数乱数 r

 r は random の r です。Desigeonが定義するR乱数は、コンピュータの世界では一般的な 0≦N<1 の値の範囲のランダム値を利用しています。この乱数は、小数点以下かなり細かいところまで乱数を発生させますが、最大値が1にはなりません。1の寸前まで行きます。だいたい0.99999999999999989くらいが最高値です。

 乱数そのものの機能としてはこれしかないのですが、例えばここに100を掛けるとパーセンテージが出て、ゲームの確率計算程度の処理は問題なく行えます。また、1.1倍から1.2倍の間といったように、整数に切り捨てないで中途半端なところまで細かく計算して欲しい場合にも、適当に細かく計算してくれます(ある程度細かいところまで落ちると丸められます)。たとえ整数のダメージが要求される場面でも、100のダメージを固定にするより、適度にばらつかせるために0.8〜1.2倍を掛けると、よりゲームらしく見えます。

 ということで、R乱数は「何倍して使うか」が設定のしどころになります。

 R乱数も、D乱数の表記と考え方は似ています。

α倍する実数乱数をβ回足して、γ足す

 αは乱数への乗数、βは回数、γは定数です。これを乱数式に変えると、以下の通りになります。

βrα+γ

 数値、d、プラス記号、マイナス記号はすべて半角にします。

 βは整数、αとγは小数の指定が可能です。省略した場合の規則やマイナスの使い方は、D乱数と同じです。

 D乱数と大きく違うところは、値が小数点以下まで細かく出ることと、βrα項の最低値がゼロであることです。

注意

■ フォーマットの入力検査

 入力は半角で行って下さい(大文字小文字は区別しません)。半角スペースはあっても(数字の間になければ)大丈夫だと思います。入力形式は、上記に挙げたもの以外のパターンはおそらく認識しません。

 編集ツール側では、入力された式の形が正しいかを判断していません。ゲームエンジン側では若干チェックしていますが、ほぼ素通りしてしまいます。異常な形の乱数式はゼロなどの固定値になってしまうことがほとんどです。場所によっては、「空」と判断されます。

 本来であれば、編集ツールの段階で入力フォーマットをチェックしたいところなのですが、サボっています……。

■ 乱数を用いるべきかの判断

 乱数の設定は意外に頭を悩ませます。乱数を書けることと、乱数を書くべきかということはまた別の話になります。私は、制作の選択肢を広げたいがために乱数をいろいろな箇所に記述できるようにしましたが、すべての箇所で乱数を使うことを前提としているのではありません。乱数の濫用はゲーム設計を困難にすることが往々にしてあると私は感じます。

 ある箇所で乱数を記述したら、別の数カ所で乱数がいらなくなった、という事例もあります。Desigeonでは、能力値自体が乱数によって値を変化させることができるため、ダメージ計算に乱数を使う必要さえないかもしれません。

 方法論としては、ひとまず定数を書いてゲームをテストし、数値のばらつきがなくて寂しいと感じたところだけを乱数に変えるという形もあると思います。あとは、形への思い入れでしょうか。1レベルのメイジの呪文には1d8のダメージがなくちゃダメなんだ、と言ったような。

 中途半端な話になりましたが、使いどころを適度に見極めたい、より使いやすい定数も積極的に使っていきたいです、というのがその主旨です。


Desigeonマニュアルトップ

熊恭太郎