SceneShot
What Is It?
SceneShot is a Unity Editor utility to improve the 2D level-illustration workflow. With it, you can export your Unity scenes to a PNG to trace over in an image-editing program to create the finished level artwork. Then import that finished art back into the level with SceneShot to automatically slice it up into tiles and place them wherever you would like.
You’ve laid out the level design with Unity’s Tilemaps, Sprite Shape, or something else. It’s all blocked in, so you know where every platform is. Collisions are set up, so you’ve played through it a few times and like how it feels. But, it’s just a greybox, nothing pretty. Out of the box, Unity does not give an easy way to create the level layout separately from the art. That may not be an issue if you don’t mind the tiled look of repeated sprites or have an artist importing all artwork manually into the scene.
Runaway called for a different approach because we want an illustrated look where every brush stroke is intentional. Not to mention, we needed a way to give the artist a layout to work with and a tool for the programmer to then bring it back into Unity. We created SceneShot to solve this for ourselves and now want to share it with others facing the same challenges.
SceneShot is available now on the Unity Asset Store!
Capture Pixel-Perfect Screenshots of Scenes
With SceneShot, take a pixel-perfect screenshot of the scene within the Editor. All you need to do is give it the top-left and bottom-right corners and a pixels-per-unit measurement. Then click a button, and your level will be captured to PNG.
If you do not want something (like the player) captured in the screenshot, you can hide it easily a couple of ways:
Disable it in the Editor before you take the screenshot, then reenable it after you’re done
Remove its layer from the LevelToImageUtility Camera’s culling mask
Then bring this screenshot into Photoshop or another image-editing/illustration program and draw over it.
Import Artwork and Organize as Tiles in-SCene
Once you’ve created full level artwork, use SceneShot to import the image as tiles into the scene. All you need for this is to give the top-left corner position and a pixels-per-unit measurement. Then click a button, and Sceneshot will set everything up for you.
Unity limits the size of each image to 8192x8192 pixels, and tiles allow you work around that. Tiles can be swapped in and out as needed while large textures are either in memory or aren’t. SceneShot makes working with tiles easy because you only need the original, large texture. SceneShot does all the rest for you:
Import the texture and slice it up into smaller chunks
Organize each tile in the scene in a grid
Then you’re all good to go with a polished level!
Customizable Options
Using SceneShot
For more detailed documentation, check our GitLab wiki too!