表示テーマ
InvertedHullOutline Component
モデルを法線方向へ膨らませた背面で輪郭を描きます。
設定する手順
- Rendererと同じGameObjectへ追加し、色と幅を指定します。
- SceneViewまたはGameViewで結果を確認します。
- 編集中のSceneまたはPrefabを保存します。
項目の説明
| 項目 | C#名 | 型 | 操作 | 定義時の初期値 | 意味 |
|---|---|---|---|---|---|
| 有効 | Enabled | bool | 読取・変更 | true | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| Width | Width | float | 読取・変更 | 0.01f | 線または輪郭の幅です。幅の空間設定も確認します。 |
| 色 | Color | Color4 | 読取・変更 | Color4::Black() | 色を指定します。RGBAではAlphaも持ちます。 |
| ExpansionMode | ExpansionMode | OutlineExpansionMode | 読取・変更 | OutlineExpansionMode::NormalDirection | 輪郭の膨らませ方を選びます。 |
| WidthMode | WidthMode | OutlineWidthMode | 読取・変更 | OutlineWidthMode::ModelUnits | 幅を測る空間を選びます。 |
| Camera Z Offset | CameraZOffset | float | 読取・変更 | 0.0f | 輪郭をCameraの奥行き方向へずらす量です。 |
| Baked Normalを使う | UseBakedNormal | bool | 読取・変更 | false | 輪郭用に保存した法線を利用します。 |
| Baked Normal Texture | BakedNormalTexture | Texture? | 読取・変更 | {} | 輪郭生成用の法線Textureです。 |
| 部位別幅を使う | UseOutlineSampler | bool | 読取・変更 | false | 輪郭用のTextureサンプルを利用します。 |
| Outline Sampler | OutlineSamplerTexture | Texture? | 読取・変更 | {} | 輪郭Maskに使うTextureです。 |
| Materialの透明度を反映 | RespectMaterialSurface | bool | 読取・変更 | true | 通常Materialの透明部分・AlphaClip・頂点変形に輪郭を合わせます。無効ならMesh形状を使います。 |
| Alpha閾値 | AlphaThreshold | float | 読取・変更 | 0.1f | 透明部分をMaskから除くAlpha閾値です。 |
| Stencil抑制 | UseStencil | bool | 読取・変更 | false | Stencilを使って輪郭の重なりを制御します。 |
Inspectorの設定と使い方
「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。
| 設定・操作 | 編集場所 | C#の入口 | 意味・使い方 |
|---|---|---|---|
| 色・幅・幅モード | Editor / C# | Enabled / Color / Width / WidthMode | モデルを膨張した背面で輪郭を描きます。ModelUnitsはモデルの大きさ、ScreenPixelsは画面上のpxを基準にするため、距離による太さの変化が異なります。 |
| 膨張方式・Camera Z Offset | Editor / C# | ExpansionMode / CameraZOffset | 法線方向へ押し出すか、位置の拡大を使うかを選びます。Z Offsetは深度の重なりを調整するための値で、幅の代用ではありません。 |
| Materialの透明度・Alpha閾値 | Editor / C# | RespectMaterialSurface / AlphaThreshold | 透明度を反映すると、MaterialのAlphaClipなどを基準にします。無効時は形状を基準にするため、葉の画像の透明部分まで輪郭が出る場合があります。 |
| Baked Normal・部位別幅・Stencil | Editor / C# | UseBakedNormal / BakedNormalTexture / UseOutlineSampler / OutlineSamplerTexture / UseStencil | 専用Textureで膨張方向や部位別の幅を補助します。Stencil抑制は内側の重なりを抑える指定です。通常のBaseColor Textureをそのまま専用データの代用にはしません。 |
初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。
C#から使う
操作型はInvertedHullOutlineです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。
選択値(Enum)
| 型・各値の詳説 | 使える値 |
|---|---|
| OutlineExpansionMode | NormalDirection / PositionScaling |
| OutlineWidthMode | ModelUnits / ScreenPixels |
InvertedHullOutline
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public float AlphaThreshold | プロパティ(読取・変更) | 透明部分をMaskから除くAlpha閾値です。 |
public Texture? BakedNormalTexture | プロパティ(読取・変更) | 輪郭生成用の法線Textureです。 |
public float CameraZOffset | プロパティ(読取・変更) | 輪郭をCameraの奥行き方向へずらす量です。 |
public Color4 Color | プロパティ(読取・変更) | 色を指定します。RGBAではAlphaも持ちます。 |
public bool Enabled | プロパティ(読取・変更) | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
public OutlineExpansionMode ExpansionMode | プロパティ(読取・変更) | 輪郭の膨らませ方を選びます。 |
public static InvertedHullOutline FromEntity(GameObject gameObject) | 関数 | 既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。 |
public Texture? OutlineSamplerTexture | プロパティ(読取・変更) | 輪郭Maskに使うTextureです。 |
public bool RespectMaterialSurface | プロパティ(読取・変更) | 通常Materialの透明部分・AlphaClip・頂点変形に輪郭を合わせます。無効ならMesh形状を使います。 |
public bool UseBakedNormal | プロパティ(読取・変更) | 輪郭用に保存した法線を利用します。 |
public bool UseOutlineSampler | プロパティ(読取・変更) | 輪郭用のTextureサンプルを利用します。 |
public bool UseStencil | プロパティ(読取・変更) | Stencilを使って輪郭の重なりを制御します。 |
public float Width | プロパティ(読取・変更) | 線または輪郭の幅です。幅の空間設定も確認します。 |
public OutlineWidthMode WidthMode | プロパティ(読取・変更) | 幅を測る空間を選びます。 |
public static int componentTypeID | プロパティ(読取専用) | 組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。 |
継承する共通操作:Component
継承する共通操作:Object
使用時の注意
Material描画基準を使うとAlphaClipやMaterialの形状を考慮します。幅の空間とScaleの影響に注意します。
Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。