Onion skinning and frame size

Hi there,

First of all, I really need to thank you for initiating this project. I really saw a great potential in Pencil, but what kept me from using it was the fact that it was not maintained. With you guys around, I believe that this could be a great open source 2D animation solution, just like what Blender is for 3D.

Without further talking, here is what I really would like to see in Pencil:

  1. Some tweaks to the Onion skin. I really want to be able to view more than one frame before and after, better be unlimited number as the case is in Flash and Toon Boom Animate. I think it also should be possible to show certain frames (i.e. When on frame 10, for example, and I need to trace something from frame 8 without seeing what’s on frame 9). Last, it is easier to have the frames before and after colored automatically when onion skin is working.

  2. This is extremely important, the frame size. The frames of the document should be visible without selecting the camera layer. I understand that the camera layer is used for something that resembles camera movement, but this is animation, and I should be able to know where exactly every movement starts and where it ends. For me, this is impossible without seeing the frame border. Even when I am working on paper, I define a frame to work within.

Thank you

I think at least some of the onion skinning improvement you mentioned might be planned for the future…at the very least i know the subject of coloring and extending has been brought up with the devs…not sure what their intentions are, though.

as for the frame size, I had a similar thought myself not long ago. But then the more i thought about it the more i began to realize that there isn’t actually a “frame” or document size to be displayed on the drawing layers. Pencil2D has an undefined canvas size, which allows you to make your drawing as wide or as tall as you want it to be. On top of that, the camera layers are there not just to pan & zoom the scene, but also to define the dimensions of a given render. While I would be very pleased if we were able to see the frame at all times, I don’t see how that’s possible given the fact that you can have multiple camera layers and multiple frame sizes. I guess they might be able to make the frame display of the drawing layers dynamic, dependent upon the size of a single default camera layer? I can’t think of any other way it could be done without removing to ability to use multiple camera layers…or at least without removing the ability to have multiple camera sizes. Removing that ability would make it a pain to render multiple video sizes (4:3, 720, 1080, etc) without having to either redo the camera for each version, or having to scale and crop after rendering.

This may not be the perfect solution to your problem, but one thing that I do sometimes is make a layer that has only one frame, on that frame you trace the size of your camera, so that you won’t have to flip back and forth from camera to the layer you are working on, instead there will be a faint (or strong) barrier/boundary that allows you to see where your animation will and won’t be captured for other layers.


And for your onion skin part, they made it so that you can have 3 frames before and after visible if wanted, and you can change how dark or light they show per each 1-3 frame shown. (in the newer versions that is)

All you need to do is go to edit>preferences>tools

I know that isn’t covering the wide range that you want it to, but it is a step up from just having one frame before and after visible.

interesting idea of tracing the camera. I decided to make a template image instead, which is a little cleaner than hand drawing:

  1. make a new document in an image editor (e.g. gimp), with the dimensions of the frame you want

  2. select all

  3. stroke the selection, at least 2 pixels or else half the stroke might not appear on canvas

  4. save as transparent png or gif (or non transparent if you want, if you will be loading the image as a background)

  5. import image to Pencil2D

  6. hide the frame layer before rendering your animation

this won’t be as useful once you begin panning and zooming the camera, however.

Thanks for the ideas, Abd El Rahman Magdy.
Here’s what I suggested for the onion skin, which is similar to your idea :


I understand that Pencil implements an infinite canvas… But I think we should be given the option whether to have an infinite canvas or not… MyPaint 1.1.0 devs have been able to do that… It has an infinite canvas but with the option of defining a specific frame size… I think this could be applied to Pencil as well


I usually do what mikshaw does bcz I sometimes need big frame size (e.g. 1280 x 720) and when I do this, the boundaries of the frame is not visible in the camera layer because it is much bigger than the space dedicated to the canvas :D… So I do a background with the size I prefer, animate on it, zoom out until everything is visible on the canvas, and export using a camera layer with the same size I wanted

regarding the onion skin, you are right… It is much better having 3 layers visible before and after than only one… waiting for more :smiley:


as you said… It’s a dream for animators :slight_smile: I hope I can help… I am really enthusiastic about this software, and I am willing to do everything to make it become better


If you test the new Pencil2D nightly-build, maybe you find something interesting: infact, some of your proposals have been implemented.