シード値

提供: Minecraft Wiki
移動先: 案内検索

Minecraftシード値は、1文字以上の (数字を含む) 文字からなる値であり、Minecraft のワールド (世界) を生成する際の基礎として用いられるものである[1]

ワールド生成[編集 | ソースを編集]

ゲームで新しいワールドを生成するとき、あるアルゴリズムが用いられる。このアルゴリズムでは、その後でワールドがどのような形になるのかを決定するのに用いられる疑似乱数の値を出力する。ただこの生成アルゴリズムで同じ値を初期地点 (疑似乱数の「シード」) として用いると、最終的な出力は常に同じ値になる。
そういうわけで、たったひとつの値で全く異なるワールドを簡単に生成する、シード値があるのだ。

ワールド生成アルゴリズムが更新されると、同じシード値で同じ地形を生成されなくなる。これが異なるバージョンのゲームでは同じシード値でも同じワールドにならない理由になる。

ワールドのシード値はワールドが生成される際に設定される。通常は自動的に決定される (その場合はシステム時刻をシード値として用いる) が、ユーザーが指定することもできる。シード値を設定して再使用すると、そのワールドのリプレイができたり、既知のシード値を用いて他のプレイヤーと同じワールドで遊んだりできる。数字だけでなく単語や語句もシード値になり、負の数も指定可能である。

保存されたワールドのシード値か生成アルゴリズムが変更されると、新規生成チャンクは新しいシード値に基づき、古いシード値によるチャンクとは合致しなくなる (この現象はAdventure Updateにて広く観測された)。シード値と生成アルゴリズムが同じなら、チャンクの削除により再生成されるが、どちらかが変わっていると生成されるチャンクも変更される。

シード値は生成アルゴリズムが用いる単なる数値であって様々なワールドの意味合いそのものではないことは特に注意したい。特定のシード値を用いても、結果として生成されるワールドが必ずその値と関係するというわけではない。一例をあげるとバイオームの名称をシード値としても、生成されるワールドの主要部がそのバイオームであるという保証はない。

シード値の決定[編集 | ソースを編集]

ワールドのシード値を見るには、コマンド /seed を用いねばならない。ただしシングルプレイでは、このコマンドはチートの有効無効によらず常に使用可能である。

技術的詳細[編集 | ソースを編集]

JavaのString.hashCode()関数が、シード値に数値以外を指定したときに数値へと変換するのに用いられる。この関数の返値の型により Minecraft の生成され得るワールドが限定される (およそ42億通り)。シード値に数値を直接指定する、あるいは Minecraft にシード値の生成をさせる (システム時刻の値を用いる) ことで、生成されるワールドの制約を取り除くことができる (およそ1千8百京通り)。

歴史[編集 | ソースを編集]

Beta
1.3シード値をユーザーが指定することができるようになった。
1.8.1デバッグ画面にシード値が表示されるようになった。
正式版
1.2マルチプレイのサーバーがクライアントにシード値を送信しないよう変更された。
1.3.112w18aシングルプレイのクライアント-サーバーモデル化により、ワールドのシード値がデバッグ画面に表示されなくなった。
12w21aコマンド /seed が追加され、現在のワールドのシード値を表示できるようになった。

外部リンク[編集 | ソースを編集]

シード値抽出[編集 | ソースを編集]

SeedScope.net: セーブファイルのアップロードを必要とするWebアプリ
ランダムシードリーダー: Javaのローカルツール

脚注[編集 | ソースを編集]