Using UE4 4.8.1 I’ve made a child blueprint of a blueprint called BP_PlayerCharacter. I’ve not changed inherited mesh or animation that is attached to it. However when I close editor after saving everything and relaunching engine mesh and animation are set to “none” instead of inherited values. Even if I change them to something completely different to parent, save and compile, then close/restart editor they just reset. I’ve tried re-creating both blueprints but to no avail. It just ends up being different things not loading correctly.
This occurs on both restarting editor and packaging game.
I haven’t been able to reproduce this behavior in 4.8.2. To test, I made a new Character Blueprint in a new ThirdPerson template, and assigned SK_Mannequin as Skeletal Mesh and ThirdPersonAnimBlueprint as Anim Blueprint Generated Class. I then made a child of this BP, saved all, closed and reopened project. There was no change in any of child BP’s values.
Did I miss any steps? Does this happen in a new project as well, or only your current project?
Not entirely sure, I tried it on a new project and it doesn’t seem to have same effect. Though I’ve had times when launching my project and it hasn’t changed, but then after a few times in and out of editor it begins playing up again. It’s like flipping a coin when it comes to opening my project.
I’ve talked to creator of an asset pack I’m using. Generic Shooter Example pack on marketplace. He mentioned that this used to be a problem that was supposed to be fixed in 4.8 but people are still seeing issue now and then. It’s nothing to do with his content pack, as it happened before I even began using his assets. I’ve tried re-installing Unreal Engine as well as launcher. As stated in my question I’ve tried re-creating assets from scratch and it still occurs.
child Blueprint is BP_PlayerCharacter_Engineer
That’s what I’m having issues with. Whenever I launch editor/package game I also tend to get this error:
BlueprintLog: New page: Compile BP_PlayerCharacter_Engineer
LogOutputDevice: === Handled error: ===
Ensure condition failed: !GetClass()->HasAnyClassFlags(CLASS_NewerVersionExists) [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.8\Engine\Source\Runtime\CoreUObject\Private\UObject\ScriptCore.cpp] [Line: 625]
Object 'REINST_BP_PlayerCharacter_Engineer_C_524 /Engine/Transient.World_2:PersistentLevel.BP_PlayerCharacter_Engineer_C_0' is being used for execution, but its class is out of date and has been replaced with a recompiled class!
I’m not sure if I can help here but, perhaps you can try use data struct/table. This is how I do it on my end - I have a BP called WeaponBP_Master. This master BP has variables that will be inherited to child but has no value.
Then, I create data struct/ store data in data table. So, whenever I create a new child for weapon master BP, I will create new row in data table, which I will fetch it to set vars inherited from master BP at construct script, inside newly child BP. I’m not setting variables manually inside child BP.
I haven’t tried it on character type BP thou, as weapon master BP is based on actor. But I imagine it would work.
I checked out project and I can confirm I’m seeing this, only with Anim BP in Engineer’s Skeletal Mesh component. I’m probably going to need to open a ticket specifically for this project, since I cannot find cause.
It does seem related to an issue we used to have in 4.7, but that was fixed in 4.7.4 if I recall correctly, and it would replace a reference with PLACEHOLDER_AnimBPName, rather than none, in most cases at least. I’m assuming, though, that project you created to use assets from Generic Shooter was a 4.8 project? And original project you used was 4.7.4 or later?
EDIT: For reference, this was issue I’m referring to:
I’ve created a bug report for our developers (UE-18765) and included your project so they can look into it further. I will let you know as soon as I have any update for you.
I just wanted to post that I am also having this same issue, Also with Generic Shooter Pack from marketplace. I have been trying to figure out what is going on. And have reproduced it with just pack no changes except making a child blueprint of player character and a duplicate of player character. Both have same results. Works fine until closing editor and reopening it will reset animation blueprint and mesh to none. It is not only child blueprints that are affected.
Edit: This is with using stock 4.8.2, no code changes
Is there an ETA? 4.8.3 or 4.9?
This project is part of a university assessment that we could risk failing with this problem since we can’t test anything.
I’ve setup child blueprint to OnBeginPlay set mesh and anim blueprint but now when packaging a development build, it causes a bunch of other problems.
I’d also like to add that creating a “shipping” build of that project results in an error as well. Failed to open descriptor file. Which I have not seen a solution for anywhere except for android devices which we are not using.
It happened on previous version of my project also, that did not use Generic Shooter Pack.
Unfortunately no ETA at this time. I’m going to talk to Marketplace team to see if they can look into that content pack, but for now your solution of setting values on BeginPlay is only one I can think of. resulting packaging issue is likely unrelated to this bug, and I’d encourage you to create a new post so I can get right people to look into that.
assets in Generic Shooter were created in 4.7 but were migrated to 4.8 once I started including 4.8 only functionality. I encountered this issue across all blueprints and had some back and forth with Mike Beach on GitHub. Perhaps issue is a a lingering artifact from then. Recreating these blueprints from scratch would be a severe pain, any ideas on what would be best way to ‘clean’ them? I’ve been requesting a ‘blueprint cleaner’ since Rocket xD. Lots of bad things can remain serialized over time it seems.
I spoke with Mike Beach, and he’s not exactly sure what problems a “blueprint cleaner” would fix. He agrees that this sounds related to cyclic dependency issues that was causing issues in 4.7, though in this case it’s not using PLACEHOLDER_ references like it was then.
There’s also another issue he’s working on now that may be related, though it specifically regards components: UE-17675
Let us know if you’re able to integrate that GitHub commit and whether it fixes this issue for you. @Allar: are you able to reproduce this on your end as well?
Since updating to Allar’s newest version of Generic shooter I’m no longer experiencing this issue. I’m not sure what even changed but it’s no longer coming up for me.
Thanks to both of you for your help. If you need latest copy of my project perhaps to compare and find issue I’ll be happy to PM a link to you.