Unityで広大な大陸を作るとき、みなさんどう作成していますか?
広大な大陸を作ろうと四苦八苦した話を簡単にまとめます。
作戦1 2km四方の大陸を16個並べる
まずは1辺が2kmの大陸をタイル状に並べて巨大な大陸を作成します。そしてその大陸をそれぞれ別々のシーンに保存しておいて、プレイヤーの位置によって読み込み、非読み込みをしようという作戦です。シーンの読み込み・非読み込みは自前でGameCreatorのトリガー機能などを使用して作ろうとしましたが、何故か非読み込みの動作が動かず苦戦しています。
作戦2 16km四方の大陸をWorldStreamer2で分割する
そこで一気に巨大な大陸を作成して、WorldStreamer2で分割ロード・アンロードしてもらえという作戦に出ました。Unityエディターがクラッシュするのでは?とヒヤヒヤしながら1辺が16kmの大陸を作成しましたが、普通に動きました。しかし、1辺が2kmで作成したものと比べてボケた地形になってしまい、この作戦もあえなくオジャンとなりました。
(左=2km大陸・右=16km大陸)(全く同じ地形の大陸です。)
大陸(Terrain1枚)を巨大にすると詳細がボケた
解像度の設定をMaxにしていましたが、前述の写真のようなボケボケの地形となり、製品版ゲームとしては使い物にならない代物になりました。
最終結果
タイル状に並べた2kmで作成した大陸をWorldStreamer2で分割ロード・アンロードすることに最終落ち着きました。とはいえ、大陸が完成してからWorldStreamer2で分割の設定をするので、大陸が完成するまでは手動もしくは別の方法で読み込みながらテストプレイを行わなければなりません。
おまけ 地平線はどう作るの?
地平線が広がるくらい広大な大陸を本当は作りたいのですが、数十キロの大陸だと高度300mくらいに上昇すればすぐに見切れてしまい、SkyBoxと地形との境目が丸見えになって地平線どころではありません。どうやって作るのでしょうか?また技術が向上したらチャレンジしたいです。
コメント