お世話になっております。
現在、デバッグ用の機能を持つプラグインを用意しており、Shippingビルドでは不要になるので、その場合のみ無効にしたいと思っております。
最低限、プラグインに含まれるコンテンツをパッケージから取り除きたいと考えているのですが、何か方法がございますでしょうか?
ご教示の程、よろしくお願い致します。
お世話になっております。
特定のプラグインをShippingビルドでロードさせたくない場合は、「プラグイン」にあるTypeをDeveloperやEditorなどに変更してください。ただしこの場合はパッケージには含まれることになります。
次に特定のプラグインをShippingビルドのパッケージから取り除く場合は、「パッケージ化したゲームのサイズを小さくする方法」の「ブラックリストをパッケージ化する」をご参考下さい。ブラックリストでは特定のビルドでパッケージに含むアセット(及びフォルダ)を指定することができます。
例えばWindowsのShippingパッケージで特定のPluginを除外するケースでは、 PluginTest\Build\Win64(WindowsNoEditorではない)
の配下に PakBlacklist-Shipping.txt
を作成して、その中にPluginまでのパスを記述してください(例: ../../../PluginTest/Plugins/MyPlugin/
)。
ビルド構成を問わずにパッケージから除外する場合は、Pluginsからプラグインそのものを無効にするか、ProjectSettingsのDirectries to never Cookからプラグインフォルダを指定することができます。
よろしくお願いします。
ご返答ありがとうございます。
ご提示いただいたブラックリストによる対応を試みたのですが、上手くいきません。
実際のサンプルを用意致しました。
間違い等あれば、ご指摘頂きたく存じます。
サンプルありがとうございます。情報が不足しており申し訳ございませんが、ブラックリストに登録した内容は、Stage->Packageの過程において「.pakを作成する際に除外されるアセット(及びフォルダ)」となります。サンプルでは(おそらく確認のために)UsePakFileをオフにされていたのかと推測しておりますが、.pakファイルを作成しない場合は単にStagingのコピーをするだけなのでBlacklistの内容が反映されません。UsePakFileをONに設定した場合、頂いたサンプルで作成した.pakファイルにMyPluginが含まれないことを確認しております。よろしくお願いします。
はい。おっしゃる通りこちらで確認した際にUsePakFileはオフにしていました。
オンにして確認した結果、ファイルサイズに差が出ていたので何かしら影響があるのは把握できたのですが、具体的な中身が分かりません。
不勉強で申し訳ないのですが、.pakファイルに含まれるアセットを確認する方法を教えていただけますでしょうか?
また、今回のブラックリストによる対応だとプラグインを導入するプロジェクト毎に設定をしなければならないと思うのですが、プラグイン内の設定だけで対応することはできないでしょうか?
重ね重ね恐縮ではございますが、よろしくお願いします。
UnrealPakのコマンドから-listコマンドを実行することで確認することができます。
UnrealPak.exe -list PakFile.pak
UnrealPak.exe
は\Engine\Binaries\Win64\にありますのでパスで指定してください。 PakFile.pak
は実際に確認する.pakファイルまでのパスを指定してください。.batファイルなどに記載して実行することで一覧を確認することができます。プラグイン内の設定だけで対応することは現状できません。
承知いたしました。
ご対応いただきありがとうございました。