Child with inherited AI Perception Componenent causes crash
Lately i've been receiving crashes with child blueprints that have a AI Perception Component inherited. The engine itself doesn't crash, however when closing the engine and booting it up again it does cause a crash making the project unable to boot up.
Only way to solve it is to delete the childed blueprints and set them up again. These are childs with no additonal code, nor is the AI Per. Com. adjusted in the children, it inherits everything. Only thing I change would be the Skel Mesh and even that causes it to be unable to boot up.
I've reset-up the childeren multiple times, I even tried to change the name of the per. com. but all with no luck. Anyone an idea?
Here's the crash log:
Assertion failed: !Obj->HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad|RF_ClassDefaultObject) || bIsOwnedByCDO [File:D:\Build\++UE4+Release-4.14+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp] [Line: 2358] Attempting to replace an object that hasn't been fully loaded: AISenseConfig_Sight /Game/_CORE_GAME/AI/Childs/FemaleRobot.FemaleRobot_C:AiPercepComp_GEN_VARIAB
Full crash log:
There is a workaround in blueprint too: Clear all AIPerception configurations (sense config, dominant sense) in the parent class. Than you can configure the AIPerception in the child classes like you want without crash. You can also use inherited AI events from parent class.
answered Nov 10 '17 at 03:00 AM
So, after some investigation and testing, I believe that you're running into the same issue as the one linked below:
The issue is currently being investigated by our developers, but there is no timeline for when a fix will be released at this time.
Thank you for your report.
Have a great day
answered Feb 16 '17 at 12:56 PM
Sean L ♦♦ STAFF
there is a workaround for this issue, as i've run into this problem a lot using aiperception components as well as procedural mesh components. if you're using blueprints, don't add the component in the components tab (meaning don't use the +add component button). instead, in the construction script, add the component using a node i.e. "add ai perception component" or "add procedural mesh component". then, assign the returned value to a variable. use that variable to do all your logic stuff. this method seems to bypass all of the registration problems causing the fatal errors, and actually allows for a null value where you can check if the variable is valid anyhow. fractionally larger overhead, but it works.
answered Jul 29 '17 at 05:05 AM
Follow this question
Once you sign in you will be able to subscribe for any updates here