プロシージャル・スキャッタリング

Dash には目的別に最適化されたさまざまなスキャッターツールが含まれています。このページでは、なぜこれらのスキャッターツールが Dash で最もよく使われているのかを説明します。

サーフェス散布はメッシュ表面上で動作するワールドクラスの散布ソリューションです。 考え方は、いくつかのジオメトリ(スタティックメッシュ、ランドスケープ、プロシージャルメッシュ等...)を散布するための表面/地面として与え、散布したいアクターをいくつか与えると、魔法のように動作します。

これはDashの中で最も広範なツールで、複数の大手AAAスタジオ、才能ある個人アーティスト、そして我々のチームによる最先端のワールドビルディング追求から要望された機能を含んでいます。

circle-info

このページの内容を理解しやすくするために、必ず はじめに ページをお読みください。このページでは、我々が既に知っていることを前提とするDashツールの基本を扱う 環境作成 の節があり、ここで説明されている基本を知っていることを前提に進めます。

特定のユースケース向けに使いやすい専用の散布ツールを用意していることに加え、ユーザーが我々の散布ツールを好む主な理由はそのマスキング機能にあります。ほとんどのツールは基本的なマスキング設定を共有していますが、Surface Scatterはほぼすべての機能を持っているため、それらを一つずつ見ていきましょう!

マスキング機能

Dashの散布ツールにはさまざまなマスキング機能が搭載されており、その多くはSurface Scatterにのみ存在しますが、他のツールにもいくつかあり、我々はそれらに対してマスキング機能を積極的に拡張しています。 主要なマスキング機能のすべて、それらの動作、およびそれらで何ができるかを見ていきましょう。

掘り下げる前に、ここでの「マスキング」とは散布されたインスタンスを除去することを意味します。さらに、ほとんどのマスキンググループはマスク結果を反転する能力を提供します。いくつかのプロパティの右下に小さな暗い円があるのに気づくでしょう。これはそのプロパティを右クリックして マスクを反転.

近接マスキング

この機能により、曲線、メッシュ、インスタンスによるマスクが可能になります。

これは 距離 というプロパティを持ち、近接距離を制御し、UEのネイティブ単位に依存します。 もう一つのプロパティは サンプリングです。この値はマスキングの品質を制御します。値が高いほど品質は高く、低いほど低くなります。

上の例では、マスキングにメッシュと曲線を使用していますが、インスタンスに依存することも同様に簡単です:ビューポートでそれらを選択して近接オブジェクトに追加します。 下の例では、球を散布してから円盤を散布し、球の近くにある円盤だけを保持しています。

近接マスキングを活用してリアルな森を構築できます。まず木を散布し、その下にシダや葉を残し、必要なら経路用に曲線を近接マスクとして使用し、その経路の端に岩を散布する、といったことが可能です。

Dash 1.8.5以降、Surface Scatterは無限数の近接マスクを追加する機能を持ち、これはProximity Table(近接テーブル)を通じて行われます。これは以前の3つの近接マスクに取って代わるものです。Proximity Tableではグループを作成でき、それぞれにオブジェクト、距離、幅の値を持たせることができます。たとえば、最初のグループで特定の距離でオブジェクトをマスクし、他のグループでも同様のことを行うことができます。

最後に、近接マスキングはマスクの反転にも非常に適しています。

角度マスキング

角度マスキングは非常にシンプルです:基になる表面に依存して角度を判定し、その領域の散布オブジェクトを除去します。山岳で散布する際に斜面に木や他のオブジェクトが生えないようにするのに理想的です。

高さマスキング

Surface Scatterのようなツールには 最小高さマスク最大高さマスク というプロパティがあり、散布オブジェクトを上または下からクリップできます。

オブジェクトマスキング

単に距離に依存する近接マスキングと異なり、オブジェクトマスキングはレイトレースを使用してインスタンスがオブジェクトの内側、外側、または近くにあるかを判定します。曲線を描いてその曲線の内側にすべてのインスタンスを保持したい場合、この機能は完璧です。メッシュやボリュームの内側/外側にあるインスタンスを保持するためにも使用できます。

このマスキング方法には 内部を保持 というブールプロパティもあり、切り替えることでマスキングが入力オブジェクトの内側のインスタンスを保持するか、外側のインスタンスを保持するかを選べます。また、 距離 プロパティを使用して近接するインスタンスを保持することもできます。

ノイズマスキング

ノイズマスキングは散布オブジェクトの均一性を素早く崩すことを可能にします。 スケーリングから周波数、軸方向のストレッチ、ノイズの平滑化、ワーピングなど、幅広いパラメータが用意されています。

草、木、あるいはゴミを散布する場合、この機能を使うことで結果をより自然に見せることを強くお勧めします。

クラスタマスキング

クラスタマスキングはランダムにインスタンスを選び、それらをクラスタの中心点として使用することで機能します。 サンプリングするインスタンスの密度を調整する値と、クラスタの半径を制御する別の値が提供されます。 ノイズや他のマスクと組み合わせることで、非常に強力なリアルな散布設定が可能になります。

ボーダーマスキング

ボーダーマスキングは表面ジオメトリの境界エッジを検出し、その境界付近のすべてのオブジェクトをマスクします。

この機能は庭のような人工的な散布設定で非常に有用です。下地となるジオメトリ形状を作り、そこに植物を散布してからそのジオメトリを隠すことができます。 ジオメトリ上の各エッジループ境界は個別に扱われ、 ボーダー最小/最大 プロパティにより、各境界ループのマスキングにランダム化を追加できます。 Noiseは境界の均一性を崩すための単純なノイズ効果です。

プロジェクションマスキング

プロジェクションマスキングは、各インスタンスのポイントから上方向にレイを飛ばし、それがヒットした任意のメッシュ(追加しているもの)がある場合、そのレイがヒットしたインスタンスを保持する仕組みです。効果を反転することもできます。 使用例は、車の下にある植物やゴミのようにオブジェクトの下にあるインスタンスを保持することから、シーン内の任意のセットのオブジェクトの下にあるすべてのインスタンスを除去することまで多岐にわたります。

ランドスケープレイヤーマスキング

このマスキング機能では、ペイントレイヤーの名前をSurface Scatterに与え、そのレイヤーをマスクとして使用できます。最大で3つのレイヤーを指定できます。

テクスチャマスキング

テクスチャマスキングは非常に簡単です:UEのコンテンツブラウザでテクスチャを選択し、 テクスチャパス プロパティにテクスチャを入力すれば準備完了です。 どのチャンネルをマスクとして使うかを選び、グラデーションピクセルに対応するためのカラースレッシュホールドを調整し、テクスチャマスクをタイルできます。 テクスチャに黒地に白のピクセルが含まれていることを確認すれば、白いピクセルがマスクとして使用されます。 小さく装飾された庭のような非常に特定の形状の構造を作成しようとしている場合は、このアプローチをお勧めします。平面上に散布し、平面を隠し、花壇の形状を表すテクスチャを与えることで実現できます。

頂点カラー マスキング

スタティックメッシュに頂点カラーを適用でき、このマスキンググループではすべてのRGBチャンネルが利用可能です。さらに、グラデーションピクセルでのマスキング動作を調整するためのピクセルスレッシュホールド制御と、 ブレンドモード のドロップダウンがあり、頂点カラーがマスキングロジックにどのように影響するかを選択できます。

方向性マスキング

角度マスキングとは異なり、方向性マスキングでは太陽光(または任意のオブジェクト)アクターを使用して太陽の回転に基づいてオブジェクトをマスクできます。これはコケのように日光に敏感なオブジェクトを除去するために使われることが多いです。

追加/削除マスキング

これはインスタンスをランダムに追加または削除する単純なマスキング手法です。 例えば近接マスキングで植物を取り除いて道を作りつつ、低い値の追加マスクを使ってところどころ少数の植物を残す、といったことができます。

プロパティ参照

森林のような複雑なセットアップを作成する際、木用のSurface Scatter、低木用の別のSurface Scatter、草用の別のSurface Scatter、さらに森林に沿った木の杭用のPath Scatterや道路など... こうした複雑さはすぐに圧倒されることがあり、参照を使ってこれを整理します。 道路には幅があり、木の杭はその幅を多少のオフセットを含めつつ尊重してほしいでしょう。森林の植生も道路上にスポーンしないようにしたい、などです。

これを行う方法は参照プロパティを作成することです。我々はこれを はじめに ページで扱っていますが、ワークフローは比較的簡単です:道路の幅を決定するDistanceやWidthのようなプロパティを作成し、それをすべてのツールが使用するようにします。プロパティが参照を使用する場合、そのプロパティにはウェイトを与えられ、参照が提供する値を超えてプロパティの値を拡張できます。たとえば、Widthが320で、木の杭が0.1のウェイトを持つと、ウェイトはパーセンテージ乗算として作用するため、杭は幅よりわずかに大きくなります。

散布テーブル

後のバージョン(Dash 1.8.5以降)では、特定のツールにデータテーブルを追加し始めました。主なものはSurface Scatterの散布テーブルです。散布プロパティの+アイコンでいくつかの散布オブジェクトを単に割り当てる代わりに、Edit Table(テーブル編集)ボタンを押して散布テーブルを開くことができます。

ここでは複数のプロパティ行を作成し、それぞれに1つまたは複数の散布オブジェクトを割り当てることができ、さらに各プロパティ行ごとに 密度オフセットスケールオフセット を制御する能力を持ちます。つまり、複数のSurface Scatterを作成する代わりに、1つのSurface Scatterで散布オブジェクトを非常に細かく制御できるということです。

このデータテーブルのロジックは、必要な粒度の制御を提供するために、他のツールや設定にも徐々に拡張されています。

最終更新

役に立ちましたか?