2019.12.02Unityでオープンワールドゲームを作るときなど、広大な地形を扱う場合はほぼ確実にTerrain(テレイン)機能を使うことになると思います。好きな地形をUnityエディタ上で手軽に作れるのはとても便利ですよね。Terrainの大きなデメリットとして「何も考えずに使うと描画処理が重くなってしまう」という点があります。Terrainで綺麗な地形を作ったのに、それを使ったらゲームの動作がモッサリしてしまった...なんてことはなるべく避けたいものです。そこで今回はTerrainを少しでも軽くするための方法について書きます。紹介するやり方は主に次の2つです。設定項目まとめ軽いTerrainにするための地形の作り方なるべく平坦な部分を多くする木や草を生やしすぎないおわりに:設定・作り方次第でTerrainは軽くなるTerrainを少しでも軽くするための設定方法では、まずは設定によって重いTerrainの描画コストを下げる方法を紹介します。ヒエラルキーでTerrainを選択して設定タブ(下図)を開きましょう。並んだ項目の中で、主にTerrainの描画コストに関係する項目は次のとおりです。各設定項目の詳細ピクセル許容誤差ピクセル許容誤差は、簡単に言えば「遠くの地形を正確に描画するかどうか」を決める設定です。この値が大きいほど遠くの地形の描画が雑になりますが、その分描画が高速になります。デフォルトの値「5」はあまりにも正確すぎるので、軽さ重視したければかなり大きめの値を設定してしまってOKです。私はいつも「25」~「50」くらいに設定しています。ベースマップ距離ベースマップ距離は、指定した距離まで「テクスチャを最大解像度で表示」します。この値が500なら、500mまではテクスチャをくっきりと綺麗に表示する500m以降はボヤけた雑なテクスチャを表示するということです。当然ながらテクスチャは雑に描画するほど処理が軽くなるため、この値を小さくすればその分だけ描画が早くなります。テクスチャはTerrainの見た目に大きく影響するので、その辺はうまく調整しましょう。ディテール表示距離ここで設定した距離まで草を表示します。表示距離が短いほど描画コストが下がります。草が全くない場合は関係ないです。草の密度を指定します。値が小さいほど軽くなります。した距離まで木を表示させます。デフォルトだとかなり遠くの木も見えるようになっているので、もっと小さい値にしておくことをオススメします。木を生やさない場合は無関係です。木をビルボード表示(=メッシュではなく、ハリボテみたいに表示)する距離です。ここの値よりも遠くの木はビルボード表示されるようになります。ビルボード表示は木を普通に表示するよりも軽いので、ここの値が小さいほど軽いです。こちらも木を生やさない場合は無関係。木を普通に表示(つまりメッシュとして表示)する数。「ビルボード開始距離」より近い木であっても、ここで設定した数を超えた分はビルボード表示されるようになります。当然ながら値が少ないほど高速です。木を生やさない場合は関係ありません。横幅、奥行き、高さTerrainのサイズです。値が小さいほど軽くなるので、必要以上に大きくしない方が無難だと思います。この設定項目は必ず最初に設定してください。地形を編集してからここの値を変更すると、せっかく作った地形がゆがんでしまう場合があります。パッチごとのディテール解像度1回のドローコールで描画される範囲のサイズです。値は8~128の間で設定可能で、大きいほど描画コストが下がります。ハイトマップ解像度ハイトマップ解像度は、ザックリ言えばTerrainのメッシュの細かさです。値が小さいほどメッシュが大きくなります。メッシュが大きいと地形の凸凹を大まかにしか表現できませんが、その分描画が高速になります。33~4097までの値のうち「2のべき乗+1」の値が設定可能です(例えば257、513など)。凸凹の少ない地形であれば129とかにしても全然問題ないと思います。ちなみにこの設定項目も最初に設定しておくことをオススメします。設定項目まとめ以上をまとめると、次のように設定すればTerrainが軽くなります。ピクセル許容誤差を上げるベースマップ距離を下げるディテール表示距離を下げるディテールオブオブジェクト密度を下げる樹木表示距離を下げるビルボード開始距離を下げるメッシュの最大樹木数を下げる横幅、奥行き、高さを小さくするパッチごとのディテール解像度を上げるハイトマップ解像度を下げる軽いTerrainにするための地形の作り方さて、次は地形の作り方によってTerrainを軽くする方法です。Terrainを少しでも軽くするための地形の作り方は次の2つです。平坦な地形にする木や草を生やしすぎないなるべく平坦な部分を多くするまず1つ目はなるべく平坦な部分を多くするということです。Terrainで凸凹部分を作ると、その周辺はポリゴン数が多くなります。したがって平坦な部分が多いほど処理が軽くなるというわけです。木や草を生やしすぎない次に2つ目は、当たり前かもしれませんが木や草を生やしすぎないのも大きなポイントです。デフォルト設定だとどうしてもモッサリと木や草を生やしてしまいがちですが、生やし方を少しまばらにするだけでも違ってくると思います。木は生やしすぎるとドローコールがとんでもない値になるので気を付けたほうが良いでしょう。おわりに:設定・作り方次第でTerrainは軽くなる以上、Terrainを少しでも軽くするための方法をご紹介しました。何かとTerrainは重いと言われがちですが、設定や作り方次第ではゲームの動作に支障ない程度には軽くなります。「Terrain使ったらゲームが重くなった...」とお困りだった方は、ぜひその辺を見直していただければと思います。Pocketくろくまくろくまそふと関連記事ゲーム制作メモウディタからUnityへの乗り換えガイドTwitter等を見ていると、最近は「ウディタ使いだけどUnityに興味がある」という人が増えているようです。2D」を使うと楽に作れるということを覚えたのでメモしておきます。Unityで次のような2Dゲーム用の通路を作る...ゲーム制作メモ【Unity】カメラをズームさせる方法Unityではカメラのズームを簡単に行えるということを最近知りました。この記事ではそのやり方を説明します。2019年版2019.08.06ゲームに使えるフリーフォントまとめ2019.06.19【Unity】JSONを使ったセーブ・ロード処理2019.03.232019.06.04【Unity】AIで自動行動する敵キャラクターの作り方2020.01.022020.01.02【ウディタ】Game.exeのアイコンを変更する方法2018.06.03。