PaperSloth’s diary

主にゲーム開発関連についての記事を書きます。

UE5 KawaiiPhysicsをBlueprintプロジェクトでもpkg化する方法

環境

  • UE5.3.2
  • KawaiiPhysics v1.14.0
  • Windows 10 Pro

概要

KawaiiPhysicsとは
github.com

おかずさん(https://twitter.com/pafuhana1213)が開発されているPluginで
揺れものを「かんたんに」「かわいく」揺らすことができる優れものです!

本Pluginの使用にあたってpkgを作成する場合、通常はC++プロジェクトへの変換が必要となります。

今回はこのPluginをBlueprintのみのプロジェクトでも(ちょっと強引に)pkg作成できるようにしていきます。
ざっくりと概要を書くと、Blueprintプロジェクトでも強制的に再ビルドさせればOKということです。
※動作保証は出来かねますので詰まりそうだと感じた場合は素直にC++プロジェクトへの変換がオススメです。

前準備

まずは新規にBlueprintプロジェクトを作成します。

続いてDLしてきたPluginをプロジェクトに入れて、プロジェクトを起動
KawaiiPhysicsが有効になっていることを確認します。

これで準備が整いました。

この段階でpkg作成,実行 / Quick Launchを行うと以下のエラーが出力されます。

Plugin 'KawaiiPhysics' failed to load because module 'KawaiiPhysics' could not be found.  Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project.

実行しようとしたけど、KawaiiPhysicsのmoduleが見つからないよ!とのこと。
どうして・・・

エラー解決、pkg作成までとQuick Launch手順

Web Browser Pluginを有効にします。
※分かりやすいので、Web Browser Pluginを使用していますがデフォルトで無効なPluginであればなんでも良さそうです(要検証)。

あるいは、直接.uproject に以下を追記

{
  ...
  "Plugins": [
    {
      "Name": "ModelingToolsEditorMode",
      "Enabled": true,
      "TargetAllowList": [
        "Editor"
      ]
    },
    // 以下を追記
    {
      "Name": "WebBrowserWidget",
      "Enabled": true
    }
  ]
}

この状態でプロジェクトを再起動して再度Quick Launchを実行すると以下のLogが出力されます。

UAT: Building {Project Name}...

長いLogが流れて、DLL等必要なものが再ビルドされて更新されていることが分かります。

懸念点

UAT: Using Visual Studio 2022 14.38.33133 toolchain ...(省略)

上記のLogが含まれており、ビルドするにあたってC++プロジェクト化は不要ですが
Visual Studio自体のインストールは必要かもしれません。

ここまでの手順でQuick Launch に成功しました。

pkgの作成

Sampleプロジェクトから動作チェックに必要なデータをMigrateしてきました。

Game Default MapをKawaiiPhysicsSample に変更

Development にてpkgを作成

無事にBlueprintのみのプロジェクトでもpkg作成が完了し、pkgを実行することができました。

まとめ

外部Pluginを導入した際にBlueprintのみのプロジェクトではQuick Launchやpkgの作成/実行に失敗することがあります。
今回のように、別途何かしらのPluginを有効化することで強制的に再ビルドさせることができる場合があります。

さて、1つ困ったもので…
このあとにWebWidget Pluginを無効化した場合には再度pkg実行が出来なくなってしまいます。
そのため、出来るだけ影響の少ない小規模なPluginを選定して有効化できると良さそうですね。

ちょっとしたハック的な手法になりますので
少しでも動作がおかしいな?と感じたらC++プロジェクトに変換するのが現状最善の策だとは思います。

他にも外部Pluginの影響で上手く動かないなって時は試してみてください。
因みに、今回はKawaiiPhysicsだったため素直に動作しました。

別のPluginでDependenciesPluginsに色々なPluginが含まれている場合にはもう少し複雑な回避方法になります。
その手順についても、どこかでいずれ公開できればと思います。

以上です!