パッケージ(Shipping)版なのにPrintString表示やコンソールコマンド受付などエディタ挙動をしてしまう問題

パッケージ(Shipping)版なのにPrintString表示やコンソールコマンド受付などエディタ挙動をしてしまう問題

UE5.0.3、5.1.1で確認しています。(UE4では正常にShippingビルドの出力ができています)
OS(Win11)の入れ直しでUEエディタも再インストールしたあと、
今まで正常に出力できていたUE5プロジェクトのパッケージ版(Shipping)において、
画面左上の開発者用PrintString表示やプレイ中に手打ちのコンソールコマンドを受け付けてしまうなど、
エディタ挙動をする問題が発生しています。

VisualStudioインストーラーでSDKを古いバージョンに変えたりしましたが解決しませんでした。

プロジェクトのパッケージ化設定は特異なものではなく、平常のもの(こちらの記事の配布用)と考えて差し支えありません。
【UE5】パッケージ化のやり方 | メタタイムCG (metatimecg.com)

これは、処理の仕方がそもそも開発(Development)版のようなので、
表面上PrintStringを消したり、コンソールコマンドを無効にすることで解決するものではありません。
ログを見ると
UATHelper: パッケージ化 (Windows): LogCsvProfiler: Display: Metadata set : config=“Development”
とあるので(恐らく)ビルドの状態がShipping(配布)設定にも関わらずDevelopment(開発)に書き換えられてしまう問題と思われ、
こちらの方の解決を望みます。

こちらの件についてご存じの方がいらっしゃいましたら、どうかよろしくお願いします。

追記:
プロジェクトランチャーを使用する方法を発見しましたが、それに依らない解決法をお願いします。

私も同様の問題が気になっていたので解決策を探してみました。
私の場合、UE5.1.1上で、以下の設定で問題が解決しました。


PrintStringなど、Development Only 設定のノードがShipping設定のパッケージングでも動作してしまうのを防ぐには、

Project Setting → Engine → Cooker → 「Compile Blueprints in Development Mode」 が デフォルトではONになっているので、OFFに変更する

ことで解決しました。

【参考】

https://shuntaendo.hatenablog.com/entry/2022/04/14/210000


また、コンソールコマンドが使えてしまう問題については、
こちらのツイートと記事を参考に、C++クラスを追加することで解決できました。

また同時に、ゲームの初回起動時に「このアプリの機能のいくつかがWindowsファイアウォールでブロックされています」というセキュリティ警告が表示されてしまう問題についても解決しました。

3 Likes

C++ファイル追加で解決に至りました!
C++ファイル追加の仕方の情報まで丁寧に付けてくれてどうもありがとうございました。
詰まることなくスムーズに進められました。
(OS再インストールする前ではなぜC++ファイルなしに普通にできていたのかが謎ですが)

C++ファイル追加することでPrintStringなども表示されなくなるようなので、
Compile Blueprints in Development Mode(開発モードでブループリントをコンパイル)は
「Shippingの処理かつコンソールコマンドを受け付ける」ようにしたいときに使えそうですね。

プロジェクトランチャーを使用する方法もありましたので、後ほど追記したいと思います。

2 Likes