2025/08/28 18:12 Making Minecraft Spherical

やっほー、ロボ子!今日のニュースは、Minecraftみたいなボクセルを球状の惑星にマッピングする「Blocky Planet」っていう技術デモの話じゃ。

面白そうですね、博士。Minecraftのブロックを球状にするとは、どういうことでしょうか?

それがね、ただの立方体を球体にするだけじゃなくて、惑星は手続き的に生成されて、完全に破壊可能なんだぞ!20種類以上のブロックを配置したり削除したりできるらしい。

すごい!手続き的に生成される惑星ですか。Unityのゲームエンジンを使っているんですね。

そうそう。しかも、Itch.ioで無料公開されてるから、ロボ子も遊んでみるといいぞ。Windows向けに最適化されてるけど、ブラウザでもプレイできるWebビルドもあるみたいじゃ。

試してみます!ところで博士、このゲームを作った動機は何だったんですか?

開発者はJordan Peckの技術デモに触発されたらしいぞ。手続き的なジオメトリとボクセルゲームが好きで、自分で再現してみたくなったんだって。ブロックテクスチャとか大規模な破壊とか、オリジナルに足りない機能も実装したかったみたいじゃな。

なるほど。それで、完成までどれくらいの期間がかかったんですか?

1ヶ月強で、週に15時間くらいかけたらしいぞ。一番の課題は球状化だったみたいじゃな。

球状化ですか。確かに、立方体を球体にするのは難しそうですね。

使ってる技術はUnity 6とC#で、UnityのJob systemとBurstコンパイラを多用してるらしいぞ。効率的に処理するために、並列処理をフル活用してるんじゃな。

Job systemとBurstコンパイラですか。パフォーマンスを上げるために重要な技術ですね。

そうじゃ。で、このゲームの球体構造の構築方法が面白いんじゃ。ブロックの中心が中心点からの距離内にあるかどうかでブロックを選択して、ブロックの垂直面が常に重力の方向と一致するように配置してるんだって。

なるほど。重力も考慮しているんですね。他に工夫した点はありますか?

2Dの正方形グリッドを3Dの球にマッピングするために、球を6つのセクターに分割して、各セクターに正方形をマッピングする「Quad Sphere」っていう方法を使ってるらしいぞ。これで歪みを軽減してるんだって。

Quad Sphereですか。初めて聞きました。歪みを減らすための工夫なんですね。

さらに、外側に移動するにつれてブロックの幅を維持するために、各レイヤーにブロックを追加してるんだって。ブロックの端が適切に揃うように、ブロックの数を整数倍で増やしてるらしいぞ。

細かい調整がされているんですね。ブロックアドレスについても説明がありますね。惑星全体の構造内のブロックデータの正確な位置を指定するために、セクター → シェル → チャンク → ブロックの順で構成されているんですね。

そうそう。隣接ブロックを効率的に見つける機能も重要じゃ。垂直シェル境界とセクター境界を考慮する必要があるから、ちょっと複雑じゃな。

確かに、境界を跨ぐ場合は特別な処理が必要になりますね。

プレイヤーが惑星から落ちないように、カスタム重力を適用してプレイヤーを惑星の中心に向かって加速させてるのもポイントじゃ。SPACEキーを押すと、重力に対抗するスラスターが作動して、軌道に乗ることもできるらしいぞ。

重力まで再現されているとは、すごいですね!

地形生成には、滑らかなノイズを使って地形の高さを決定してるらしいぞ。3Dノイズ関数を球上でサンプリングすることで、シームレスな地形を生成してるんだって。極からの角度距離に基づいて、森林と北極の2つのバイオームを生成してるのも面白いな。

バイオームまであるんですね。本当に細かいところまで作り込まれていますね。

今後の作業としては、複数の惑星/月、チャンクベースの重力、惑星の衝突、洞窟の生成、適切なバイオーム、ボクセルベースの照明などを考えてるみたいじゃ。夢が広がるのじゃ!

今後の開発も楽しみですね。博士、今日は勉強になりました。ありがとうございました。

どういたしまして。最後に一つ、ロボ子。このゲーム、ブロックを積み重ねて地球を作れるけど…地球温暖化対策はされてないみたいじゃぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。