A downloadable asset pack for Windows and macOS

Download NowName your own price

SHOWCASE VIDEO

TUTORIAL VIDEO

UNREAL ENGINE FORUM

UPDATE VIDEO


UPDATE :

SPP now supports screen space widgets aswell as post process material.
It also includes 3 new features :
- A customisable outline material.
- A zoom fonctionnality
- And the possibility to change the resolution in game (you can make your own one).


PRESENTATION :

Smooth Pixel Perfect Camera is a camera system that allow the user to make a pixelated render on a 3D scene without any jittering, keeping the image clean with a 2D look.

This system let you customize the resolution of the render, the projection mode,... while looking in any direction.

This solves the issue with Pixel Art rendering : when using a shader to pixelate a scene, the pixels will jitter when the camera is moving. It was inspired by Unity and Godot that both provides a easy solution within the engine, but as there are no tutorials, ressources, or anybody that achieved the same result on Unreal, I had to come up with a solution.

Smooth Pixel Perfect Camera is very easy to use and performance friendly, it does not need a tutorial on how to use or setup it.

The smoothing effect will work less on Perspective Camera as the movement will show new geometry ( I recommend using a low FOV and place the camera far away from the player to get the best effect ).

Here is a list of the essentials components (more informations are provided in the blueprints) :

  • Camera to show the widget
  • Scene Capture
  • Widget with the render target
  • Render target


FEATURES :

  • Pixelate the rendering to the resolution you want.
  • Smooth the Pixel Art.
  • Include a stylized outline shader.
  • Zoom while keeping pixel ratio.
  • Works with Perspective and Othographic mode.
  • Works with any angle direction or resolution.
  • Works with transparent material, shaders and widgets.
Updated 21 days ago
StatusReleased
CategoryAssets
Rating
Rated 5.0 out of 5 stars
(3 total ratings)
AuthorLordKevep
Tagsblueprints, camera, Pixel Art, project, rendering, Unreal Engine

Download

Download NowName your own price

Click download now to get access to the following files:

Smooth Pixel Perfect for Unreal 5.3 - V2 637 MB
Smooth Pixel Perfect for Unreal 4.27 717 MB
(Smooth Pixel Perfect for Unreal 5.3) - V1 Deprecated 647 MB

Development log

Comments

Log in with itch.io to leave a comment.

(+1)

I’ve got to say, this is just one of those things that you come to believe isn’t possible in Unreal, but here you are. This is so awesome thank you so much for sharing your work! Stuff like this makes making 2D games in Unreal much more worthwhile.

Do you plan on releasing your updated version to Unreal 4.27?

(+1)

Hi ! Thanks you so much for your message! I'm glad you appreciated it

Unfortunately, I don't think I'll have the time to update the 4.27 version, but it should work if you open the 5.3 version with it (originally, the 4.27 version was made this way). Good luck and thanks again!

How did you do that? I don't believe uassets from newer versions can be migrated to older versions, at least in my experience. The respective folders would just appear empty in the older engine.

(+1)

Amazing update, thanks a lot. I'm seeing jitter and changing outlines, seemingly more than in the showcase video (although it's difficult to say). This is when running the 5.3 v2 version, without any modification, on Unreal 5.3.2. Perhaps it's the normal amount, but wanted to ask if you have any idea about potential reasons if that's not the case.

(+1)

Thanks for the message ! But no there is no jitter to be expected, aside from the tips in the tutorial video (full screen, orthographic mode etc ...) have you tried to get a clean installation? 

My capture software is not great but it should as smooth as butter

(+1)

Interesting, opening the project with my version of 5.5 (I tried full screen, and didn't change anything so orthographic) was the same. I'll see what happens with a fresh 5.3 install. 

(1 edit)

So with the 5.5 version it is working correctly?

I guess there was an error during the unzipping or the unreal 5.3 install

(+1)

Hey there, first of all thanks for sharing! I've been looking for a solution like this for ages, and this looks and works great! Just one issue, though: I've added it to my game, set up the widget and my player character and all, but when I build the game, all I get is a black screen. It works perfectly in the editor, but the packaged build for windows shows nothing. I know the game is running because I can hear sounds and quit, but can't see anything. Would you have an idea on where I could look for a solution regarding this? Thanks in advance!

Hi!

I'll look into this issue, I'm planning on releasing an update during the week including more features so hopefully your problem will be no more!

(+1)

Hey, thanks for the reply! I had tried building on both modes here and your project seemed to work as well, but mine didn't. I'll give it another shot once your update is out, but in the meantime, is there a place where you list everything that needs to be migrated from your project over to mine in order for the effect to work? I tried copying as much as I could - changing even camera clipping plane settings, but maybe I've missed something along the way, since I'm using a PaperZDCharacter instead of the TopDownCharacter from your example. Again, thanks for the good work!

Hi ! You're welcome !

It should work with any type of character but you can find in my tutorial video any components/bp that is a part of my system, it should help you.

(+1)

Again, thanks for the reply! I watched your video, but it doesn't go into certain details (which I assume are required in order for the effect to work, like changing clipping planes in the camera). I'll give it another shot this weekend though and will report back if I have any luck. Thanks!

Hi again, I've not find any issue with my template when building in development mode (haven't tried any other mode)

So either something in your code conflits with mine (or vice versa), or the implementation you did is missing something (but if you say it works in the editor it's unlikely)

I will try the other shipping mode

(+1)

Excellent work! I was looking for something like this for quite a while, thank you very much for making it available for free!

One question though: The comment in one of the blueprints mention that if we want to change the camera settings, we should change it in the scene capture right? But I wanted to understand a bit more how the camera settings will impact what gets rendered on the screen.

Changing the settings of the scene capture component (like the field of view, for example) does change what gets rendered as expected, but changing anything on the camera itself seems to cause a flickering between the actual camera capture, and the scenecapture rendering, so I was a bit confused on how that works.

Hi, glad you appreciated it !

So in order to make this thing work you got 3 elements :
1 scene capture component that is filming the scene
1 widget where the filmed scene is visible
1 camera with a very short ortho far clip plane just to visualize the widget

Having those 3 elements seperated allow me to move the widget on the screen at the same rate pixel move when using pixelization, creating the illusion that all pixel are "fixed" on the screen.

If you need further clarification, I recommend looking into what inspired me :

There is now such thing in unreal and I wanted to recreate it
(+1)

Thanks for the detailed explanation! What I come to realize is that everything that is not related to ultra realist graphics doesn't have great support by Unreal Engine. It was not until version 5.3 - if I'm not mistaken - that they fixed some very basic aspects of the ortographic camera like shadows.

But back to my question, so would your recommendation be to not change anything on the camera itself and leave it with the settings you have, and change everything I need on the scene capture component, right?

If you need to make a 2D game you could use a free plugin called PaperZD but that's about it.

And yeah modifying the camera will not make any difference, it exists only to provide a widget to see on screen.

The scene capture component is your man !

(+1)

Oh no, I'm trying to build a 3D pixel art game. One more thing I noticed: the shadows are a bit "odd". The player character for example is lacking a shadow. Is that related to the scene capture? Or is the project setup? (I haven't tried this solution in my own project yet and I'm using the sample project you provided to experiment)

Hey, so for the lighting try to put the main lighting source as movable, it will now cast dynamic shadows (and adjust the spring arm length to be closer for the shadow to render properly)

(1 edit) (+1)

tysm!!!! every guide on 3D pixel art overlooked the jittering. It always looked so bad. You could literally package this and sell it on the marketplace.

Do you know if this has much performance cost? And like, if its possible to "subtract" objects from the effect, say something already has a pixel art texture and it doesn't need this (not entirely sure how post-processing masking works, and it probably wouldn't work on transparent objects anyways.

Hi!

Thanks for the comment! Due to the pixelisation of the rendering it improves the framerate (depending on the resolution you want ).

The pixel art effect is not working via post process so I'm not sure how to subtract an object but maybe via the render target flair?

But in any case if the object is already in pixel art you should pixelate it again in order to keep the visual coherence (2 different types of pixel art on the same screen would probably look weird)

(+1)

Great contribution! I have been looking for how to do something like this.

I noticed that when I change the springarm it easily clips through objects (not a hard fix I will use transparency and checks to make it more transparent) but is there a built in way to control zooming in/out ?

Hi! Thanks for the feedback!

Are you referring to the culling of the camera? ( Object down the screen disappearing in line?) If so, you check change the value of the culling plan in the camera component !

(+1)

Hey, great work! I just tried it out and wanted to also use a Post Process Material that creates an outline effect, but it seems it doesn't work then, the PPM isn't visible then, any idea how to fix that?

Hey!

Glad you appreciated it, maybe you need to allow the scene capture to see post processing, other than that nothing else could interfere with the post process.

(+1)

thanks for the fast answer! Where can i enable this? In the PP Volume?

(+1)

Hey i got it! needed to change capture source to "Final Color (HDR) :b

Happy to hear that!

(+1)

With camera shake, the UMG Widget flickers around when Perspective. Orthographic works great.

Yeah, perspective is not recommended, it just reduce the jittering but it's still there.

Thanks for the feedback 

(+1)

I was able to fix it I think, by doodling around.

What was your solution?

(+1)

Hey, just getting this error when I try use it in UE5.1.1 "Package '/Game/TopDownBP/Blueprints/TopDownCharacter' contains a newer version than the current process supports. PackageVersion 1,009, MaxExpected 1,008 : LicenseePackageVersion 0, MaxExpected 0."

Does this just not support newer versions of UE5? Thanks for any help and from what I've seen the package looks awesome!

Hi !

The Unreal 5 version project was made with Unreal 5.3.

You can whether choose to upgrade to UE 5.3 or, try right-clicking the uproject file and switch unreal engine version.

Or you can download the version for UE4 and then opening it with the UE5 launcher. It might be the easiest choice.

I'm glad the package is appealing to you !

(+1)

Wow this looks great!! I thought I was the only one who could see the difference, I was starting to worry I was being hypersensitive or overly picky or misremembering how things looked in other games. Finally! Thank you. 

(1 edit)

You're welcome !

(+2)

Looking forward to try this out and seeing the differences in a little project of mine, thank you

(+1)

Don't forget to show me the result with your project !

(+1)

If I get something worth showing I will :)