情報は力ではない

UE4 とか Blender とか。

GameplayAbility を最初に使用した際にゲームが止まるのを修正する方法

GameplayAbility を使っているプロジェクトで開発していると、エディタの起動後、ゲームをプレイして初めて GameplayAbility を使用した場合に一瞬から数秒ゲームが固まることがあります。

多分、GameplayAbility の使用時に何かを探索しているのかなとか考えてたのですが、解決方法が、AnswerHub に書いてました。

https://answers.unrealengine.com/questions/820453/gameplay-ability-long-lag-on-first-use.html

DefaultGame.ini に GameplayCue のあるフォルダを指定してあげると解決できるみたいです。

 [/Script/GameplayAbilities.AbilitySystemGlobals]
+GameplayCueNotifyPaths="GameplayCue があるフォルダのパス"

GameplayAbility を最初に使用する際に、CueManager が作成されるらしく、その処理の中でプロジェクト内の GameplayCue を探し出し、Cue をプールする処理があるそうです。 上記の GameplayCueNotifyPaths は、どこのフォルダを探索するかを指定する設定のようです。 GameplayCueNotifyPaths のデフォルトは /Game/ なので、指定しないとプロジェクト全体を探索してしまうため、ゲームが固まることがあるみたいです。 なので、上記のように GameplayCueNotifyPaths を指定してあげることで解決します。

ちなみに、親切にもログにちゃんと書いてました。

LogAbilitySystem: Warning: No GameplayCueNotifyPaths were specified in DefaultGame.ini under [/Script/GameplayAbilities.AbilitySystemGlobals]. Falling back to using all of /Game/. This may be slow on large projects. Consider specifying which paths are to be searched.

ちゃんとログは読まなきゃですね。

今回は以上です。