I am in the process of updating from 4.6.1 to 4.7.2 building the editor and engine from source for Windows, Playstation 4, Xbox One.
When trying to open a certain Blueprint (or when starting the game itself) I end up in an assertion while the Blueprint compiler tries to compile a Blueprint:
void FKismetEditorUtilities::RecompileBlueprintBytecode(UBlueprint* BlueprintObj, TArray<UObject*>* ObjLoaded)
{
check(BlueprintObj);
checkf(BlueprintObj->GeneratedClass, TEXT("Invalid generated class for %s"), *BlueprintObj->GetName());
“GeneratedClass” is a nullptr.
These are suspicious messages from the log:
[2015.03.11-12.54.23:677][493]LogBlueprint:Error: [compiler] Error This blueprint (self) is not a Actor, therefore ' Target ' must have a connection.
[2015.03.11-12.54.23:680][493]LogBlueprint:Error: [compiler] Error This blueprint (self) is not a UI_PlayerShip_BP_C, therefore ' Target ' must have a connection.
[2015.03.11-12.54.23:681][493]LogBlueprint:Error: [compiler] Error This blueprint (self) is not a UI_PlayerShip_BP_C, therefore ' Target ' must have a connection.
[2015.03.11-12.54.23:683][493]LogBlueprint:Error: [compiler] Error This blueprint (self) is not a UI_PlayerShip_BP_C, therefore ' Target ' must have a connection.
[2015.03.11-12.54.23:740][493]LogBlueprint:Error: [compiler] Error Variable node Get SideWeaponAttachPointRight uses an invalid target. It may depend on a node that is not connected to the execution chain, and got purged.
[2015.03.11-12.54.23:741][493]LogBlueprint:Error: [compiler] Error Variable node Get SideWeaponAttachPointLeft uses an invalid target. It may depend on a node that is not connected to the execution chain, and got purged.
[2015.03.11-12.54.23:743][493]LogBlueprint:Error: [compiler] Error Variable node Get FrontWeaponAttachPoint uses an invalid target. It may depend on a node that is not connected to the execution chain, and got purged.
[2015.03.11-12.54.28:507][493]LogBlueprint:Warning: RefreshAllNodes called on incompletly loaded blueprint 'WidgetBlueprint /Game/UI/VictoryMenu_BP.VictoryMenu_BP'
UE4Editor-Win64-Debug.exe has triggered a breakpoint.
The first compiler errors are especially strange since for testing/debugging purposes I deleted the nodes that caused the error however the errors still show up!?!
Right now this means we cannot update to 4.7.2 since we cannot start the game anymore and we cannot edit the Blueprints that seem to cause the problems. However we need to update in the near future as we need an engine version that is compatible with a fairly recent PS4 / Xbox One SDK to be able to submit our game.
How can we proceed? Is this likely to be fixed in 4.7.3? Or 4.8.0? We could provide our full project sources if needed.
Does the crash occur in a new 4.6.1 created/converted project? Is the node being used a custom C++ created node? Additionally, could you post the log files inside the Saved->Logs folder from the crash as well? If you’ve narrowed the cause of the crash to a single blueprint you can try to move its .uasset from the content folder and then open the project.
The project started with UE4.2 I believe and we converted the project with every minor version (4.3, 4.4, etc.). It works fine with 4.6.1 which my colleagues are still using. I can open the project itself but I cannot launch the game due to the assertion mentioned. I then tried to open the offending Blueprint which leads to the same assertion as when starting the game.
Moving the asset does not help as it handles most of the menu of our game and without it the game won’t start anyways.
To clear up some confusion I’m having, when you say that the game won’t start are you referring to opening the project in the editor or attempting to play the game in the editor or standalone window? Would it be possible to send us the broken asset so we can try to take a look at it?
Could you post the logs from the crash to provide additional information, but looking at the asset it seems that the Call OnSwitchTo node in the EventGraph is causing the problem. If you’re unable to open the blueprint in your current project I would try migrating a copy to a new project and open it there to try to remove the node. If you’re able to do so you can then migrate it back into your current project and continue working from there. If you need to add the OnSwitchTo node back in be sure to give the Target input pin a reference to the correct type as well.
I removed all “OnSwitchTo” Nodes using UE4.6.1 and copied the modified asset into the UE4.7.2 version. However that does not seem to change anything. I attached the log of trying to start a PIE session.
Is it still possible to send the full project for testing? If so you can upload a zipped file to dropbox and then send me a private message on the forums with a link to it. If you can do so, please send the working 4.6 project (that just needs to be updated to 4.7 and breaks, correct?). Also, now that 4.7.3 is available I would also try upgrading the project again to see if you still receive the same error.