Question for "Doom like" sprite system

Cool, thanks!

Can anyone help figure out what values I will need to break this down into 8 angles?

Sorry for the bump but I would like to know how to get this to work with 8 different angles as well. I’ve been trying for a while and I just can’t figure it out.

Hi, sorry for necroposting, I was looking for this because I’m making a sprite based FPS so I tested your suggestions and found a very easy way to make it work. If you modify it, it will work with 8 sides as well:


And that’s it, here is the rest which are just some PrintStrings to test if it works, if you change them for Enums setting the sides then you can change the flipbooks and make the character behave like in old school games:


I’ll release a full and free project soon teaching everybody how to make a sprite pased FPS but if you can’t wait here you have a good way to have your Doom clone :smiley:

Hello again, I’m posting because what I wrote before only works in World Space without taking into account the actor rotation, I made the changes to make it work properly:





Wow. this is super nice! i was looking in moddb for your progress. very cool. will u bring a tutorial on doom clone? it would be supergreat to implement multiplayer

I have tried adding a 90 degree and 180 degree compare node. It works with the front, just not with th back. Any help?


8 Sides anyone? Credit to masterneme]( for the original code. This is just an adaptation of his!

Or just use an array and an inverse lerp into lerp to get the index of the sprite, it’ll clean up the code a lot. That just requires that your sprites be in the right order.

Such as if you have an array of any length, you get sections covering 360/<array length> and the index is floor(<actor look rotation>*<array length>/360)

Thanks for the advice, I’m new to the engine so I haven’t much experience.

I’m finishing a tutorial about this, it will probably be uploaded to Youtube this weekend. I also explain how to create sprites from 3D models using CustomDepth.

Those angles look weird for 8 sides [USER=“1328208”]JiMiB Games[/USER], if you don’t want to wait for my video try these ones instead: 22.5, 67.5, 112.5 and 157.5.

I’m using dot products and branches so it may not work for you but it should. Also, instead of booleans, create an enum with all 8 angles and use “setters” with it. This way you can check directly what angle is being displayed because is the one in the enum variable.

Then you can use another enum with states so you can use select nodes and quickly change the flipbooks accordingly to the angle and what the character is doing.

More coming this weekend :smiley:


Have you made any progress on your tutorial for this. Dying to see how you’ve implemented this.

Thanks in advance.

I overestimated my PC’s ability to edit video and the progress is slower than I anticipated but I’m finishing.

Hi masterneme.

Very cool project. I just checked out your demo you released in 2017. Excellent job on you work.

Is this project abandoned now ?. Was the project files ever released for this or any tutorials available ?

It would be cool to take a look how you put all this together.

Not abandoned, it’s quite the opposite, I’m preparing an IndieGoGo campaign right now so I had to reorganize my priorities.

I want to release a game before the end of the year and I stopped some of my tasks because they were taking me too much time of productive work.

I’m giving the final touches to a demo map for a pre-alpha gameplay video for the campaign and for the Coming Soon page on Steam.

The project files with the game logic will come thereafter but I can’t say when, sorry.

I’m thinking about making a Patreon with some kind of Early Access for people who want to see some of the stuff and don’t want to wait until I make it look pretty, now it’s very messy, ugly and unoptimized. Maybe after the campaign is over and if I see some interest.

Hi Mastermeme

That’s good news your still working on it. This is a cool project for sure and if you do decide to make a Patreon I’d pledge for early access and I’m sure others would too. I’m very interested to see how you got everything working so well because I’m planning on making an old looking 3d sprite styled animation using the unreal matinee. So animating all my sprites to look at the camera with the correct sprite angle and correct frame number to emulate the old doom style game is gonna take a lot of extra keyframing. Having the sprites with the angle logic built in makes a lot of sense to save on time.

From your posts on this thread I’ve got the sprite working with 4 sides fine and then tried with 8 sides and it works fine but when I added with the sprites rotation being taken into account the negative values isn’t being used. When I move around the sprite it goes from 0 to 180 but half way it reverses the value from 180 to 0. So I’m not getting the negative values -180 to -0. The condition always stays false and the sprites on the opposite sided didn’t get triggered :frowning:

I’ve added a pic to show where I’m at. I’d appreciate any help in getting this working correctly so I can play around and do some tests with sprites in matinee.

BTW Thanks for sharing your blueprint posts

Try the Compare nodes with these angles: 22.5, 67.5, 112.5, 157.5 and take a look at the numbers printed on screen because you may not need to have negative values, I don’t use them.

And for the relative rotation I have: -135, -90, -45, 0, 45, 90, 135 and 180.

Now, I’m going to note down on my to-do list for tomorrow to write and post a thread explaining this and I’ll upload some screenshots of my graphs, even without the video I was making would that be useful for you?

You also mention Matinee, I don’t quite understand what do you use it for.

Thanks for the reply.
I figured it out and its seems to be working good with all angles now. I had the less then A and B wired up wrong so I wasn’t getting If condition True.
Your right I didn’t need negative numbers after all for it to work correctly. Thanks for the help :slight_smile:

If u do make a post showing your Graphs and explaining I would still find it very useful. I did manage to get it working now but I don’t 100% know why it works lol But I’m glad it does. Thank you
I’ve added pic with my changes

Matinee I use for making short movies. I use the unreal engine as a renderer because its a lot faster workflow then using 3dsmax for organizing scenes and rendering.
This is one of my old movies I made in Matinee
The box

My project requires a old style look too it like it was made in the 90s so using a game engine is the best way to go. When complete its something to watch not something to play.

Oh I see now, I had the impression that you used Matinee to animate the sprites, for transforms or something like that.

If you use it for movies you may not need to apply rotations, you could modify the material to make sprites face the camera all the time or do it with another function and use the angle calculation to switch between the different lists of sprites with their respective angleviews, it depends on the kind of look you want to apply to characters.

I prefer like this because when a character turns you can see the sprite rotating and you wouldn’t notice that if it faces the camera all the time.

Here you have it:

[TUTORIAL] Very easy and simple “Doom like” sprite based character](