-
Notifications
You must be signed in to change notification settings - Fork 5
Description
いつもお世話になっております。
UE4.23以降でFTickableGameObjectクラスを
継承したクラスをグローバル変数として宣言していると
クラッシュする問題がありまして、
SpriteStudioの条件を満たすコードにつきまして、
対処方法を質問させて頂ければと思います。
(現時点で、SpriteStudioはUE4.22までしか対応していないとは思うのですが、
不具合修正のために部分的にUE4.23の対応を入れたい箇所がありまして、質問させて頂きました。
バージョンは右記の通りです。SpriteStudio6.uplugin⇒VersionName" : "1.3.2")
UE4.22.Xまでのバージョンで、Switchで
TickからFTickableGameObject継承クラスをAsyncLoadすると
クラッシュする不具合がありまして、UDNで質問をしておりました。
(UDN上では具体的に挙げていないのですが、USsPlayerWidgetを使用している
WidgetBlueprintをAsyncLoadすると落ちる問題でした。)
"https://udn.unrealengine.com/questions/510304/tickからftickablegameobject継承クラスをasyncloadするとクラッシュする.html"
UDNではUE4.23でこの不具合は修正され、
以下のチェンジリストで修正しているとご回答いただきました。
//UE4/Dev-Coreストリームの
#6573248
#6809956
ですが、上記修正を適用したところ、グローバル変数
FSsOffScreenRenderDestroyer GSs6OffScreenRenderDestroyer; ◆SsRenderOffScreen.cpp
の宣言でクラッシュする問題が発生してしまいました。
恐らく、FTickableGameObjectのコンストラクタで、
GSs6OffScreenRenderDestroyerのコンストラクタが呼ばれる時点では未初期化の
static宣言されたAllocatorが使われるため、
クラッシュしてしまう現象が発生していると考えております。
〇クラッシュ時のコールスタック
アプリ名-Switch-DebugGame.nss!LockFreeLinkAllocator_TLSCache::Pop() Line 136 (0x9F92BC8) C++
アプリ名-Switch-DebugGame.nss!FTickableGameObject::FTickableGameObject() Line 74 (0xCD82CB0) C++
> アプリ名-Switch-DebugGame.nss!FSsOffScreenRenderDestroyer::FSsOffScreenRenderDestroyer() Line 18 (0x83B6010) C++
アプリ名-Switch-DebugGame.nss!__cxx_global_var_init.292() Line 55 (0x83A91CC) C++
アプリ名-Switch-DebugGame.nss!_GLOBAL__sub_I_Module.SpriteStudio6.cpp() Line 96 (0x83A9A7C) C++
アプリ名-Switch-DebugGame.nss!__cxx_global_array_dtor.64() Line 685 (0x800D150) C++
nnrtld.nss! (0x8000858) Unknown
nnSdk.nss!nn::init::Start (0x1BC67424) Unknown
nnrtld.nss! (0x80000BC) Unknown
こちらの問題について、どのように修正したらよいか、
ご教授いただけませんでしょうか?
ご確認の程、宜しくお願い致します。