ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Terrain とは
Unity の Terrain は大規模な屋外地形を効率的に作成・描画するためのコンポーネントです。Heightmap(高さマップ)と Splatmap(テクスチャの混ぜ方)を内部で持ち、専用シェーダーで GPU 描画されます。

1. Terrain オブジェクトを作成する
- メニュー GameObject > 3D Object > Terrain(または Hierarchy 右クリック > 3D Object > Terrain)
- シーンに 1000m × 1000m の平らな Terrain が生成される
- Inspector に Terrain コンポーネントと TerrainCollider が自動で付く
- Terrain ツールバー(ペイントブラシ / 山 / 草 / 木 アイコン)から地形編集を開始
2. Terrain ツール一覧
| ツール | 機能 | 主な設定 |
|---|---|---|
| Raise/Lower Terrain | クリックで盛り上げ、Shift で凹ませる | Brush Size / Opacity |
| Paint Height | 指定の高さに均す | Height(目標高さ) |
| Smooth Height | 凹凸を滑らかに | Strength |
| Stamp Terrain | ブラシ形状の高さを一気にスタンプ | Brush, Height, Subtract |
| Paint Texture | 草 / 岩 / 砂 などのテクスチャを塗る | Layer / Target Strength |
| Paint Trees | 樹木を植える(プレハブ) | Tree Density / Random Rotation |
| Paint Details | 草・小石(ビルボード) | Detail Distance |
| Wind / Bake | 風で揺らす / ライトベイク | Wind Speed, Bend |

3. Heightmap をインポートして地形を読み込む
外部の DEM データ(国土地理院など)や Photoshop で作ったグレースケール PNG/RAW を読み込めます。
- Terrain コンポーネントの歯車アイコン (Terrain Settings)を開く
- Texture Resolutions (On Terrain Data) > Heightmap Resolution を確認(513, 1025, 2049, 4097)
- Import Raw... ボタンから 16-bit Raw / PNG を選択
- Width / Height / Byte Order (Mac/Windows) を指定して Import
解像度設定のセオリー
- Terrain Width / Length: 大きすぎる地形は描画コストが高い → 1000m 程度を複数 Terrain で繋ぐのが現実的
- Heightmap Resolution: 1025 で実用。2 のべき乗 + 1 である必要
- Detail Resolution: 1024 程度。草を多く置く場合は 2048 でも OK
- Control Texture Resolution: テクスチャブレンドの解像度。512〜1024 で十分
- Base Texture Resolution: 遠景で使う合成テクスチャ。1024 で OK
4. Terrain Layer(テクスチャ)の設定
Paint Texture モードで使う草・岩・砂のテクスチャはTerrain Layer アセットとして登録します。
1. Project Window で右クリック > Create > Terrain Layer
2. Diffuse / Normal Map をドラッグ&ドロップ
3. Metallic / Smoothness / Specular を設定
4. Tile Size (m) を指定 (例: 8 × 8)
5. Terrain の Paint Texture モードで Layer リストに追加
ヒント:
- 最大 4 Layer/ピクセル しか同時に使えない (Splatmap RGBA)
- 5 枚以上使う場合は Terrain 内で領域を分けるか、Unity Terrain Tools の追加 splatmap を利用
- Normal Map を入れると遠景でも凹凸感が出る
5. 樹木(Trees)を植える
- Paint Trees モードに切替
- Edit Trees... > Add Tree で Tree プレハブ(SpeedTree / Standard Tree Creator / 任意プレハブ)を登録
- Brush Size / Tree Density / Tree Height でランダム変動を設定
- Shift + クリックで消去、Ctrl + クリックで特定の木種だけ消去

Tree LOD / Billboard 設定
- Tree コンポーネントの LOD Group で距離別メッシュを設定
- Terrain Settings > Tree Distance:木を描画する最大距離
- Billboard Start:この距離以降は板ポリ(ビルボード)に置換
- Fade Length:ビルボード切替時のフェード
- Max Mesh Trees:メッシュとして表示する最大本数
6. 草・小石(Details)
Paint Details モードで草や小石(メッシュ or ビルボード)を密度で配置します。
- Edit Details > Add Grass Texture(草テクスチャ) or Add Detail Mesh(メッシュ)
- Min/Max Width / Height でランダムスケール
- Healthy/Dry Color で色のバリエーション
- Bend Factor / Wave Tint で風揺れ表現
- Terrain Settings > Detail Distance で描画距離(重い場合は短く)
7. Terrain Settings の Performance 調整
| 項目 | 役割 | 推奨 |
|---|---|---|
| Pixel Error | 遠距離での Heightmap 解像度の許容誤差 | 5(軽量)/ 1(高品質) |
| Base Map Distance | 詳細テクスチャを使う距離 | 1000m(標準) |
| Cast Shadows | 地形が影を落とすか | 必要に応じて |
| Draw Instanced | GPU インスタンシング | ★ ON 推奨(軽量化) |
| Reflection Probes | 反射プローブの混合方式 | Blend Probes |
| Material | Terrain 用シェーダー | URP/HDRP の Terrain Lit |
8. スクリプトから Terrain を操作する
using UnityEngine;
public class TerrainSampler : MonoBehaviour
{
void Start()
{
Terrain terrain = Terrain.activeTerrain;
TerrainData data = terrain.terrainData;
// 中心点の高さ
Vector3 pos = terrain.transform.position;
float centerX = pos.x + data.size.x / 2f;
float centerZ = pos.z + data.size.z / 2f;
float h = terrain.SampleHeight(new Vector3(centerX, 0, centerZ));
Debug.Log($"中心の高さ: {h}m");
// Heightmap を配列で取得して書き換え
int res = data.heightmapResolution;
float[,] heights = data.GetHeights(0, 0, res, res);
for (int y = 0; y < res; y++)
for (int x = 0; x < res; x++)
heights[y, x] += 0.01f; // 全体を 1% 持ち上げ
data.SetHeights(0, 0, heights);
}
}
Unity 6 / 最新版での改善点
- Terrain Tools パッケージ(Package Manager 経由)でブラシが大幅強化(Noise / Erosion / Hydraulic Erosion)
- URP / HDRP の Terrain Lit シェーダーが標準化、Normal Map + Mask Map 対応
- Detail / Tree の GPU インスタンス描画がデフォルト ON で大量配置時の負荷低減
- Terrain Holes(穴あけ)対応で洞窟入口や谷を Terrain に直接開けられる
- Terrain と HD Render Pipeline の Decal Projector 組合せで道や苔の表現が容易
FAQ
Q: 複数 Terrain を繋いだら継ぎ目に段差ができる
A: Terrain Tools の Stitch Terrains ボタンを使うか、Neighbors 設定で隣接 Terrain を登録して同じ高さに揃えてください。
Q: Terrain が重い
A: Pixel Error を大きく / Detail Distance を短く / Draw Instanced を ON / Tree Distance を短くしてください。Static Batching も有効です。
Q: Heightmap を Photoshop で作る場合の注意
A: 16bit グレースケールのRAW 形式で保存。Little Endian (Windows) / Big Endian (Mac) を Import 時に合わせる必要があります。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?