2026年5月28日木曜日

DynamicMeshをStaticMeshに変換・保存してアセット化する方法

 [UnrealEngine5.7.4][Windows11]で確認

DynamicMeshをStaticMeshに変換・保存してアセット化する方法

UE5.7のGeometry Scripting機能(DynamicMesh)を使ってブループリント上で作成した形状は、そのままではスタンドアローンゲームやパッケージ版で表示されなくなってしまいます。

これを回避するためには、作成した形状をコンテンツブラウザに「StaticMesh(スタティックメッシュ)」として書き出して保存(アセット化)する必要があります。その具体的なノードの組み方と、エディタ上からボタン一発で実行できる便利ツールの作り方を解説します。

💡 メッシュを変換・保存する核心ノード

Geometry Scriptには、DynamicMeshの形状をStaticMeshアセットとしてコンテンツブラウザに書き出すための専用ノードが用意されています。一番よく使うのが Create New Static Mesh Asset From Mesh というノードです。

■ ノードの設定手順

  1. Target Mesh を用意する 変形や生成を終えた、完成形の Dynamic Mesh(または Target Mesh 変数)を用意します。

  2. Create New Static Mesh Asset From Mesh ノードを配置 このノードが、DynamicMeshのデータをもとに新しいStaticMeshアセットをハードディスク(コンテンツブラウザ)に書き出します。

  3. ピンの設定(重要)

    • From Dynamic Mesh: 変換したいDynamicMeshを繋ぎます。

    • Asset Path Game Relative: 保存先のパスを文字列(String)で指定します。 (※例: /Game/GeneratedMeshes/MyNewMesh と書くと、コンテンツフォルダ内の「GeneratedMeshes」フォルダに「MyNewMesh」という名前で保存されます)

    • Options: ここでUVの割り当てや、Nanite(ナナイト)を有効にするかどうかの設定(Enable Nanite)ができます。

📋 エディタ用ボタンを作るブループリント実装パターン

エディタ上でボタン一発でStaticMesh化したい場合、「Actor」のブループリントに以下のように実装するのが一番簡単です。

1. イベントグラフにカスタムイベントを作る

イベントグラフ(Event Graph)を開き、右クリックから Custom Event を作成します。名前は ExportToStaticMesh などにしておきます。

2. 「エディタで呼べるボタン」にする

作成した Custom Event ノードを選択し、画面右側の Details(詳細)パネル を見ます。

  • 「Call in Editor(エディタで呼び出し)」 というチェックボックスがあるので、そこにチェックを入れます

  • これにより、レベル上にこのActorを配置した際、詳細パネルに「ExportToStaticMesh」というボタンが出現するようになります。

3. ノードを繋ぐ

以下のような流れでノードを繋ぎます。

[Custom Event (Call in Editor)]

       ↓

[Get Dynamic Mesh Component] ── (Target)

       ↓

[Get Dynamic Mesh] (ComponentからMeshデータを取得)

       ↓

[Create New Static Mesh Asset From Mesh] 

       ├─ From Dynamic Mesh (上のMeshデータを繋ぐ)

       └─ Asset Path Game Relative: "/Game/Procedural/MyMesh_01"



4. エディタ上で実行する

  1. このActorをレベルに配置します。

  2. 配置したActorを選択し、画面右側の「詳細(Details)」パネルを見ます。

  3. 先ほど作ったイベント名のボタンが表示されているので、それをクリックします。

  4. コンテンツブラウザの指定したパスに、新しく StaticMeshアセット が自動生成されます!

⚠️ 注意点:既存のアセットを上書きしたい場合 もし、何度も形状を微調整して「同じアセット名で上書き保存」したい場合は、Create New~ ではなく Recompute Static Mesh Asset From Mesh というノードを使用します。 (Create New~ のまま同じ名前で実行すると、別名で新規作成されてしまうか、上書きされずエラーになることがあります)