UMGのパース風マテリアルについて

お世話になっております。

2DのUIを3D風に見せるため、四隅の高さを調整してパースがかかったような見た目にできるようなマテリアルを作成したいのですが、うまくいきません。
どのようにすればそういったマテリアルになるのか、ご教授いただけますでしょうか。

310793-image.png

明確な答えになるかはわかりませんが、WidgetにはRetainerBoxというボックスがあり、

そのボックス内に表示されるものをマテリアルのパラメータとして利用できるというものです。

310950-ee190377ba6b4083ac4b0cd9ced7ef9d.png

RetainerBox用のマテリアルを作成し、Textureのパラメータを作成します。(今回はBoxという名前をつけます)

そのパラメータにUV値を設定することで、パースのような表現をある程度作成可能になります。

このマテリアルをRetainerBoxに設定しパラメータ名も設定することで、マテリアル内のTextureパラメータにRetainerBox内の表示物が反映されます。

310968-84870ecfb3f113ecbc28db2f116e753c.png

目的の動作そのものではありませんが、近い見た目にはなったのではないでしょうか?

UV値をどのように設定するか次第ですが、うまい値を入れることで目的の動作になると思います。

自分も一時期試していましたが、諦めてしまったので良いUV値のパラメータ設定が見つかればぜひ共有をお願いしたいです。

1 Like

もう一つの手段としては、RenderTargetTextureを使って3D上にある物体を撮影し
マテリアルで不要部分をカットしたものをWidgetに使用するというものです

  1. RenderTarget(描画ターゲット)を作成する
  2. SceneCapture2Dというカメラを配置する
  3. SceneCapture2Dの設定を以下のように設定する

312006-test.png

  1. 描画ターゲットをWidgetで使えるようにするために、マテリアルを作成する

312007-test1.png

  1. あとは普通のマテリアルとしてWidgetのImageに4,5で作成したマテリアルを当ててやることで、3Dのオブジェクトを2Dとして表現できます。

難点としては通常のWidgetのようにAnimationをつけたり変形させたりの操作がやりにくいところです。

これを使うことで半透明のものを含む3Dの板をWidgetに持ち出せるため、最も意図に近い表現になると思います。

1 Like