I need help to create PaperZD Sprite in a 3D World Camera (Billboarding)

Hello again @ZodiacWarlock ! How are you doing?

I’ve been testing a lot of things here and I found a way to make it work! I completely ignored the materials part suggested by Fofuxo and directly made the Sprite rotates towards the camera every frame, which is easier to do (I will show you how to do it at the end of the post!).

I’m gonna show you how I implemented it!

First of all I implemented the sprites and character BP as in the official UE tutorial but added a coupla changes to make it work with camera rotation.

This is my IMC for movement:


As you can see, I “negate” the S instead of W, as I will be implementing the movement slightly different.

This is my Input and IMC config for camera rotation:


This is how I handle the movement and camera rotation:

The next thing to modify is the Spring Arm component and the Sprite rotation, so you can rotate it without any issues.

This is my Spring Arm component settings:

But to make it work perfectly, you will need to rotate the sprit so it faces the same direction as the arrow component, like this:

Keep in mind that, in this method, you don’t need to change the initial rotation of the Spring Arm component, as you will rotate the Sprite instead!

Now the last two things to do! The first one is to make the Sprite face the camera, and the second one is to calculate the directionality for the animations! For both things I created two different functions adn added them to the Event Tick:

The “Make Sprite Face Camera” function is this one:

And for the “Get Directionality” function I created a “Directionality” variable of type Vector 2D in mycharacter BP and used it this way:
image

That “Directionality” variable is used within the Animation Blueprint, replacing the official tutorial calculations:

And that’s it!

With this you will have a sprite that always faces the camera and changes the animation depending of movement direction and camera rotation!

Here is a video of it working:

Hope this helps you and let me know if you need more help!