Why I can't move Pawn but only Character

I was trying to implement my own spectator type of Pawn class using BP where I have different way of camera movement is needed. After struggling a lot I have created the logic which is working which I have tested using actors on the scene.

When I have begun, I had no clue how to change the behaviour but finally understood I need to create GameMode and Pawn/Character class which I did by created Pawn. I chose to use Pawn because I dont need charactermovement behaviour and then created below network nodes which is working fine for character class but not for pawn class

I am sure there is nothing wrong in this (please help me find if there is anything) but I doubt if I need to do anything else like changing pawn’s properties or adding some components etc., My pawn BP is right now doesn’t have any component or mesh except above Event Graph

By default Pawn doesn’t have a movement component so you need to add one to it.

Cheers,

–mieszko

I don’t see MovementComponent in list (when click on Add Components button). There are only RotatingMovement and ProjectileMovement components related to movement. What is the other way to add? I had to change the parent class to DefaultPawn which added movement component itself. Is it a bug or expected? In forums (looking at target object while rotating around it - Blueprint - Epic Developer Community Forums) Syntaks said its not available in pawn.

RotatingMovement and ProjectileMovement are types of movement components, and are the only ones available for addition via Blueprints in the UE4 version you’re using. If you checked out the promoted build from the github you’d also get FloatingPawnComponent and that’s probably what you’d need.

You can also take a look at Flying Game template (or whatever is the name), it has a kind of spectator movement implemented without a movement component.

Just looked into the C++ header file of ACharacter and there i found this:

/** CharacterMovement component used by walking/running/flying avatars not using rigid body physics */
UPROPERTY(Category=Character, VisibleAnywhere, BlueprintReadOnly)
	TSubobjectPtr<class UCharacterMovementComponent> CharacterMovement;

But i don’t know if you can add this with Blueprints too. :confused:

Ok, i just saw that adding the MovementComponent via Blueprint is impossible. You can add it via C++ Code or you could create a blueprint of type “DefaultPawn” that derives from pawn:

@MiezkoZ eXi is right.

eXi. Please add answer so I can accept or vote up.

@MieszkoZ Your answer is incomplete and incorrect. Because we can’t add MovementComponent to Pawn class unless it is derived from DefaultPawn. Please add this point in your answer so it can be useful. I use stackoverflow alot :slight_smile: If its ok here then I really don’t mind

Using DefaultPawn is the solution to your specific problem, I agree. What I’m saying to all other people that will read this in the future is that the default Pawn class doesn’t have a movement component, and if they wanted to use it they need to add one themselves.

I have no idea what you mean by “we can’t add MovementComponent to Pawn class unless it is derived from DefaultPawn” since you can, it’s just the range of possible components is limited, which needs to be addressed.

If I am not wrong, only way to add components in the editor is by clicking on the “Add Component” button in the blueprint and select the component to add from the available list. If your BPs parent is Pawn (and not DefaultPawn) you won’t see MovementComponent in the list. So far I know this is the only way to add component in the blueprint. So if its not listed there then how can we add it?

I’m talking about movement components not MovementComponent. Like I said before RotatingMovement and ProjectileMovement are movement components and are selectable from the component dropdown list. Other movement components are for some reason hidden in this list and that should be investigated.

Also, MovementComponent you see in DefaultPawn's component list is just a name of the variable, not a class. This specific one is of type FloatingPawnMovement which I recently marked as safe for adding via blueprint so if you get binaries from github or wait for the next UE4 version that contains that fix (not sure if it will be in 4.7) you’ll be able to pick it for any Pawn-derived class and get the same movement functionality as DefaultPawn does.

Thanks for clarifying. What I understood is that, in blupeprints we should be able to add MovementComponent in a Pawn blueprint but we are unable to due to some reason, probably a bug." I can check in 4.7 and let you know tomorrow.

No. You’re already able to add a movement component (which you may, but doesn’t have to name as MovementComponent, it’s just a name and doesn’t really matter). The thing that’s missing is ability to pick FloatingPawnComponent as a class of a movement component, which has already been addressed (although I’ve just checked and it’s not even in 4.7, use DefaultPawn for now).

I understood the composite pattern implantation but unable to speak UE language. I will still learning

I have recently made something like this with default pawn in 4.6 which worked, then converted it to 4.7, and it didnt move, so i created a new 4.7 project starting from the flying template and I redid (almost?) everything the same way as in the previous project, and my pawn still doesnt move. What could I have missed? Could this be broken in 4.7, or I just didnt check some boolean somewhere?

Or perhaps should I instead use addActorLocalOffset just like in the flyingtemplate’s pawn ?

Currently I’m using a derived default pawn with an aicontroller, and I use a playercontroller which calls add movement input upon an input axis event on the pawn. Much like on the picture, but the playercontroller has the graph and the target is a pawn variable for the default pawn I created. (The reason for this structure is because I’m trying to make the basis of an RTS)

Try this it works for me

Moving a pawn with no character movment

T

This answer was correct for me. Though fairly, its not clear. Adding a floating pawn component allows you to “fly” and you can adjust the settings from that afterward.

DefaultPawn is acctuly flying movement component.And doesn’t implement gravity.

Does any of this count for “Simple move to”. Do I need to enable or add something to get it working ?