SeedMapView
JA

シードマップ › ツール › テキストからシード値への変換

Minecraft テキストからシード値への変換

言葉やテキストのシード値を、ゲームが使う数値のシード値に変換します。Java版とまったく同じ動作です。

数値シード: マップで開く

テキストからシード値への変換

シードの欄に「Glacier」のような言葉を入力したことはありませんか? Minecraft は、ワールドを作る前にそのテキストを数値に変換します。このテキストからシード値への変換ツールなら、その数値がすぐにわかります。言葉やフレーズを入力すると、Java版が実際に使う数値のシード値が表示されます。そのままマップで開いたり、共有したり、数値しか受け付けない他のツールに貼り付けたりできます。

テキストからシード値への変換の使い方

  1. ゲーム内で入力したとおりに、テキストのシード値を入力します。
  2. ボックスの下に表示される数値のシード値を読み取ります。
  3. 数値をコピーするか、マップで開きます。

大文字と小文字は区別されます。「Glacier」と「glacier」は別のシード値です。途中のスペースも影響しますが、最新バージョンでは、先頭と末尾のスペースは取り除かれます。

Java版がテキストをシード値にするしくみ

Java版は、まず入力が数値かどうかを確認します。64ビットに収まる整数なら、ゲームはそのまま使います。先頭のマイナス記号やプラス記号があっても構いません。

それ以外はテキストです。テキストには、Javaの String.hashCode() が使われます。このメソッドは各文字を順にたどり、途中の合計に31を掛けて、文字コードを足します。結果は32ビットの符号つき整数に丸められます。

テキスト数値シード
Glacier1772835215
glacier108181935
minecraft695073197

64ビットに収まらない大きな数値も、テキストと同様に扱われます。つまり、これも hashCode() を通ります。

テキストのシード値に限りがある理由

hashCode() は32ビットの数値を返すため、テキストのシード値は約4.29×10⁹のワールドにしか届きません。数値のシード値は、64ビットの全範囲を使えます。これは約18.4×10¹⁸のワールドにあたります。

つまり、ほとんどのワールドはテキストでは決して手に入りません。いちばん幅広く選びたいなら、数値を使いましょう。

異なるテキストが同じ数値になることもあり、これを衝突と呼びます。たとえば、フレーズ creashaks organzine と pollinating sandboxes はどちらも0にハッシュされます。シード値 0 と同じワールドが生成されます。

コツと使い道

  • シード値をわかりやすく共有する。 数値なら、大文字小文字の混乱や入力ミスを避けられます。
  • シードツールを使う。 多くのマップや検索ツールは、数値を必要とします。
  • ワールドに名前をつける。 自分の名前やサーバー名を入れて、どんなワールドになるか見てみましょう。
  • 有名なシード値を調べる。 変換してマップで開けば、なぜ有名なのかがわかります。

よくある間違いと統合版について

よくある間違いは、大文字小文字を変えてしまうことです。「Minecraft」と「minecraft」は別の数値になります。もうひとつは、コピー&ペーストで末尾のタブなどの見えない文字が入ることです。

この変換ツールはJava版専用です。統合版もテキストのシード値を受け付けますが、統合版でのテキストの変換方法は確認できていないため、統合版の値は表示しません。統合版で遊ぶなら、ワールド設定に表示される数値のシード値を使ってください。

1.18以降、同じ64ビットの数値なら、Java版と統合版で地形とバイオームは共通です。構造物はエディションによって異なります。

計算のしくみを簡単に

ツールを使うのに計算を知る必要はありません。それでも、小さな例があるとわかりやすいでしょう。テキスト「ab」の場合、ゲームは0から始めます。次に「a」のコード97を取ります。続いて97に31を掛け、「b」のコード98を足します。結果は3105です。

長いテキストでは、同じ手順を文字ごとに繰り返します。合計が急速に大きくなるため、32ビットの範囲を超えます。その場合、値は丸められて戻ります。多くのテキストのシード値が負の数になるのはこのためです。

手順は決まっているので、同じテキストなら、どのコンピューターでも常に同じシード値になります。

つまり、有名なテキストのシード値も自分で確認できます。入力すれば、変換ツールがゲームとまったく同じ手順を繰り返します。

よくある質問

"Glacier" の数値シードは何ですか?

Java版では、テキスト Glacier は1772835215になります。

テキストのシード値は大文字小文字を区別しますか?

はい。文字ごとに文字コードが違うので、大文字小文字を変えると数値が変わります。

なぜテキストのシード値が負の数になるのですか?

String.hashCode() は32ビットの符号つき整数を返すため、およそ半分のテキストが負の数になります。

数値もhashCodeを通りますか?

いいえ。64ビットに収まる整数はそのまま使われます。ハッシュ化されるのは、テキストと大きすぎる数値だけです。

統合版でも使えますか?

このツールはJava版専用です。統合版のワールド設定で、数値のシード値を確認してください。

異なる2つのテキストが同じシード値になることはありますか?

はい。テキストのシード値は、取りうる値が約4.29×10⁹しかないので、多くのフレーズが同じ数値になります。