ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Terrain にテクスチャをペイントする手順
Unity Terrain の地面に、草・土・岩・砂などのテクスチャを塗り分ける手順を解説します。地形の見た目を作る最も基本的な操作です。
準備: Terrain と TerrainLayer
1. Terrain を作成
- Hierarchy で右クリック → 3D Object → Terrain
- 巨大な平面(デフォルト 1000m × 1000m)が生成される
- Inspector に Terrain コンポーネントと Terrain Collider が付く
2. TerrainLayer アセットを作る
TerrainLayer はテクスチャとそのタイリング・法線マップをまとめたアセットです:
- Project ウィンドウで右クリック → Create → Terrain Layer
- 名前を付ける(例:
Grass_Layer) - Inspector で:
- Diffuse: アルベドテクスチャ(草、土等)
- Normal Map: 法線テクスチャ(凹凸感)
- Mask Map(URP/HDRP): メタリック・スムースネス・オクルージョン・高さ
- Tiling Settings → Size: 1 タイルの実寸(例 1×1 メートル)
Paint Texture でペイント
Terrain を選択 → Inspector のツールバーから 4 つ目のブラシアイコン Paint Terrain をクリック → ドロップダウンを Paint Texture に。
| 項目 | 意味 |
|---|---|
| Terrain Layers | このターレインで使うレイヤー一覧。Edit Terrain Layers → Add Layer で TerrainLayer アセットを追加 |
| Brushes | ブラシ形状(円、四角、ノイズ等) |
| Brush Size | ブラシ半径(メートル) |
| Opacity | 1 ストロークの効きの強さ(0-100) |
| Target Strength | 同じ箇所を塗り続けた時の最大濃度(0-1)。0.5 にすると半分混じった状態が上限 |
ペイントの流れ
- 最初に追加したレイヤーがベースレイヤとして全面に塗られる(通常は草)
- 2 つ目以降のレイヤを選択し、シーンビューで Terrain 上をドラッグして塗る
- 強く塗りたい場所は Brush Size を小さく、Opacity を上げる
- Shift + ドラッグで「下のレイヤを表示」(消しゴム的に使える)
Splatmap の仕組み
Terrain のテクスチャブレンドは Splatmap と呼ばれる重みテクスチャで管理されます:
- 各ピクセルが「このレイヤをどの程度の強さで塗るか」を表す
- 1 つの Splatmap は RGBA の 4 チャンネル → 1 枚で 4 レイヤ
- 5 レイヤ以上使うと自動で 2 枚目の Splatmap が追加(パフォーマンス低下)
- 解像度は Terrain Settings → Control Texture Resolution で変更(デフォ 512)
// スクリプトから Splatmap を直接編集する例
using UnityEngine;
public class TerrainSplatPainter : MonoBehaviour
{
void Start()
{
Terrain terrain = GetComponent();
TerrainData data = terrain.terrainData;
int w = data.alphamapWidth;
int h = data.alphamapHeight;
int layers = data.alphamapLayers;
// 既存の重みを取得
float[,,] map = data.GetAlphamaps(0, 0, w, h);
// 全面をレイヤ 0 (草) で塗りつぶす
for (int y = 0; y < h; y++)
for (int x = 0; x < w; x++)
{
for (int l = 0; l < layers; l++) map[y, x, l] = 0;
map[y, x, 0] = 1f;
}
data.SetAlphamaps(0, 0, map);
}
}
Heightmap と Splatmap の関係
| マップ | 役割 | 解像度設定 |
|---|---|---|
| Heightmap | 地形の高さ(凸凹) | Terrain Width / Length × Resolution |
| Splatmap (Alphamap) | 各レイヤのブレンド重み | Control Texture Resolution(512 / 1024) |
| Detail Map | 草・小物の密度 | Detail Resolution |
レイヤを自動で高さ・傾斜で配置
Terrain Tools パッケージをインストールすると、Stamp Terrain、Erosion に加えて、角度に応じて自動で岩レイヤを塗る機能が使えます:
- Package Manager → Terrain Tools をインストール
- Paint Terrain → Slope ツールで急斜面に岩レイヤを自動適用
- または Height ツールで標高に応じて雪レイヤを上部に
URP / HDRP の Terrain Material
Built-in Render Pipeline と SRP では Terrain の見た目シェーダが違います:
| パイプライン | Terrain Material |
|---|---|
| Built-in | Nature/Terrain/Standard |
| URP | Universal Render Pipeline/Terrain/Lit |
| HDRP | HDRP/TerrainLit |
Terrain Inspector → 歯車(Terrain Settings)→ Material で切替。URP プロジェクトで Built-in シェーダのままだとピンクになります。
パフォーマンス最適化
- Pixel Error: 大きくすると LOD が荒くなり高速化。5-10 推奨
- Base Map Distance: この距離より遠くは低解像版を使う。300-500m が目安
- Draw Instanced: GPU Instancing で Terrain を描画。チェック推奨
- Detail Distance: 草を描く距離。短いほど高速
- レイヤ数を 4 以下に抑える(Splatmap 1 枚で済む)
よくあるトラブル
Q: ペイントしても色が変わらない
A: ① TerrainLayer をまだ追加していない、② Brush Size がエリア外、③ URP/HDRP でシェーダ不一致でマテリアルが壊れている。Terrain Settings の Material を確認。
Q: テクスチャが伸びる・繰り返しが目立つ
A: TerrainLayer の Tiling Settings → Size を実寸に。1 タイルが何メートルか意識すると自然になります。広範囲は法線マップで凹凸を強調するとパターン感が減ります。
Q: 5 つ目のレイヤを追加したら重くなった
A: Splatmap が 2 枚になり、ドローコールが約 2 倍に。シーンに応じてレイヤを 4 以下に整理してください。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?