I’m Carlos Mangas from Asthree Works, the guys behind Paradise Lost : First Contact, a 2D stealth-platformer that we plan to release, hopefully, next year.
While making the game, we noticed that the usual sprite rotation in Unity wasn’t what we were looking for, rotating the whole sprite broke the illusion of pixel art completely. When we didn’t find any asset that adressed this problem, and saw the great response to our update regarding this technique, we decided to create Pixel Art Rotation, our own tool to rotate sprites pixel by pixel.
We’ll keep improving the asset during the development of Paradise Lost and right now we are working on putting the documentation online, the asset comes with it anyway, but you can send us any suggestion or question regarding the asset to: carlos@asthreeworks.com
UPDATE!
A few months ago we promised an update, mainly to include a video tutorial. We 've been working really hard on our game and couldn’t finish the update in time, we apologize for that.
You can watch the video here or in the Asset Store page:
I know I’m in the minority on this point but I actually prefer the Unity way of rotating pixels. To me it looks cleaner and less noisy.
The fix you guys incorporated - to me - looks like a running texture map on the surface of a 3D skinned model when the UV’s are undefined.
No disrespect to the tech or the game which looks awesome at this point, and the pixel art which is top shelf.
We implemented this mainly because we thought those rotations didn’t match very well with the rest of the game and, if you look at the image on the left, you can see jaggies around the arm with the standar rotation, something that doesn’t happen in the rest of the body or with the new rotation, though it’s true that not everyone likes this method.
Hope that we come up with something in the future that you would use in your game
Anyway, thank you very much for the feedback guys!
As someone making a pixel art game myself, I really appreciate this asset! Thanks for making it available.
Also, really looking forward to Paradise Lost! Been following you guys since the Kickstarter and the art was a huge inspiration for me to make pixel art games myself.
I’m also someone making a game with pixel art. I prefer pixel rotation but I never wanted to implement a solution myself so I just choose to live with Unity’s rotation or would animate each frame to maintain the pixels. Thanks for making this available!
Ohhh cool. Yes this is something that’s bothered me when doing 2d skeletal animation, and would make an excellent addition to my game - maybe - if it is light on performance and runs on mobiles.
In the tests I have run I didn’t see any impact on the performance, as long as you don’t use sprites with hundreds or thoushands of pixels, this is why we advertise it as a “pixel art” only solution.
About mobiles I didn’t have the chance to test it yet, another thing to test for the next update then
I’m looking forward to hearing how it goes! If your up for it do a comparison of regular unity rotation vs your rotation, and look for fps impact (if any). I’m working with sprites that are about 16x32 pixels in size - so relatively small.
If it seems to run good for mobile I’d be a sure sale on it. I’m wondering how you do it - does it involve setpixel(s) and texture2d.apply ()?
The full source code is provided with the asset, so you can check the method, and even change it if necessary. Though I will say it does involve SetPixels() and Apply()
I currently have no use for it but I still like it. It has much more of the “true” 8 - 16Bit era feel to it. It’s subtle but the rotation of scaled pixels makes the actual higher resolution just so much more apparent.
Very nice.
I figured it must. That’s ok though - I’m using setpixels and apply () on 256x256 sprites at runtime on android (rapidly updating each fixed update when changes are being made to up to four sprites at once), and can still manage 30-60 fps on old android hardware - so it’s probably a minor impact compared to the rather large impact I’m already having on my performance! That is - as long as all changes are made through setpixel(s) and then apply () is called only infrequently (every few updates/fixed updates). This seems to have kept performance mobile friendly’ish.
Bought this plugin yesterday and made some tests, so far I’m pretty happy with what it does. But I had to do some tweaking in order to make it work for me. I thought it would work out of the box with the 2D animation system but it didn’t. It rotates sprites only at runtime and the rotation variable is an int, and int is not recognised by the animation system. Animation system only recognizes float and bool.
So to make it possible to animate in the editor I had to add [ExecuteInEditMode] and make a float, which then controls the int (rotation variable). Now I can animate my character in the editor but I get frequent errors. I guess the script is not meant to work in edit mode (I’m not a pro at coding, so I can’t tell why). The errors do not affect my project seriously, I just have to remove [ExecuteInEditMode] when I’m ready with my animation.
Soooo that’s not a huge problem, but I hope we will see some updates for that?
About using the asset in EditMode, it’s not meant to be used this way, I haven’t even considered using it like this. The reasoning behind this is very simple, if you want to make rotations in your 2D animations you can use any 2D editing tool (Aseprite, Photoshop, Gimp…) and then import everything into Unity, this type of rotation is usually included in any 2D tool.
The asset is meant to be used at runtime, when, for example, you want to rotate the sprite of a turret or a moving platform and it’s not a set animation, but a response to what’s happening in the game, things like that.
Anyway, if that’s a feature that more people want I could try to implement it in the future.
Thanks for the clarification. Yeah, I know there are other methods to achieve rotation in animation, but I’m not a sprite artist and I thought that maybe this plugin would help me make animations without having to draw each frame by hand. I simply want to speed up my process since I’m a one-man-studio. Anyway, I’m still happy with your product and will stick to it for now.
Hey @snifo - not to take away from this great product or thread, but your looking for something like
spine, spriter pro, or uni2d. I’m sure there are others that people use also. I own spriter pro and can attest to it’s usefulness. Check out BrashMonkey and search the forums for 2D bone based animation tools.