ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Unity Terrain とは
Unity の Terrain はゲーム内の地形 (山・丘・平原・河川) をブラシで描く専用システムです。Hierarchy → 3D Object → Terrain で 1000m 四方の平地が生成され、Inspector のツールバーから「持ち上げる」「平らにする」「テクスチャを塗る」「木を生やす」「草を植える」といった編集が直感的に行えます。

Terrain 作成手順
- Hierarchy 右クリック → 3D Object → Terrain
- シーンビューに大きな白い平面が出現 (初期 1000m × 1000m × 600m)
- Inspector の Terrain コンポーネント → 山型ツールバーから各ブラシ選択
- シーンビューでドラッグして地形を彫る
5 大ツールバー
| ツール | 機能 | 主な用途 |
|---|---|---|
| Raise/Lower Terrain | マウスで持ち上げ/下げ | 山・盆地を彫る |
| Paint Holes | 地形に穴を開ける | 洞窟・崖の入口 |
| Paint Texture | マテリアルを塗る | 草・砂・岩を塗り分け |
| Set Height | 指定高さに揃える | 平坦地・湖底作り |
| Smooth Height | 地形をなめらかに | 急斜面の調整 |
| Stamp Terrain | ハイトマップで「判子」 | 同じ山を量産 |
各ブラシは Brush Size (大きさ) と Opacity (強さ) を調整できます。Brushes パネルから多様な形状を選べ、丸・四角・スプレー型などで微妙な凹凸を作れます。
Paint Texture (テクスチャ塗り)
- ツールバーで Paint Texture を選択
- Terrain Layers → Create Layer → 草テクスチャの Albedo (Diffuse) を割り当て
- 同様に「Sand」「Rock」「Snow」レイヤを作成
- 各レイヤをブラシで塗ると、ブレンドして自然な地表ができる
HDRP / URP で品質が変わります。URP の Terrain Lit シェーダはモバイルでも動くので推奨です。
Tree (木の配置)
Paint Trees ツールで森を描画:
- Edit Trees → Add Tree → SpeedTree や Asset Store の Tree Prefab を割り当て
- Brush Size を大きく、Tree Density を中程度に
- ドラッグで森を描く
- Shift+ドラッグで木を消去
木は Billboard として遠景は 2D 表示になり、軽量化されます。
Detail (草・小石)
Paint Details で草を植えます。Edit Details → Add Grass Texture で芝生テクスチャを登録し、ブラシで塗ります。Wind Settings (風) を有効にすると草が風で揺れます。
Terrain Settings (重要パラメータ)
| 項目 | 初期値 | 意味 |
|---|---|---|
| Terrain Width / Length | 1000 | 地形の縦横 (m) |
| Terrain Height | 600 | 最大の高さ (m) |
| Heightmap Resolution | 513 | 高度マップ解像度 |
| Detail Resolution | 1024 | 草・小石 |
| Base Texture Resolution | 1024 | 遠景テクスチャ |
| Pixel Error | 5 | LOD のしきい値 (大きいほど軽量) |
| Base Map Distance | 1000 | 遠景テクスチャ切替距離 |
Heightmap Resolution を 2049 まで上げると細かな地形が作れますが、メモリと描画負荷が増えます。モバイル/Switch 等は 513 程度が無難です。
軽量化のコツ
- Pixel Error を 5〜10 に → LOD で遠景三角形を減らす
- Draw Instanced をオン → 草や木を GPU Instancing で描画
- Terrain を複数の小さなチャンクに分割 → カリングが効きやすい
- 不要なシーンでは Terrain.activeTerrain.drawTreesAndFoliage = false で草木描画オフ
ハイトマップ (Heightmap) インポート
Photoshop で作った白黒の高度マップ (RAW 16bit) を読み込めます:
- Terrain Settings → Import Raw...
- 解像度 (513 / 1025 / 2049) と Byte Order を指定
- 地形に反映
World Machine や Houdini で作った本格的な地形を Unity に持ってこられます。
Unity 6 の Terrain System
Unity 6 (2024 末リリース) では Terrain System に改善:
- 新 Terrain Tools が標準搭載 (旧 Package 内蔵化)
- GPU 駆動カリングで遠景が高速化
- HDRP の Mask Map によるディスプレイスメント精度向上
- Splatmap (テクスチャブレンド) のレイヤ数増加
スクリプトから Terrain を操作
using UnityEngine;
public class TerrainEdit : MonoBehaviour
{
public Terrain terrain;
void Start()
{
TerrainData data = terrain.terrainData;
int w = data.heightmapResolution;
int h = data.heightmapResolution;
// 高度マップを取得
float[,] heights = data.GetHeights(0, 0, w, h);
// 中央を盛り上げる
for (int y = 0; y < h; y++)
for (int x = 0; x < w; x++)
{
float dx = x - w / 2f;
float dy = y - h / 2f;
float dist = Mathf.Sqrt(dx*dx + dy*dy) / (w * 0.5f);
heights[y, x] = Mathf.Lerp(0.5f, 0f, dist);
}
data.SetHeights(0, 0, heights);
}
}
FAQ
Q: 地形が見えないです
A: Terrain は Y=0 から始まる。カメラが Y < 0 にいると下にいるので見えません。Y を上げてください。
Q: 草が出ない
A: Detail Distance が短すぎる可能性。Terrain Settings → Detail Distance を 150 以上に。
Q: ParticleSystem の雨が Terrain を貫通する
A: Particle に Collision モジュールを追加し、Layer に Default を指定。Terrain も Default レイヤならぶつかります。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 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
- 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
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・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
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?