0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【UE5】Geometry Scripting:Dynamic MeshをStatic Meshとして保存する3つの方法

Posted at

この記事で使ったUEのバージョンはUE5.2.1です。

この記事は、Geometry Scriptingで作ったメッシュ(Dynamic Mesh)をStatic Meshとして保存する方法のメモ。

下記に3つの方法を書いている。

  1. Modelingモードを使って、Static Meshにコンバートする。
  2. Copy Mesh To Static Mesh関数を使って、既存のStatic Meshアセットに上書きする
  3. Create New Static Mesh Asset From Mesh関数を使って、指定したパス・アセット名で出力する

方法1:Modelingモードを使ってStatic Meshにコンバートする

Modelingモードの「Convert」を使えば、Dynamic MeshをStatic Meshにコンバートできる。
手順は以下の動画の通り。

この方法は、選択したDynamic Meshが、コンバート後のStatic Meshに置き換えられてしまう。作業しているDynamic Meshがレベルから居なくなって欲しくない場合は、もとのDynamic Meshを複製して、複製した方をコンバートするとよい。

  1. コンバートしたいDynamic Meshを選択する。
  2. モデリングモードに切り替える。
  3. Transformカテゴリにある、Convertコマンドをクリックする。
  4. Modelingタブの上の方、Output Typeが「Static Mesh」になっていることを確認する。
  5. Modelingタブの下の方、New Asset Locationを「Current Folder」にしておくと、コンバート後のStatic Meshアセットをカレントフォルダに出力してくれる。
  6. ビューポート下辺中央の「Accept」ボタンを押すとコンバートされる。

方法2:Copy Mesh To Static Mesh関数を使って、既存のStatic Meshアセットに上書きする

これはUE公式ドキュメントの「Geometry Scripting through Blueprints」に掲載されている方法である。

Dynamic Meshを持ったアクタで、以下のような Call In Editor関数を作る。
image.png
あとは、Bake Target Assetにセーブ先となるStatic Meshアセットをセットして、このCall In Editor関数を動かせばよい。

例えば、次の動画のような手順でコンバートする。

関数Copy Mesh To Static Meshは、指定された既存のStatic Meshアセットに、現在のDynamic Meshの内容を上書きする。大事なアセットにうっかり上書きしないように気を付ける必要がある。
例えば、Starter Contentsなどから適当なStatic Meshをコピーして、それをコンバート先として指定すると良い。

なお、Copy Mesh To Static Meshは、マテリアルは作ってくれない。コンバート後に手動でマテリアルを付け替えたり、足したりする必要がある。

Copy Mesh To Static Meshの上書きのメリット

Copy Mesh To Static Meshによる上書きはデメリットにも見えるが、メリットもある。それは、上書き先のアセットが既にレベルに置かれている場合である。
Dynamic Mesh側を編集後、Copy Mesh To Static Meshで上書きをすると、レベルに置かれたすべてのアセットが最新の状態に更新される。これのおかげで次のGIF動画のように「エディットして、反映する」の繰り返しがサクサク行えるようになる。

20230826_DynamicMeshToStaticMesh04.gif

これについても、UE公式ドキュメントの「Geometry Scripting through Blueprints」に記載されている。

その3:Create New Static Mesh Asset From Mesh関数を使って、指定したパス・アセット名で出力する

Dynamic Meshを持ったアクタで、次のような Call In Editor関数を作る。
image.png

この関数は、Bake先となるパス・アセット名を指定すると、そこにStatic Mesh Assetを作成してくれる。

例えば、次のような手順でコンバートする。

こちらは、必ず一定のアセット名で出力できるので、例えば、自動的に複数のバリエーションのStatic Meshアセットを出力するような場面で、役に立ちそうだ。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?