0
0

More than 1 year has passed since last update.

[UE5] Geometry ScriptとSplineの応用

Last updated at Posted at 2023-03-11

はじめに

サムネ

Epic Forum Snippet  元ツイート
私が以前TwitterとEpic Forumに上げたGeometry Script Blueprintの解説になります。

制作環境

  • Unreal Engine 5.1.1
  • 公式のGeometry Scriptプラグイン

Geometry Scriptの使い方

Geometry Script専用のクラスがあるので、ブループリント作成で
GeneratedDynamicMeshActorを選びます。
image.png
イベントノード On Rebuild Generated Mesh が開始点になります。
ブループリントの変数などをいじったら自動でメッシュを更新してくれます。
そして下で参照できるのはダイナミックメッシュで、これに対していろいろ編集していきます。
image.png
image.png

基本のノードとしてトランスフォーム、マテリアルの編集などなどがありますが、今回は Append Simple Extrude Polygon というノードをベースにしていきます。
image.png
たくさんのインプットがありますが、このノードの機能は、

  1. Polygon Verticesで入力するVector2DのArrayを点繋ぎみたいに平面作成
  2. 作った平面を Heightの高さまで押し出しをする

の2つがメインです。

試しにこのようにArrayを入れてみるとキューブができあがります。
image.png

recompute normalノードでノーマル方向を平均化させて影が直せます。

2Dの形であれば基本なんでも作れますが、Vertexの位置を手入力するわけにもいかないので
Splineで場所の制御をしていきます。

Spline Component

同じブループリントにSpline Componentを追加し、
Get Location at Spline Pointノードや
Get Location at Spline Input KeyでSplineの場所を取得します。

Spline Pointはポイントの場所を直接取る
Spline Input Keyはポイントとポイントの間なども取れる

image.png
Z軸の情報はAppend Simple Extrude PolygonHeightで入力していきますので使いません。

実装

これで手札は揃いました。
Splineで決めた場所を一個ずつVector2D Arrayの変数に保存して、Append Simple Extrude Polygonに入力すれば簡単にメッシュの形を決めることができます。
image.png
結果がこちら
image.png

SplineポイントはAlt+ドラッグで追加できます

Static Meshに変換

私の経験上ですがGeometry Scriptはまだ不安定で、ランタイムでよくクラッシュするので、メッシュの形を決めたあとブループリントをStatic Meshアクターに変更した方が安心します。
ただしStatic Meshに変更したら形は固定になるのでご注意ください。
image.png

考えられる改善点と割愛したところなど

  • 壁などZ軸が変化するメッシュは作れません
  • Splineの曲線、カーブに沿っていない(こちらはUnreal forum Snippetで上げたバージョンにて実装しています、気になる方はぜひチェックしてください)
  • Splineの位置がマイナス方向に設定された時、面の向きが内側になることがある(Append Simple Extrude Polygon>Primitive Options>Flip Orientationで治ります)
  • メッシュのUV、マテリアル設定(Unreal forum Snippetバージョン)
  • Boolean機能を使ってメッシュを切り取り、縁をつくる(Unreal forum Snippetバージョン)
  • Vectorで直接Vertexの位置をZ軸まで決めれるノードがあるかもしれません
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0