Not all classes available for reparenting a blueprint
For some parent-less BP classes (Parent Class is "None"), lots of classes do not appear when I try to reparent them.
Basically I am attempting to migrate a c++ project by migrating all the assets to a blank c++ project. So far I have successfully transferred and compiled all the c++ classes (after making the appropriate project name changes). I have also migrated all the blueprints.
However, the blueprints that had c++ parents in my last project are now parent-less. I figured all I need to do is re-parent them to the c++ classes that are already compiled. However, they don't show up in the re-parenting drop-down. In fact, many classes don't appear. For example, I have a "Unit" class which is a child of APawn (which is a child of AActor). Blueprints that used to be a child of Unit cannot even be re-parented to Pawn or Actor, or any of their children. In fact, the only classes that show up are widget classes, and things like that.
How do I re-parent them to the class they're supposed to be parented? In fact, how can I even re-parent them to Actor? (Something that seems like we should obviously be able to do.)
asked Dec 21 '18 at 06:27 AM in Using UE4
One workaround I found is to re-parent all the BPs that you want to migrate to a more generic class that's inherent in the editor (e.g. Pawn, Actor). Then migrate the asset, and then re-parent it back to its original c++ parent class. (This assumes you successfully transferred and compiled all your c++ code to the new project.) If you do this, I highly recommend you do it from a copy of the project from which you want to migrate, not the project itself. This will break a lot of stuff.
This is a very crude work-around. Depending on the Blueprint, it requires extensively going through that blueprint and fixing a lot of the errors that occur from the re-parenting, resetting defaults, etc. It's quite a hassle, and it cost me a lot of time. I don't think this "solution" is deserving of an acceptance tick. I await a more elegant solution. If there doesn't exist one, then perhaps this should prompt a requested feature.
I had the same problem. While I don't know the underlying cause of the missing class names, I was able to reparent using ini file class redirects as described here.
In DefaultEngine.ini put something like:
You may also need to do the same thing with struct redirects. The code responsible for redirecting your classes (and structs) is in FLinkerLoad.
answered Apr 03 '19 at 06:58 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here