BP_ThirdPerson Character Migration?

Beginner Question- One of the tutorials I recently completed had you add some blueprints to your default Third Person Character. Instead of rebuilding this blueprint in another project, I considered trying to migrate it to another project, by selecting the default Third Person Character where the additions were made. But the list of stuff to migrate over was huge, associated with all the default character meshes in the current project.

I also tried to just copy the just the character asset from one project to another, but when replacing the default third person character, when I hit play it did not seem to work, Instead of being in that 3rd person map space with room and a couple of maps, I was off out in nowhere land.

So here is the question: When you have created a blueprint consisting of multiple nodes inside the default Third Person Character blueprint, is there a way where you can can copy just this blueprint inside another blueprint and then paste it into the other project’s default Third Person Character?
Thanks!

Hey there @Fantam_Mayfly! Are you just trying to migrate one third person character template over to another project? If so migration should work fine.

Then you’ll see it’s dependencies (you will need a large portion, if not all of these)

Then you just choose which project you wanna send it over to!

But it sounds like you’d already done this, and am having issues getting the character itself to function as expected after the migration. If you hadn’t tweaked anything in the migration itself, then it should be working fine unless your target project has
different input action IDs or a different game mode.

For what it sounds like, the player is spawning somewhere unintended?

This could be that the player start is starting the player where it is instead of where you placed the character. If any of these exist it will take priority over player control every time.

If the player is spawning in the right location but it’s the wrong player, it’s possible you haven’t updated the game mode of the world you’re in.

you can override the game mode here or if it’s going to be your games primary you can change the game mode provided.

Though if neither of these resolve your problem, let me know with a bit more information (preferably pictures/video of the issue) and I can give more specialized advice! Hope this helps!

1 Like

I appreciate the answer. Hopefully you can clarify some things for me.

Regarding the game mode, does this come into play when you are migrating a character from a Third Person Project to a different Third Person Project?

When you create a 3rdPerson Project, you get a folder that says Third Person with a character BP_ThirdPersonCharacter, and you get a BP_ThirdPersonGameMode. and a Third Person Map.

This third person character is a blueprint, it has a place for it to insert the character mesh you want to use.

Questions:

  • As far as the project is concerned, can there only be one BP_ThirdPerson_Character?

  • When I was experimenting, with migration, I duplicated this Character as if I would migrate this and leave the original alone. But by creating this new character with a slightly changed name (2 added), have I now confused the engine?

  • What if you want to have multiple of these characters with different capabilities, is there a way to tell the project which of these files is the active one, or can there be only one the one named BP_ThirdPerson_Character?.. and that is the one the project uses?

OK so the tutorial I completed was to make a blue print to allow the default character to zoom from 3rd person to 1st person, I added a second camera, one camera to serve as the 3rd person camera and the other one to act as the 1st person camera.

So it involved making a second camera, and adding some action mapping.

When I went to migrated it first off I saw this huge list of dependencies, like you listed in your post. It seemed like I would be duplicating items in the project I was migrating this Third Person Character too.

Then when I tried migration, I got a message that the folder I was transferring this too was missing some references, and did I want to put it in it’s own folder or not and have it not functional. I told it to put it in it’s own folder, but when I got it in the project, and told the game to play there was no character and the starting location was outside of the starting room you normally see when you start a third person project.

At this point, I thought I should start asking some questions. I’m sure I’ll have some more.

If you make a customize the default 3rd Person Character, can you just target the Content folder and if it asks you do you want to put it in it’s own folder you say yes?

Thanks! :slight_smile:

So game mode for the template projects doesn’t matter too much as it’s pretty basic, you can just change your game mode in the project itself. All the game mode does in these projects is tell the basics of what happens when you press play. So if you take a look at this image:

All it’s doing is saying that it wants to use these BPs to handle the game. Most important for you in this situation is the one that handles the player. Default pawn class decides which pawn is spawned when you start the level. These are usually spawned via the Player Start objects I showed in the previous post.

There can only be one character by that name, but you can spawn with whoever you want, any pawn can be used at any time.

Nope, the engine’s not confused, all it’s going to do is keep spawning whatever the pawn the gamemode tells it to. So you could even change the name of the original third person character BP to whatever you want, it’ll still end up the entity spawned unless you change or override the gamemode.

You can just change which character the game spawns by changing the Gamemode or overriding it, image on how to do that below. Say you want to spawn as a different character:

  • Open the gamemode that is being used
    image

  • Then you can change the default pawn class here to your new default pawn. In my case I changed it to a copy of the third person BP I made to demo an endless runner for another community member.

  • And when you start the scene, you will start as your default pawn from the player start.

Alternatively you could also override it in the world settings for the level you’re in, or in the Project Settings.


During migration, if you leave out any pieces that your character needs like it’s skeletal mesh, bones, materials, or animations, things will break left and right so best to migrate everything you need. If you made a 3rd person character in another project into a hybrid 3rd and 1st person and imported it in a new 3rd person template, you’ll end up with duplicates of a TON of assets. If you don’t need the originals from the new template, you are free to toss the duplicates as they will just bloat your project. You just need to remember to set your new character as the default pawn for the gamemode you’re using in the new project.

If you’ve migrated the object and everything it needed, this warning shouldn’t be popping up for the most part, and you can import things into it’s own folder your side, everything should target correctly and in engine you can move things to the correct file structure later. If not you may have to check to make sure you migrated everything it needed appropriately.

Did you make sure the player start was where you wanted it? Is the gamemode of that world set to spawn the default pawn you want?

Absolutely.


If this didn’t help out, you can show me some examples of what’s happening I can probably point out what occurred! Hope this helps :smiley:

1 Like

Thanks for all of the helpful info! I will digest it. :slight_smile:

In a tutorial after adding run-walk and zoom from third person to first person in the default character, I was hoping to migrate it, not have to rebuild it in a different project. I’ll report back with success or… more questions. :smiley:

I’ve been trying to select an edited pawn (blueprint class, name altered from the standard “BP_ThirdPersonCharacter”) and migrate it to a different project. I find that the when navigating in the browser, that in the target project folder you can’t see the the Project file in the list, is that normal?

And when I select the Content folder as the target I get this message:
Asset Tools: Failed to load package/Game/Characters/Heroes/Mannequin/Meshes/SKM_Quinn.

I have no idea why I’m getting this message…
Of note in the target project the default mesh SKM_Quinn is already there, but I assume for this migration, it wants to include it’s own copy of SKM_Quinn?
Thanks! :face_with_spiral_eyes:

Hey there @Fantam_Mayfly! So whenever you migrate an asset it’s always going to look for it’s own reference to it’s own version of it’s dependencies. It won’t immediately recognize that the SKM_Quinn in your new project is where it’s supposed to be targeted. An easy fix would be to change the reference in your character to the new SKM, but obviously if you had any skeletal changes, animations, and other business you’d want the other one. If it’s the same skeleton you can absolutely go into your SKM in your new character and just change it to the one in the project you moved it to.

1 Like

Thanks for the help! This was my fear, a huge list of dependencies that if I said no to, I’d migrate something completely broken, until I went in and reconnected 50 or so items. However, In the case of adding blueprints to the character blueprint SKM_Quinn, and then wanting to migrate it, despite that huge list of dependencies migration produced, since this is an edited Quinn, and not only did all of it’s dependencies all ready exists in the target project, but it knew how to reamain connected to all of the dependencies.

This is unlike other migrations, where if you elect not to maintain dependency relationships. A bunch of stuff gets disconnected from each other.

The largest single problem with migration for other items, say a level/map is when you get that huge list and you say you want to maintain dependencies, it all get’s plopped into a single folder as a single group, all folder structure is lost, and you’ll end up sitting there scratching your head, figuring out what is duplicated in the target project (not hard, but time consuming), but what is hard and time consuming is identifying everything, and getting it put back together in the folder organization it had previously. I’d suggest, instead of migration, it might actually be easier just to recreate it in the target project.

As I said for this case moving the character blueprint turned out to be simple. Ok so from large list of dependencies, I deselected:

*  ControlRigj items
* Under Game Folder Turn off
  * Mannequin>Meshes- SKM_Manny and SKM_Quinn
  * Mannequin>Animations

And left just the character selected: ThirdPerson>Blueprints>BP_3P-1stPChar. I changed its name so it was easy to distinguish from the default Quinn.

To get the the migrated character blueprint’s added edited features (walk-run toggle and 3rd-1st Person zoom) to become functional, in the project settings, I selected Content>ThirdPerson> Blueprints and this is where it was moved. All I had to do was to recreate the “actions” located in the Project Settings Folder (Engine-Input) to get it functional again.

You’ve got it! Input actions need to be reconnected, the control rigs are more for you to use for new animations if you need them so you’re totally good to remove them. Though a word of warning, some game systems with some of the examples ie the vehicles from the Matrix example and things like Lyra have tons of dependencies in the form of plugins so if you ever migrate out from a project like that, make sure you have their plugins imported beforehand so things don’t break on import.

1 Like

@SupportiveEntity,
Maybe you would not mind reading my thread on the challenges of Migration, and get your perspective on it. I tried to migrate a level and it was holy hell. If I wanted to keep dependencies, everything, and I mean everything was just dumped into a single folder. I would hope that someday the make the Unreal Editor so that you can say “keep dependencies and folder structure”, even if that ends up in it’s own folder, at least that would be manageable.

I definitely agree that migration could be a bit less obtuse, but there is a ton more going on under the hood there than it looks though. To keep any references, redirectors need to be produced to the correct location and all that jazz. It might not be too much of a challenge to extend it to be a bit better, but when getting into file operations I’m a bit out of my depth, and it has to be able to work on Mac/PC/Linux so it gets even harder to make a migration tool feasibly user friendly.