スライス エフェクトを作成するには、最初に エミッシブ ノード グラフを作成してソリッド マテリアル を作成し、次にメッシュの ワールド位置 データと TransformPosition マテリアル ノードを使用してメッシュをカットする場所を決定します。
このマテリアルを使用すると、メッシュを壁の反対側に浸透させずに壁に面一に配置したい場合や、壁部分としてスタティックメッシュを使用してプレイヤー用の迷路のパスを作成する場合などで、メッシュを効率的に半分にできます。
エミッシブ ノード グラフを作成する
すでにエミッシブ グラフを使用しているノードをコピーし、グラフの不要な部分を削除した後に、必要なノード構成を追加するとエフェクトを作成できます。
-
マテリアルのルート ノードを選択し、[Details (詳細)] パネルの [Two Sided (両面)] オプションをオンにします。
-
[Blend Mode (ブレンドモード)] のドロップダウン メニューを開き、「Masked1」を選択します。
-
ノード グラフ内で右クリックし、指定した名前を検索して、次のノードをマテリアルに追加します。
-
Constant ノード × 3
-
2 X Constant 3Vector 式 ノード
-
Clamp ノード × 2
-
Append3Vector ノード
-
WorldPosition ノード
-
Subtract ノード
-
Dot Product ノード
-
Multiply ノード
-
Linear Interpolate ノード
-
TwoSidedSign ノード
-
-
1 番目の Constant3Vector ノードをダブルクリックし、マテリアルに外装カラーを追加します。
-
1 番目の Constant3Vector ノードの White ピンをドラッグし、マテリアルのルート ノードの Base Color 入力 に接続します。
-
1 番目の Constant ノードのピンをドラッグし、マテリアルのルート ノードの Roughness 入力 に接続して値を「0.75」に変更します。
このコンフィギュレーションにより、ベース カラーとマテリアルが割り当てられるオブジェクトのライトに対するマテリアル応答が作成されます。次の構成では、メッシュの内部が屋内でソリッドに見えるようにするエミッシブ マテリアルが作成されます。

-
TwoSidedSign ノードをドラッグして Clamp ノードに接続してから、Clamp ノードをドラッグして Lerp ノードの Alpha 入力 に接続します。
-
2 番目の Constant3Vector ノードをダブルクリックし、メッシュの内装のカラーを追加します。Constant3Vector ノードの White ピンをドラッグし、Lerp ノードの A 入力 に接続します。
-
Lerp ノードを選択し、B 入力 の値を「0.0」に設定します。
-
Lerp ノードをドラッグし、Multiply ノードの A 入力 に接続します。
-
Multiply ノードを選択し、B 入力 の値を「0.3」に変更します。
-
Multiply ノードをドラッグし、マテリアルのルート ノードの Emissive Color 入力 に接続します。
エミッシブ ノード グラフが完成しました。
メッシュを半分にカットする
次に、メッシュの位置をターゲットとする位置グラフを作成して、プロジェクトからメッシュの部分を削除します。
このエフェクトは、マテリアルの ワールド位置 を使用してメッシュを自動的に半分にカットし、ノード グラフに入力された指定された方向にメッシュ上のマテリアルを変換することで作成できます。

新しい マテリアル を作成して開き、Constant3Vector マテリアル ノードをグラフに追加します。ノードに色を追加し、Constant3Vector ノードからドラッグして、Main Material ノードの Base Color 入力 に接続します。
マテリアル エディタで右クリックし、検索バーに「Functions」と入力してマテリアル関数ノードを作成します。MaterialFunctionCall オプションを選択します。Unspecified Function ノードがマテリアル エディタに表示されます。
マテリアル エディタでは特定のマテリアル関数の検索を行うことはできません。したがって、未指定のマテリアル関数ノードを作成し、それに関数を割り当てる必要があります。

Unspecified Function ノードを選択し、[Details (詳細)] パネルで [Material Function (マテリアル関数)] ドロップダウン メニューから ObjectLocalBounds マテリアル関数を割り当てます。Object マテリアル関数ノードがマテリアル エディタに自動的に表示されます。
-
マテリアル エディタに次のノードを追加します。
-
WorldPosition ノード
-
TransformPosition ノード
-
Constant ノード
-
Add ノード
-
Clamp ノード
-
Component Mask ノード
-
Multiply ノード
-
Subtract ノード × 2
-
-
WorldPosition ノードをドラッグして TransformPosition ノードに接続します。
-
TransformPosition ノードを選択し、[Material Expression Transform Position (マテリアル式のトランスフォーム位置)] の値を次のように変更します。
-
Source (ソース) = Absolute World Space (絶対座標)
-
Destination (宛先) = Local Space (ローカル空間)
-
-
TransformPosition ノードをドラッグし、1 番目の Subtract ノードの A 入力 に接続します。
-
ObjectLocalBounds ノードの Local Bounds Minimum ピンをドラッグし、1 番目の Subtract ノードの B 入力 に接続します。
-
1 番目の Subtract ノードをドラッグし、Multiply ノードの A 入力 に接続します。
-
Multiply ノードの B 入力 の値を「-1.0」に変更します。
-
Multiply ノードをドラッグし、Add ノードの A 入力 に接続します。
-
ObjectLocalBounds ノードの Local Bounds Max ピンをドラッグし、Add ノードの B 入力 に接続します。
-
Add ノードをドラッグし、2 番目の Subtract ノードの A 入力 に接続します。
-
Constant ノードを右クリックして Parameter ノードに変更します。Parameter ノードに「ObjectClip」という名前を付けます。
-
ObjectClip の値を「0.0」に設定します。
-
ObjectClip をドラッグし、2 番目の Subtract ノードの B 入力 に接続します。
-
Subtract ノードをドラッグして Component Mask ノードに接続します。
-
Component Mask ノードを選択し、[Details] パネルで [Material Expression Componenet Mask (マテリアル式コンポーネント マスク)] の値を「G」および「B」に変更します。
-
Mask ノードをドラッグして、Clamp ノードの White 入力 に接続します。
-
Clamp ノードの Max 入力 の値を「1.0」に変更します。
-
Clamp ノードをドラッグして Opacity Mask に接続します。
画像をクリックすると拡大表示されます。
-
[Apply (適用)] をクリックします。
ObjectClip ノードの負の B の値を変更するとオブジェクトがリストアされ、正の値を変更するとオブジェクトの除去される部分が増えます。また、クリップの範囲は正規化されていないため、値はマテリアルが割り当てられるオブジェクトのスケールによって決まります。