魔術師の巣窟(仮)
趣味のゲーム製作サイトです。 そのうちHPを作ると思いますので、ここは仮住まいです。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
乱数の話
今日は書くネタがないんですね。しかしせっかく連続更新できてるんだし、ここでストップするのも勿体ないので何か書きたいなぁと思って、「変数の話」をしようと思ったんですが、これは分りやすく書くのが非常に難しくて、諦めました。
で、代わりに乱数の話。というよりウディタの疑似乱数をどうやったら完全ランダムにできるかという話です。以前公式にも書き込みましたし一部の人には直で伝えたりしましたので知ってる人もいるかと思いますが、書くネタがないのでつらつら書いてみます。
実はコレ、解決方法は凄く簡単で、たった1行でできてしまうのですが。理論なんかをわざわざ小難しく書いてみたりします。

まず「疑似乱数」って何? って思う方もいらっしゃるかも知れませんね。
その名の通り疑似乱数は「疑似的な」乱数、つまりランダムなように見えるけど実際は一定の法則に従って生成されている数の事です。ある数X(これを疑似乱数の種と言います)に一定の計算をして、計算結果からまた別の計算で疑似乱数Yと次の乱数生成に使う種Zを取り出すという作業を繰り返す訳です。

気付いている人もいると思いますが、ウディタの基本システムで戦闘すると何回ロードしても敵が同じ行動を取りますよね。これは、この疑似乱数の種がセーブデータに仕込まれてるからです。この仕様には不満のある方もいらっしゃると思います。
実は、コンピューターの内部だけでは、疑似乱数しか生成できません。ですが、ツクールのランダムエンカウントなんかはどう考えても疑似乱数には見えませんよね。先ほど「コンピューターの内部」と言いましたが、つまり乱数をランダムにするには、外部の情報を入れてやればいい訳です。良く使われている方法は、現在時刻から乱数の種を取り出す方法です。ミリ秒単位で取り出せば、ユーザーにはランダムにしか見えません。
ところで、先ほど私は「一行で済む」と言いましたね。ですが、現在時刻を取り出して計算するとなると、どうしても数行はかかります。ではどうするべきなのか。ようやく答えを書く所までたどり着きました。長々と「早く言えよ」と思いながら読んでいた皆さん、お疲れ様でした。
では答え
コモン77「×◆メッセージウィンドウ処理」の23行目に、「■変数操作: このコモンEvセルフ30 = 0 ~ 0 」という行を入れる。
基本システム対応で書いてみましたが、毎フレーム実行の並列イベントなら何でも大丈夫です。
理論的にはどういう事かと言うと、上記の通り乱数は生成されるたびに種が変化して行きます。ですから、並列イベントでフレームごとに乱数を生成してやれば、種もどんどん変化する訳です。1/60秒とか1/30秒の速さで乱数生成の結果が変われば、人間にはランダムにしか見えなくなるのです。

さて、いかがだったでしょうか。短く書けば簡単に終わる事をこんな長々と書いてみましたが、「なるほどこんなやり方があったか」と思っていただければ幸いです。
「回りくどいんだよボケ」とか思っても心の奥にしまっておいて下さい。



んじゃーコメント返信、いっくよー。
>Bobbyさん
あのエラーメッセージって、あれですよね、ウディタで読込みの際に出るメッセージですよね。おそらくファイルが不正な時に出るのであろうと思うので、明らかにtxt2commonの変換ミスです。
ただ、独自拡張子だろうとなんだろうと、変換部分と読込み・保存・編集の部分は互いに(ほぼ)独立しているはずなので、原因が分からないんです。どこかで変数の初期化ミスをやったくらいしか考えられないのですが…。まぁもう少し調べてみます。

>sekさん
ありがとうございます。…と言っても公開した理由が理由なので素直に喜べないのが悲しい所ですが。
アイコンはまたちまちま描き進めてみましたが、当初程の勢いはなく多分夏休み中は無理です。とりあえず気長にお待ちください。
スポンサーサイト
コメント
この記事へのコメント
ランダム。このランダムにはお世話になりました。その節はありがとうございました。

1.0頂いて帰りますね。0.95βでワンボタン早送りを試してみたところ、恐ろしいほど綺麗に決まったので、そのお礼も言わせて頂いておきます。ありがとうございますー!
Rewさんのゲームも楽しみにさせていただいております。
2008/08/16 (土) 10:20:23 | URL | 藤田 #1wIl0x2Y[ 編集]
をを、これだけでランダム生成になるとは…!?
なんか話難しくてよく理解できてないかもしれないけど、とりあえず毎フレーム乱数を発生させることでセーブデータの種も変化する、ってことなんでしょうか…?理解力乏しくてごめんなさいorz

原因わからないならしゃあないですよー、ゆるゆるーとやって大丈夫だと思います(`・ω・´)b 現状でも危機的にまでは困ってませんし!

SRPGとアイコンに非常に期待しております( ゚∀゚)o彡゜
2008/08/16 (土) 12:16:26 | URL | Bobby #TezqYSu.[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2005 魔術師の巣窟(仮) all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。