ほびーらいふ

趣味に関すること。ゲームとかUE4とか。あと好きなサービスとか。

パッケージ化時に自動で自作のデバッグ機能をオフにする方法

記事について

今回の記事はデバッグ用で機能追加したものを、shippingでのパッケージ時に無効化する方法です。
記事を探してもあまり見つからなかったので、備忘録を兼ねて書いてみる感じですが、間違えてる可能性は0ではないので、間違ってたらのろうさのTwitterなりで言ってくださると嬉しいです。

経緯

なんとなく新しく何か作ろうと思ってGithubのプライベートリポジトリに新規のプロジェクトを作成したことが発端です。
今回作ろうと思っているゲームでは後々のバランス調整用にデバッグモードみたいなものが作れたらいいなぁと考えています。
普通に組んでしまうとデバッグモードで使用しているノードの接続を切らないと、Shippingでパッケージ化をした際にデバッグモードが有効になったままになってしまう。だからといって、毎回ノードの接続を切っていくのも面倒なので、少しでも楽をしようとした結果がこの記事になります。 要はパッケージ化を押した際にDevelopmentの時はデバッグが使える、Shippingの時はデバッグが使えない状態にと自動で切り替えるようにします。

使用したバージョンなど

  • Unreal Engine 4.21.2
  • サードパーソンテンプレートを使用

やり方

手順1

プロジェクトを作成したらGameInstanceを作成して、プロジェクトと紐づけてください。
GameInstance内に以下のようなブループリントを組みます。

Is Packeged for Distribution は、編集/プロジェクト設定/ パッケージ化/Build Configurationの設定によって結果が変わります。

Development Shipping
False True

手順2

最後にThirdPaersonCharacter内に以下のブループリントを組み込みます。

この例ではキーボードの1キーを押したときにプレイヤーの移動速度を大幅にアップさせています。
実際にパッケージ化をそれぞれで行うと、うまく機能しているのがわかるかと思います。

手順3

今後はBranchの引数にGameInstanceから引っ張ってきたBool値を使用することでパッケージ時のデバッグの切り替え実装が簡単にできるかと思います。

まとめ

以上、だいぶ端折る形になりましたが、これで一通りとなります。
お疲れ様でした。
参考にしたサイト様は以下となります。
kagring.blog.fc2.com