現実世界の地図データを活用したオープンワールドの自動生成

現在弊社で鋭意開発中のJoggleは、プレイヤーがスマホの前でその場ジョギングをすることによってキャラクターを動かすという世界初のフィットネスRPGです。
このゲームでは、現実世界の地図情報をオープンワールドの地形として活用しており、山や海など、地形の起伏はすべて現実世界の地図データが元になっています。
これはどのような技術に支えられているのでしょうか?
DEM (Digital Elevation Model)
地球の地形の起伏に関する情報は一般的にDEM(数値標高モデル)と呼ばれています。
地表面を等間隔の正方形に区切り、それぞれの正方形に中心点の標高値を持たせたデータです。
例として、富士山周辺のDEMを貼ってみました。
黒い点のように見えるのが富士山頂です。
一般的な地図には描かれていない精細な地形の起伏を確認できます。

Joggleの地形生成には、DEMが使われています。
プレイヤーの座標情報からその周囲のDEMを取得し、瞬時にその3Dモデルを生成します。
DEMは多くの地図作製機関から有償または無償で配布されており、全世界を網羅するフリーのDEMを複数の機関から入手可能です。
有償のDEMは上記のフリーのDEMよりも高い分解能と品質を誇っていますが、非常に高価である場合がほとんどです。
ゲームで活用するには、フリーもしくは安価なDEMで十分でしょう。
ちなみに、フリーのDEMは地球だけではなく火星版も存在してます。
いつかJoggleの火星版を開発することができるかも知れません。
パーリンノイズ
ただし、現実世界の地形の起伏をゲームにそのまま使用してみると、どうしても退屈になりがちです。
関東平野のようなどこまでも平らな土地では、起伏が感じられない単調な地形が延々と続くことになります。
そこでJoggleでは、現実世界の起伏に少しノイズを与えることにより、単調さを克服しました。
このようなとき、ゲーム開発ではPerlin noise(パーリンノイズ)という技法がよく用いられます。
パーリンノイズとは、どこまでも続くランダムかつ自然なノイズを簡単な計算で得ることができるアルゴリズムです。
DEMから得られる現実の地形の起伏に、細かなパーリンノイズを混ぜることで、常に刺激に富んだ地形をプレイヤーに与えています。



植物の自動生成
1/10サイズの地球を採用しているとはいえ、それだけの広さのあるオープンワールドに、何十億本もの木を一本一本植えていくことは現実的ではありません。
木や岩もまた、アルゴリズムにより自動生成されています。
このようなオブジェクトを完全なランダムで並べてしまうと、いかにも人工的な風景になります。
実際の植物の生え方は均一ではなく、植物が密集している箇所とまばらな箇所が適度に繰り返されていることが普通です。
ここでもまた、パーリンノイズを活用できます。
ノイズが白く見える辺りに植物を密集させ、ノイズが黒く見える辺りには植物を植えないようにすれば、完全なランダムよりもはるかに自然な風景になります。
もちろんそんな単純な話ではありませんが、ざっくりと言えば、そのような考え方がベースになっています。
ちなみに、世界的に有名ゲームであるマインクラフトの広大な地図もパーリンノイズにより生成されています。
ワールド内の各ブロックの標高だけではなく、「バイオーム」と呼ばれるエリアの種別、鉱石の分布、村などの特定の構造物の位置、といった情報が、すべてノイズから生み出されています。


"Joggle" - Fitness アプリのダウンロードはこちらから
Joggleは、スマホだけで楽しく運動できる、新しいジョギング体験です。あなたの走るスピードや顔の向きで、3D空間を走るキャラクターを操作し、オープンワールドメタバースの世界を冒険しましょう。運動が苦手な人にもオススメで、その場ジョギングで健康的なライフスタイルを手軽に始められます。
地図データを活用したUnity開発に参加させてください!!
Vitalify Asiaでは、Unityによる先進的な技術を使用したアプリを日々開発しています。
ゲーム開発、AR/VRアプリ開発、2Dイラスト制作、3Dモデリングを得意としています。
上記以外にも幅広い分野でのアプリケーション開発が可能ですので、お気軽にお問い合わせください。


1,000社以上の事業成長を支えた圧倒的な『スピードと柔軟性』で、御社のアイデアを最短で形にします。まずは無料で壁打ちしませんか?
無料相談はこちら「Unity3DTech」の関連記事

次世代AR技術を使用したバーチャル水槽
次世代AR技術であるVPS (Visual Positioning System)を使用したバーチャル水槽アプリの紹介です。 一度設置した水槽の位置をアプリが記憶しているため、次回起動時に同じ位置に水槽を再び表示することができます。

遅ればせながらChatGPTの回答を3Dキャラに喋らせて会話してみた
今盛り上がっているChatGPTを使って、ベタですが3Dキャラクターと対話可能なデモアプリを開発してみました。利用している技術について紹介します。

フィットネスゲームJoggleの今日までの歩み
現在弊社で開発中のフィットネススマホゲーム、Joggleの今日までの開発の歩みを振り返ってみました。