x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

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.)

Product Version: UE 4.21
Tags:
more ▼

asked Dec 21 '18 at 06:27 AM in Using UE4

avatar image

Bridgeburners
6 3 4

avatar image Evigmae Dec 21 '18 at 05:09 PM

Can't remember where, so I can't provide a link, but I'm half sure i saw another question where the answer was that this problem has no solution, those blueprints are locked now.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

2 answers: sort voted first

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.

more ▼

answered Dec 22 '18 at 08:07 PM

avatar image

Bridgeburners
6 3 4

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

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:

 [/Script/Engine.Engine]
 +ActiveClassRedirects=(OldClassName="/Script/OldModule.YourClassA",NewClassName="/Script/NewModule.YourClassA")
 +ActiveClassRedirects=(OldClassName="/Script/OldModule.YourClassB",NewClassName="/Script/NewModule.YourClassB")
 

You may also need to do the same thing with struct redirects. The code responsible for redirecting your classes (and structs) is in FLinkerLoad.

more ▼

answered Apr 03 '19 at 06:58 PM

avatar image

drichardson
35 3 7 5

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question