メインコンテンツまでスキップ

プレハブとインスタンシング

どちらも「同じものをたくさん」を実現しますが、解いている問題はまったく別です。選び間違えると、 面倒な手作業か、重いシーンのどちらかになります。

プレハブインスタンシング
複製するものオブジェクトのツリー1 つのオブジェクトのジオメトリ
各コピー完全に独立していて編集できる描かれるだけで編集はできない
向いているもの12 の部屋で使う椅子1 万本の草
一度直せば全部に反映される該当なし。すべて同じオブジェクトです

プレハブ

プレハブとは、何度でもシーンに置ける保存されたオブジェクトのツリーです。ライトと光彩を伴った ランプ、枠と音を伴ったドア、完全にリグの組まれたキャラクターなど。

プレハブを変えれば、そのすべてのインスタンスが更新されます。それがすべてです。ドアノブを直すのは 1 回で済み、12 の部屋を回る必要はありません。

各インスタンスはシーンの本物の一部です。動かせますし、その場所に固有のことを変えられます。

プレハブ化は 5 つ目ではなく 2 つ目で

小さなオブジェクトのまとまりを 2 回目にコピーしていると気づいた瞬間に、プレハブにしてください。 散らばった 12 個のコピーができてから後付けするのは、12 通りの細かな差分をすり合わせる作業です。

インスタンシング

インスタンシングは、1 つのオブジェクトのジオメトリを 1 回の描画で何度も描きます。1000 個の コピーのコストは 1 個とほぼ同じで、草原・群衆・小惑星帯・森がそもそも成立するのはこのためです。

コピーの並べかたは 3 通りあります。

ソース並べかた
grid規則的な格子に。規則性を崩すための揺らぎも付けられます
scatter箱や球の中にばらまく
children子オブジェクトごとに 1 つ、それぞれの位置に

children は「これを速くする」ための選択肢です。まず手で好きな場所に置き、これをオンにすると、 すべてが 1 回の描画にまとまります。オンの間、子は自分では描画しなくなります。

コピーに違いを出す

コピーは同じジオメトリなので、何もしなければ見た目がそろいすぎて壁紙のように見えます。次の 3 つがそれを崩します。

設定効果
scaleMin · scaleMaxコピーごとに、この範囲でランダムな大きさになります
rotationJitterコピーごとにランダムな回転が入ります
colorA · colorBコピーごとに、2 色の間の色味になります

さらに凝りたいときは、マテリアルグラフから「いま何番目の コピーを描いているか」を読み、そこから好きなものを変えられます。位相をずらして揺らす、汚れ具合を 変える、模様を変える、といった具合です。

配置は生成されるもので、保存はされません

個数・形・seed が同じなら、どこでも同じ配置になります。エディターでも、スマートフォンでも、 マルチプレイヤーのルームの各参加者でも同じです。同期は一切行われないので、1 万個のコピーでも ネットワークのコストはゼロです。

同じ設定のまま別の配置にしたいときは seed を変えてください。

maxCount は安全柵です。これを超えるコピーは描かれないので、桁を打ち間違えても、あり得ない量の メモリを確保しようとすることはありません。


次へ: 読み込みと起動画面