関連ブログ
- [UE5] SafeZoneを使用してUIがノッチに隠れるのを対策 2023.07.05UE
- [UE5] セルルックっぽい表現を作ってみよう! 2023.06.07UE
- [UE4] Landscape Grassを使ってみよう。 2023.04.05その他
CATEGORY
2024.01.17UE4UE5UE/ MaterialUE/ Mesh
執筆バージョン: Unreal Engine 5.3
|
ボンジョルノ!どうも3Dアーティストの千葉です。
今回はマテリアルのWorld Position Offsetを使ってメッシュをスケールさせる方法をご紹介します。
やり方はとっても簡単でActor PositionからWorld Positionを減算した値を乗算で増やしたり減らしたりするとスケールされます。
そのままだと0が元の大きさで負の値で拡大、正の値で縮小になっているので、One Minusを挟んであげるとアクターのトランスフォームのように1を基準にスケールできるのでオススメです。
動かしたい頂点の位置とスケールの基準点の差分が分かればその値を増減させることでスケールができます。
2次元で図にすると以下のような感じです。
3次元でも同じように考えることができるので、スケールの基点=ピボットの位置としてActor PositionからWorld Positionを減算しています。
乗算するパラメーターをVectorにするとXYZを別々にスケールすることができます。
RGBがそれぞれR=X、G=Y、B=Zに対応しています。
Timeノードを使って周期的に変化させることもできます。
ちなみに1以上のスケールにするとメッシュがBoundsの範囲を超えて描画がチラつくので、1以上の大きさにする場合はBounds Scaleの値を大きくしましょう。
簡単な拡縮アニメーションならBlueprintを使わなくてもマテリアルだけでできるので、みなさんもぜひお試しあれ!