森とか花畑とか、自然の景色が綺麗なワールドってありますよね。
こんなにたくさん木とか花とかあるのにワールド容量全然ないのなんでだろ?どうやって作ってるんだろ?と。
これはUnityの「Terrain」というものを使っていたんですね。今回はそのやり方をメモしていきます。
タイトルはVRChatって書いてあるけど、VRChatのワールドとしてアップロードしただけで、Unityで森とかの背景を作りたいって人もやり方はほぼ一緒だと思います。
事前に準備するもの
まずはVCCから右上のCreate New ProjectからWorlds(Unity2022)を選んでCreateProjectします。
森を作るだけなら特別Manage Packageに追加するものはありません。デフォルトのままで大丈夫です。

UnityのAsset Storeなどから森やスカイボックスのアセットを事前に用意しておきます。
使いたいアセットが見つかったら「Open in Unity」で開いて、インポートしておいてください。
今回使ったアセット、おすすめのアセットはこちらです。
スカイボックス:Fantasy Skybox FREE
ローポリな森のアセット:Lowpoly Environment
花や木、ファンタジーな建物セット:Fantasy landscap
Terrainのスタンプ向けテクスチャ:Terrain Sample Asset Pack
作り方
youtubeにTerrainでワールド作る方法を投稿しました。こちらの動画を参考にしてみてください。
動画が役に立ったら高評価&チャンネル登録をしてくれると嬉しいです!
もしVRChatにアップロードしたらこんなエラーや警告が出たよ!って方は実行してOKです。
たぶんシーンの中に一つにまとまってないオブジェクトがあったりしてVRChatにあわせてまとめちゃうよ!みたいな感じなんだと思います。
あとはアバターと同じく、何かしらエラー文が出てたらAuto Fixでだいたい解決すると思います。
それでも解決しないときはスクショを取って画像翻訳かAIに投げてみましょう。
ちょっとした自分用のメモ。
草や花などの2Dテクスチャ(Add Grass Texture)を追加する時の項目
・Detail Prefab
Terrainに配置するPrefab(花・草などの3Dモデル)を指定。 右の◎のSelect ボタンからPrefabを選択できる。
・Align To Ground (%) オブジェクトの傾きを地形にどの程度合わせるかを指定。 0:常に垂直に立つ 100:地形の傾斜に完全に沿う
・Position Jitter (%)
配置位置のランダムさ。 値を上げると、地形上のグリッド配置からランダムにずれて自然なばらつきになる。
ものによってはグレーアウトでいじれなかったりする。
・Min Width / Max Width
配置されるオブジェクトの横方向のスケール範囲。 例:Min 1 / Max 2 → 各花の幅が1〜2倍の範囲でランダムに変化。
・Min Height / Max Height
同様に、縦方向のスケール範囲。 草や花の高さがこの範囲内でランダムになる。
草はや花が高すぎたり低すぎる場合はここで調節できる。
・Noise Seed
ノイズ生成のシード値。 同じ数値なら同じパターンで配置され、変えると配置のランダム性が変化するけど、基本はそのままでいいと思う。
・Noise Spread
ノイズの広がり具合。 値を小さくすると細かくムラが出て、値を大きくすると広い範囲でのムラになる。
草の密度に変化をつけたい時とかにいじる。
・Hole Edge Padding (%)
Terrainの「穴(Hole)」の縁に対して、どれだけ離して配置するか。
0にすると穴のギリギリまで生える。値を上げると穴の縁から少し離して配置。
今回の動画ではHoleは使ってないけど、地面に穴をあけるやり方があるらしい。
・Detail density
Terrainにペイントしたときの密度を調整する。 1が最大密度でみっちり草生える。小さくすると間を開けて生やす。
・Affected by Density Scale
Terrain全体の「Detail Density(ディテール密度)」設定の影響を受けるかどうか。
チェックを入れると、Terrain Settingsの「Detail Density」スライダーで全体の密度をコントロールできる。
------------------------------------------------------------------------------------------------
・2D(テクスチャ)の草や花の、風に関するパラメーター
揺れていた草はTerrain Settings(一番右の歯車のマーク)のWind Setting for Grassから風の強さとかを調節できる。
・Speed
揺れの速さ。数値を上げるほど、風の動きが速くなる
大きくしても「強風」になるわけではなく、往復のテンポが速くなるだけ
・Size
風の波の大きさ(スケール)
値が小さいと細かく揺れて、値が大きいとゆっくり大きく揺れる
・Bending
どれだけ曲がるか、振れ幅みたいな。風の強さを表現したいときに。あまり強い値にすると草や花が伸びすぎて形が崩れる
------------------------------------------------------------------------------------------------
・3Dの木や花などの表示のパラメーター
LOD Groupならプレイヤーがそのオブジェクトから離れれば木が見えなくなったり、ローポリになったりしてゲーム的には軽くなる。そういう設定がないときに、遠くの景色を消したい、軽量化したいときとかの項目。
Terrain Settings(一番右の歯車のマーク)のTree & Detail Objectsってところの項目のメモ
・Draw
配置した木などの3Dオブジェクトを描画するかしないか。
OFFにすると配置は残るが表示されない。デバッグとか負荷確認用かな。
・Bake Light Probes For Tree
木にライトプローブを適用するかどうか。チェックを入れると環境光・間接光が反映される
チェックを外すと常に一定の明るさ。少し軽くなるが見栄えはちょっと下がる?
・Remove Light Probe
木に割り当てられた Light Probe 情報を削除。主に再ベイク時の整理用
・Detail Distance
木が表示される最大距離。値が小さいと遠くの木は表示されなくなるので軽くなる。
値が大きいと、遠くの居間で見えるけど、描画的には重くなる。木だけじゃなく3Dの小物(石や花)とかもそうなのかな
・Detail Density Scale
Detailの密度倍率で1 がデフォルト。0.5 で半分で実行環境に応じた全体調整用らしいが、いじってみてもピンとこなかったわ
・Tree Distance
木が表示される最大距離。Detail Distanceはどこまで近づけば木が表示されるかだったけど
こっちは目に見えない後の景色とか、ワールド全体的に自分から遠い木を表示しないで軽量化するときに使うっぽい?


コメント