
Unreal Engine 5.6 リリース ノート | Unreal Engine 5.6 ドキュメンテーション | Epic Developer Community
前回は高速ジオメトリストリーミングプラグインの基盤になっている「ランタイム セル トランスフォーマー機能」について確認しました。
UE5.6 のランタイムセルトランスフォーマーを試してみる - Self-Taught CODE Tokushima Tech Blog
では、今回は高速ジオメトリストリーミングプラグイン、略して FGS を確認していきます。
高速ジオメトリストリーミングプラグイン
以下のように、リリースノートにも詳しく記述がありますし、World Building Guide の方にも同じような記述が見つかります。
- Unreal Engine 5.6 リリース ノート | Unreal Engine 5.6 ドキュメンテーション | Epic Developer Community
- World Building Guide | Epic Developer Community
日本語訳のページの方を引用します。
高速ジオメトリ ストリーミング プラグインは、不変の静的ジオメトリでゲームプレイに影響しないアクタの高速ストリーミングを実現する目的でビルドされています。 処理の速い軽量のメソッドを使用して、ランタイム データ レイヤーや HLOD のような既存の World Partition 機能を犠牲にすることなく、グラフィックおよび物理シーンとの間での静的ジオメトリの登録と登録解除を行います。
このプラグインは、World Partition のランタイム セル トランスフォーマー機能を活用して、プレイ イン エディタ (PIE) に入ったときとクック時に発生するストリーミング生成フェーズ中に高速ジオメトリ ストリーミングの対象にできるものを定義します。 これにより、プロセスがシームレスで非破壊的なものになります。
いくつか気になるトピックが出てきています。
- 不変の静的ジオメトリでゲームプレイに影響しないアクタの高速ストリーミング
- ランタイムデータレイヤーや HLOD のような既存の World Partition 機能を犠牲にすることなく
- グラフィックおよび物理シーンとの間での静的ジオメトリの登録と登録解除を行う
- このプラグインは、World Partition のランタイム セル トランスフォーマー機能を活用する
まず、最後の「ラインタイムセルトランスフォーマー機能を活用」というのは、前回 RCTs を調査するきっかけにもなりましたが、高速ジオメトリストリーミングプラグインが RCTs のプラグインであるということでしょう。
「(不変の)静的ジオメトリ」という点は、RCTs も「StaticMeshActors や Partitioned Actors (PCG, Foliage, etc) 」を対象にしていましたが、World Building Guide を見ると、どちらも Immutable の言及があるので、動的ではないものというのが重要なのでしょうか。
最後に「ランタイムデータレイヤー (Runtime Data Layer)」と「HLOD (Hierarchical Level Of Details)」 の機能を犠牲にすることなくという点は、ここだけではいまいち分かりません。
ということで、この記事では、まずは高速ジオメトリストリーミングプラグイン(以降は FGS) を使ってみて、RCTs との関係を試してみたいと思います。
FGS を使う準備
リリースノートでは以下の手順のようです。
ただ、World Building Guide の方を見ると以下の手順もあるようなので、今回はそちらも行います。
- Requires
p.Chaos.EnableAsyncInitBody = trueset in your project
こちらを有効にせずに実行すると以下のようにエラーログが出ます。
LogFastGeoStreaming: Error: FastGeoStreaming Cell Transformer requires 'p.Chaos.EnableAsyncInitBody' to be enabled.
レベルの準備
前回と同じレベルを使います。少し構造を分かりやすくするために、Outliner を以下のようにしています。

前回は、Instanced Static Mesh に対応していないマテリアルを使うという手段を使っていましたが、 Show ActorColoration CellTransformerISM というコマンドが用意されていることに気づいたのでこちらで可視化しています。

Outliner にある RCTs によって生成された Instanced Static Mesh を選択すると、それがどれを指しているかも確認できます。
1つ目の Instanced Static Mesh を選択している状態です。
こちらは、手前の像2つも Instanced Static Mesh になっているのですが、そちらを選択しても色が変わりませんでした。
![]() |
![]() |
2つ目の Instanced Static Mesh を選択している状態です。
こちら、奥の長椅子2つも Instanced Static Mesh になっているのですが、そちらを選択しても色が変わりませんでした。
![]() |
![]() |
設定の追加
まずは、プラグインを追加します。

さっそく、RCTs の設定の箇所に移動し、FastGeoWorldPartitionRuntimeCellTransformer を選択します。

以下を見て分かる通り設定項目が変化しています。
| FGS | RCTs |
|---|---|
![]() |
![]() |
まず、大きく違うのが、RCTs の方は PartitionActor, StatisMeshActor が指定されており、ドキュメントにもあった対象であることがわかりますが、FGS の方は設定項目が
Console Variables の変更
CVar を p.Chaos.EnableAsyncInitBody = true のようにすると書いてあるのですが、どうやらこれは Read Only の属性のようなので、Console Variables Editor を利用してみます。

導入したのは初めてだったのですが、Window メニューから開いてすぐに検索できました。

true に変更します。
![]()
コンソールコマンドを入れてみても以下の結果が返りました。
p.Chaos.EnableAsyncInitBody = "true"
ただ、この方法だと、エディタを起動している間しか有効になりませんので注意してください。
さて、これで準備は整ったはずです。
FGS を使った状態での動作確認
World Partition としての動作(遠方が途中で表示される)は変わりません。
show ActorColoration FastGeo が用意されているので、そちらを有効化すると以下のような結果が得られました。


FGS が有効化されていない状態だと、すべてが赤くなるので、この結果は Static Mesh Actor が全て FGS の変換対象になっているということでしょう。
FastGeo.Show 1/0 のコマンドを使ってみても期待する結果が得られます。0 の場合は先程青く表示されていたオブジェクトが全て非表示になります。
デバッグの有効化

上記を有効化すると、以下のようなログも得られました。
LogFastGeoStreaming: ------------------------------------------------------------------------ LogFastGeoStreaming: - FastGeoStreaming Debug Mode: Transforming Level '/Memory/UEDPIE_0_TestLevel1_3XIRL7XS80ZZN668T3OJ5AVUC.TestLevel1:PersistentLevel' LogFastGeoStreaming: * Can't transform: Actor LandscapeStreamingProxy_D7T4VF4LBP34PHV9XOEVM5TIG_1_3_3_0 class is an unsupported class (LandscapeStreamingProxy) LogFastGeoStreaming: - Transformation result of Level '/Memory/UEDPIE_0_TestLevel1_3XIRL7XS80ZZN668T3OJ5AVUC.TestLevel1:PersistentLevel' LogFastGeoStreaming: - Transformable Actors (Full) = 6 (85.7%) LogFastGeoStreaming: - Transformable Components = 6 (40.0%) LogFastGeoStreaming: - Non-Transformable Actors = 1 (14.3%) LogFastGeoStreaming: ------------------------------------------------------------------------ LogFastGeoStreaming: ------------------------------------------------------------------------ LogFastGeoStreaming: - FastGeoStreaming Debug Mode: Transforming Level '/Memory/UEDPIE_0_TestLevel1_BRDRKB9I1IIYYGXT0CJDCWVTN.TestLevel1:PersistentLevel' LogFastGeoStreaming: * Can't transform: Actor LandscapeStreamingProxy_D7T4VF4LBP34PHV9XOEVM5TIG_1_3_4_0 class is an unsupported class (LandscapeStreamingProxy) LogFastGeoStreaming: - Transformation result of Level '/Memory/UEDPIE_0_TestLevel1_BRDRKB9I1IIYYGXT0CJDCWVTN.TestLevel1:PersistentLevel' LogFastGeoStreaming: - Transformable Actors (Full) = 7 (87.5%) LogFastGeoStreaming: - Transformable Components = 7 (43.8%) LogFastGeoStreaming: - Non-Transformable Actors = 1 (12.5%) LogFastGeoStreaming: ------------------------------------------------------------------------ LogFastGeoStreaming: ------------------------------------------------------------------------ LogFastGeoStreaming: - FastGeoStreaming Debug Mode: Transforming Level '/Memory/UEDPIE_0_TestLevel1_55BC5XJ2P4UORWURSHMDN4R55.TestLevel1:PersistentLevel' LogFastGeoStreaming: * Can't transform: Actor LandscapeStreamingProxy_D7T4VF4LBP34PHV9XOEVM5TIG_1_4_4_0 class is an unsupported class (LandscapeStreamingProxy) LogFastGeoStreaming: - Transformation result of Level '/Memory/UEDPIE_0_TestLevel1_55BC5XJ2P4UORWURSHMDN4R55.TestLevel1:PersistentLevel' LogFastGeoStreaming: - Non-Transformable Actors = 1 (100.0%) LogFastGeoStreaming: ------------------------------------------------------------------------ LogFastGeoStreaming: ------------------------------------------------------------------------ LogFastGeoStreaming: - FastGeoStreaming Debug Mode: Transforming Level '/Memory/UEDPIE_0_TestLevel1_COOO8TTAJUTBSY71Z81AXGKBW.TestLevel1:PersistentLevel' LogFastGeoStreaming: * Can't transform: Actor LandscapeStreamingProxy_D7T4VF4LBP34PHV9XOEVM5TIG_1_4_3_0 class is an unsupported class (LandscapeStreamingProxy) LogFastGeoStreaming: - Transformation result of Level '/Memory/UEDPIE_0_TestLevel1_COOO8TTAJUTBSY71Z81AXGKBW.TestLevel1:PersistentLevel' LogFastGeoStreaming: - Non-Transformable Actors = 1 (100.0%) LogFastGeoStreaming: ------------------------------------------------------------------------
興味深いのは /Memory/UEDPIE_0 から始まるパスがあることです。これは、おそらく PIE のセッションごとのメモリ領域を指していると思いますが、Transform つまり変換が完了したアクターは Outliner から確認できなくなっています。

RCTs の WorldPartitionRuntimeCellTransformerISM を試した時は、Instanced Static Mesh としてまとめられていただけだったのでまだ分かりやすかったのですが、FGS の場合は確認すらできなくなっています。
RCTs と合わせて実行してみる

この状態で実行してみます。
まず Outliner ですが以下のように RCTs を実行した時とは違っています。全ての StaticMeshActor は表示されなくなり、RCTs によって生成されたであろう Instanced Static Mesh のみ (WorldPartitionAutoInstancedActor0)になっています。

加えて、生成された Instanced Static Mesh も以下のように [Unnamed] のみの状態になっています。

以下は、それぞれの確認コマンドでの実行結果です。RCTs と FGS は期待通り行われているようですね。
Show ActorColoration CellTransformerISM |
Show ActorColoration FastGeo |
|---|---|
![]() |
![]() |
この挙動に関して
Outliner の [Unnamed] のような状態については理解が及んでいないものの、この RCTs と FGS の組み合わせについては、単に RCTs で Instanced Static Mesh 化されたものが FGS の「不変の静的ジオメトリ」に一致するため FGS の変換対象となったと考えて良さそうです。
ちなみに、Outliner に残った WorldPartitionAutoInstancedActor0 をデバッグしてみると以下のようなログが出ています。
LogFastGeoStreaming: ------------------------------------------------------------------------ LogFastGeoStreaming: - FastGeoStreaming Debug Mode: Transformation on 1 selected actors LogFastGeoStreaming: * Can't transform: Actor WorldPartitionAutoInstancedActor_0 has no transformable components LogFastGeoStreaming: - Non-Transformable Actors = 1 (100.0%) LogFastGeoStreaming: ------------------------------------------------------------------------
WorldPartitionAutoInstancedActor0 は変換できなかったので残っているといえそうです。
今回の進捗
思ったより長くなってしまったので、一旦ここで切ろうと思います。
次に見ていくのは FGS の多くのオプションについてになりそうです。

FGS が変換する対象に関するものであると考えられるので、ここの理解が進めば RCTs が作成している WorldPartitionAutoInstancedActor0 の子の Instanced Static Mesh Actor が FGS の対象になっている理由も理解できそうな気がします。
Appendix.
参考にさせていただいたリンク
- How to enable bEnableAsyncInitBody ? - Programming & Scripting / C++ - Epic Developer Community Forums
- コンソール変数エディタ | Unreal Engine 5.6 ドキュメンテーション | Epic Developer Community
出てきたコマンド・CVar
p.Chaos.EnableAsyncInitBody = trueCVar- 今回は Console Variables Editor を利用
Show ActorColoration CellTransformerISMRCTsでInstanced Static Mesh化されたものを色を付けて表示
Show ActorColoration FastGeoFGSで変換されたものを色を付けて表示
FastGeo.Show 1/0FGSで変換されたものを表示・非表示







