UE5.2以降のプラグインのパッケージングの際の注意点!!



題名の通りUE5.2以降で自作のPluginをパッケージングする際の注意点を
備忘録としてまとめました

(僕はこれにハマり約半日無駄にしたので同じ人が出ないように・・・)。

先に結論ですがPluginでRayCastを使用する処理がない場合は今回の記事は
関係ないのでブラウザバッグ

関係ある人は読み続けて下さい。

それでは
Pluginを作成するときは大体以下の手順で作成するかと思われます。

テンプレートを選択してPluginの名前を決めます(今回はCPPTest)

その後、任意のC++クラスを追加します。


今回はActorComponentを継承したクラスを作成しました。

さて、作成したクラスを開いてみると以下のようになってるかと
思われます。

緑で囲った部分が追加した変数です。そしてこのままPluginをパッケージングすると
エラーをはいて怒られます!!

エラーの内容が
FHitResult:Rayが衝突した時の相手の情報をまとめる構造体
が未定義ということでした。
おそらく必要なヘッダファイルが足りないと予測したので

公式ドキュメントで調べてみると

docs.unrealengine.com
なんと、APIが5.1以前のもので5.2以降は近々作成されるとのこと!!
当然書かれてるヘッダファイルのパスも違うと思うし
ページが更新されるまで待てないので自分でパスを調べに行きました。

先に言ってしまうと調べたパスをヘッダファイルにインクルードした所

 

エラーを吐かずにパッケージが通りました!!

 

そのパスの調べ方なのですが
未定義と怒られた型情報を調べるとできます
画像のオレンジで囲った部分にカーソルを持っていきCtrl+左クリックで


型が定義されてるヘッダファイルへ飛ぶことができます。
画像のように以下のような感じになります
そして出現したヘッダファイルを右クリックして完全パスのコピーを
選択します。そうすることでパス情報がコピーされるので


あとは
以下の画像のように(注:MyActorComponentのヘッダファイルです)
パスを張り付けておけば未定義とならずに済みます。

上の画像の水色で囲った部分がパスを張り付けたものですが、
パスが長すぎる上にパスの区切りがバックスラッシュになってるので
適切な形に修正します(修正したものが青色で囲った部分です)

自分はこの方法を発見できるまで半日という長い時間を無駄にしました
参考になれば幸いです。

もっといいやり方があればぜひ教えて下さい。