【UE5】stat gpuのカスタム – Unreal Engine 5.6

Unreal Engine

水ノ茉(こおり)の宣伝

叡智でえっちな同人作品を予定中…

Ci-en R18

同人作品の宣伝

  • 準 備 中 . . .

プラグインの宣伝

始まり

ReinClothのプロファイルをしていると困ることがありました。

最適化が極まり過ぎてテーブルの下部に追いやられてしまうのです。

ということでstat gpuに表示する内容をReinClothだけにフィルタしてみます。

リポジトリは面倒

変更範囲が小さいので該当箇所を抜粋します。

普段リポジトリに纏めているのはEULAの都合です。規約というのは長ったらしくてまどろっこしいことを隠れ蓑に地雷が埋まっていたりするので、ちゃんと読みましょうね。素晴らしいことに現代では、人間が全文を読む必要はないです。LLMにぶん投げればいいのです。読む癖を付けることは大事なのです。

お客様は、最大30行までのEngineコードのスニペットを、かかるスニペットの内容について議論する目的でのみ、オンライン上の公開フォーラムに投稿すること、またはライセンス技術用のサポートパッチおよびプラグインに関してかかるスニペットを配布することが認められます。ただし、Engineコードのライセンスなしに第三者にEngineコードを使用もしくは修正できるようにすること、またはEngineコードのより広範囲な部分を集約、再結合もしくは再構築することを目的としない場合に限られます。

https://www.unrealengine.com/eula-reference/unreal-ja

Engine/Source/Runtime/Engine/Private/StatsRender2.cpp

上の方に適当なコンソール変数を用意します。

//// Lust @kobayashi-arata 2026/06/13 ////
TAutoConsoleVariable<bool> CVarStatsReinClothOnly(
	TEXT("stats.ReinClothOnly"),
	false,
	TEXT("")
);
//// Lust @kobayashi-arata 2026/06/13 ////

RenderArrayOfGpuStats(..)に大雑把にフィルタを追加します。

//// Lust @kobayashi-arata 2026/06/13 ////
	auto bIsReinClothOnly = CVarStatsReinClothOnly.GetValueOnGameThread();
//// Lust @kobayashi-arata 2026/06/13 ////

	// Render all counters.
	int32 MaxStatsPerGroup = CVarNumStatsPerGroup.GetValueOnGameThread();
	for (auto const& [Name, Stat] : Aggregates)
	{
		if (RowIndex >= MaxStatsPerGroup)
		{
			break;
		}
		
	//// Lust @kobayashi-arata 2026/06/13 ////
		if (bIsReinClothOnly && !Name.ToString().Contains(TEXT("ReinCloth")))
		{
			continue;
		}
	//// Lust @kobayashi-arata 2026/06/13 ////

使ってみる

stat gpu

stats.ReinClothOnly true

見やすくなりましたね。

注意点としてあまり凝った処理を組んでしまうと、CPUにボトルネックを生むことになります。CPUが重いとGPU計測にも影響を与えます。案外、雑に組むことが最適解だったりします。『文字列比較重いだろ』に関しては、UEのコアライブラリはそこらの内製ライブラリよりも圧倒的に優れているため、気にする必要ないです。

おわり!!!

同人制作をしていると必然的に記事の執筆の優先順位が下がるよね。

勢いに身を任せた30分クオリティ。

Rein Fluid

内製ライブラリの第3弾です。

疑似流体です。

厳密に言えばSPH法でもなく、ナビエストークスでもないです。

マジで同人で使えればいいやという突貫工事の成果物です。

アングラ利用を前提としているため品質は粘性に特化しています。

悪巧み♪