You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ok so I spoke with chchwy on the discord server that Spark01 setup for us. We agreed on moving the feature request list to a "tracker issue" to act as our official roadmap. And since this issue was already open I've just edited the main post, and will continue to do so until everything is take care of. If there is anything new to add please post it in the comments.
We have several categories that require our attention to bring Pencil2D to the next level:
LICENSING CHECK-UP
The Free Software Directory (FSD) asked to revise every license files for each library or script for Pencil2D to be added to their listing. Free software directory license auditing #622
BITMAP ENGINE
Improve image treatment procedure of bitmap transforms (rotate, scale or translate) to avoid quality loss.
Replace the Bitmap Layers. [Proposal] Replace Bitmap Layers #578 (This proposes the use of a full vector engine that "rasterizes" the strokes to simulate bitmap drawing)
Improve Stroke Calculations to allow for more natural drawing.
Improved Vector Fill Tool: When closed shapes have complex strokes (curves, jagged lines, spiked lines etc) the bucket tool can't fill the empty space properly.
Improved Vector Fill Gap Closing: Currently using the tool really close it improves the calculation of the fill.
Add Fill Tool Options: Solid fill and Gradient (interpolated color) fill options
Add ability to modify vector points for Pencil / Pen / Brush tool: Add, Remove, Join, Split stroke. These should be usable on any kind of stroke, be it pencil, pen or brush. These functions would be placed in their own widget panel too.
Geometric Shapes Panel: We need primitive vector tools, square, circle, triangle and to fix the polyline tool.
Boolean Operations Panel: Addition, subtraction, intersection between strokes (see merge below) and geometric shapes.
Improve stroke path (control point) merging and implement stroke contour merge. This behavior should allow for better optimization of the vector elements on the canvas and to preserve memory.
Re-enable merge toggle box.
Multiple Control Point Selection: The marquee tool should have a control point selection mode for the vector engine.
Ability to change vector line width after stroke creation. It's suggested to have a width slider on either Selection or Move tool.
Variable Line Width Tool, to allow for variable line weight along the same path. (review toonboom harmony / adobe animate respective tools)
Implement Vector Motion Interpolation (Tweening)
Implement ability to view and manipulate control point tangents for splines: User should be able to adjust the spline tangents to create specific curvatures on the stroke.
Implement Stroke Sculpting: When clicking and dragging on a path the control points surrounding the moving portion of the stroke should move with a falloff area.
Improve automatic control point tangent behavior and implement a toggle: If you move a control point and the connected lines attached to become closer it will create a sharp angle. Sometimes you require to move the point but to maintain curvature as much as possible.
Implement bitmap to vector conversion based on applied strokes over canvas.
Implement widget to change timeline frame size and frame amount directly on the timeline, instead of the preferences. Just making a slider to handle this will work.
Implement Variable Frame Exposure using Frame Instances.
Allow for frame insert or duplication between frames: For example, creating a keyframe between two previous keyframes would mean moving over the frames that come after the one that's being inserted.
Implement functionality to insert or delete frames on multiple layers to change timing.
Implement automatic keyframe container creation when drawing over an empty frame.
Ability to Select and Move multiple keyframes between layers of the same type. (What happens if we move a raster drawing to a vector layer by accident? Should we allow seamless conversion? Can it be done?)
Implement a “reverse keyframes” function which would reverse frame order
Implement multiple selected frames duplicate and copy / paste operations
Implement selective toggle for individual layers to opt in or out of multilayer onion skin.
Frame Coloring System
Modify frame state color coding (This should be worked with the timeline rewrite + mockup)
*Empty frame = Black Outline + White Color
*Selected frame = Black Outline + Dark Grey
*Frame with content = Black Outline + Layer Color
Ability to multiple individual frames with custom colours
Use Case 1: (REF: After Effects)
Text Markers are normally visible on the timeline (above frame numbers) or on Layers. Can contain comments or annotations for other animators or production teammates that work in the same file (i.e colorists, clean-up artists, checkers, etc). Or reminders for independent artists to finish a task later.
Use Case 2: (REF TVPaint)
Can be used for filtering display of frames types (key, bdwn, inbtwn) to visualize the animation during playback on different stages. Frame types would be constants K, B, I, so each time you wrote these letters on a marker, Pencil2D can acknoledge any layer frame marked with it belongs to the marked type (this is responsability of the user to properly mark the frame types)
Filters:
Keyframe (key only)
Breakdown (key + bd OR bd only)
Inbetween (key + bd + inbetween OR inbtwn only [skip frame: 2's, 3's, 4's X's]
Implement Custom layer colors: Allow to pick custom color or a predefined set of colors determined by the colour palette.
Implement tags to categorize layers
Implement color tags (color ID) to allow layer visibility filtering through color.
Implement layer & group layer visibility filters.
Implement a Z-Order Index + Override functionality for layers that can be animated. This would help to use different layers to be in front or behind any other layer with lower Z-depth. This is not true 3D Z-ordering but rather something similar to vector programs where you can re-arrange the objects overlap. This would be also important for using the camera with a z-depth toggle enabled in order to fake the parallax effect (the effect where elements that are farther move slower in comparison to those which are closer to the camera and move faster)
Implement shortcut for selection Mirror / Flipping
Implement SHIFT & TRACE feature: This will allow you to offset onion skinned frames to trace over previous portions of your drawing in order to speed up construction and allow for traceback techniques.
Implement a flipping & rolling function. Flipping & Rolling are two techniques that allow the animator to quickly preview playback based on the actual drawing / frame container. This proposal was separated and issued here [Request] Implement Flipping / Rolling Feature #978
Refine Tool Functionalities for separate drawing and coloring tasks. Note: Pencil2D already has a primitive system of lineart /paint color separation.
Pencil tool > Rough /Sketch
Pen tool > Lineart
Brush tool > Hand-drawn coloring.
Fill Tool > Area Coloring
Improve Color Palette Selection for Bitmap Layers
DRAWING TOOLS ENHANCEMENTS
Implement or Adapt current tools to create pixel-perfect artwork (no antialias)
Implement Pixel snapping to grid
Improve custom Grid to allow for grid cells with asymmetric proportions.
Improve Brush Tool Feathering visualization. Note: Brush area circle that represents the brush should have another inner circle that shrinks towards the center when the Feathering value is higher. The area difference between the outer and inner circle represents the feathering of the brushstroke.
Implement Brush Presets
Implement Textured Tip Brushes: REF Thread: Hashing Brush Hashing Brush #344 (might be possible with mypaint)
Implement a Global Pressure Sensitivity editor to alter WinTab (and others) input signals.
Implement a Toggle to ignore canvas rotation: When utilizing Lasso selection it can be used to cut a shape manually without following the canvas rotation.
Implement camera panning / move camera frame border
Implement camera zoom
Implement camera z-depth system toggle that allows the camera to affect layers or objects with z-depth / z-order to fake parallax as seen in multiplane setups (for this to happen layers would have to be treated as if they were individual overlayed cels with z-depth and according to the z-index the relative speeds to the "closest" layer for either pans, zooms or tilts would be increased or decreased) http://www.pencil2d.org/forums/topic/camera-panning-zoom-or-z-depth-and-rotation/
DIALOGUE & LIP-SYNC
Implement Dialogue & sound analysis Interface through papagayo (implementation / plugin) (could work with laayer markers by putting the final phoneme breakdown on the layer via markers)
PLUGIN WRAPPER / MANAGER Note: A modular apparoach to plugins could help bridge integration with software like Natron, Synfig, Open Toonz, Blender, Godot, and other major open source software geared for film and games.
Technical Review. Possible programming patterns, algorithms or methodologies.
Technical Review. Case Studies: Blender Add-Ons (python api), Natron Node Plug-Ins (python or c++ api), Pending suggestions.
EX-CHANGE FORMATS & IMPORT-EXPORT
Technical Review for an open source file to import and export Pencil2D data into other apps.
Review .ORA (openraster format)
Review .SVG
... Pending File Format Suggestions ...
Technical Review for file formats to import into and export data between Pencil2D and commercial applications
Review .PSD
... Pending File Format Suggestions ...
Implement Image sequence spacing to import every X frames
Layer transforms keyframe interpolation. e.g If you animate a cycle in place. Transforming the layer will allow you to “move” the character from point A to B. This is how it works in Toonboom.
Official Roadmap
Ok so I spoke with chchwy on the discord server that Spark01 setup for us. We agreed on moving the feature request list to a "tracker issue" to act as our official roadmap. And since this issue was already open I've just edited the main post, and will continue to do so until everything is take care of. If there is anything new to add please post it in the comments.
We have several categories that require our attention to bring Pencil2D to the next level:
LICENSING CHECK-UP
BITMAP ENGINE
VECTOR ENGINE
Vector engine upgrade proposal #616 (comment)
Implement Path and Contour strokes (reference behaviour: Toonboom harmony / Adobe Animate pencil & brush tools)
Stabilizer feature for vector tools: [REQUEST] "mass" or "slow position tracking" value for the PEN tool #245
Improve Stroke Calculations to allow for more natural drawing.
Improved Vector Fill Tool: When closed shapes have complex strokes (curves, jagged lines, spiked lines etc) the bucket tool can't fill the empty space properly.
Add ability to modify vector points for Pencil / Pen / Brush tool: Add, Remove, Join, Split stroke. These should be usable on any kind of stroke, be it pencil, pen or brush. These functions would be placed in their own widget panel too.
Geometric Shapes Panel: We need primitive vector tools, square, circle, triangle and to fix the polyline tool.
Boolean Operations Panel: Addition, subtraction, intersection between strokes (see merge below) and geometric shapes.
Improve stroke path (control point) merging and implement stroke contour merge. This behavior should allow for better optimization of the vector elements on the canvas and to preserve memory.
Multiple Control Point Selection: The marquee tool should have a control point selection mode for the vector engine.
Ability to change vector line width after stroke creation. It's suggested to have a width slider on either Selection or Move tool.
Variable Line Width Tool, to allow for variable line weight along the same path. (review toonboom harmony / adobe animate respective tools)
Implement Vector Motion Interpolation (Tweening)
Implement ability to view and manipulate control point tangents for splines: User should be able to adjust the spline tangents to create specific curvatures on the stroke.
Implement Stroke Sculpting: When clicking and dragging on a path the control points surrounding the moving portion of the stroke should move with a falloff area.
Improve automatic control point tangent behavior and implement a toggle: If you move a control point and the connected lines attached to become closer it will create a sharp angle. Sometimes you require to move the point but to maintain curvature as much as possible.
Implement bitmap to vector conversion based on applied strokes over canvas.
ANIMATION PREVIEW
TIMELINE ENHANCEMENTS & FRAME EDITING
Move animation controls to the middle of the timeline Move AnimationControls to the middle of the timeline #38 fixed via a bit refactoring and fixed timeline UI spacing #656
Implement widget to change timeline frame size and frame amount directly on the timeline, instead of the preferences. Just making a slider to handle this will work.
Implement frame instances: [feature request] instantiate frames #389
Allow for frame insert or duplication between frames: For example, creating a keyframe between two previous keyframes would mean moving over the frames that come after the one that's being inserted.
Implement functionality to insert or delete frames on multiple layers to change timing.
Implement automatic keyframe container creation when drawing over an empty frame.
Ability to Select and Move multiple keyframes between layers of the same type. (What happens if we move a raster drawing to a vector layer by accident? Should we allow seamless conversion? Can it be done?)
Implement a “reverse keyframes” function which would reverse frame order
Implement multiple selected frames duplicate and copy / paste operations
Implement MultiLayer Onion Skin feature (View > Onion Skin > MultiLayer Onion Skin)
Implement “multilayer onion skin”. This would allow to have onion skin affect multiple layers: [Feature] Multi layer onion skinning #1874
Frame Coloring System
*Empty frame = Black Outline + White Color
*Selected frame = Black Outline + Dark Grey
*Frame with content = Black Outline + Layer Color
Frame Label System: Timeline Marker + Layer Marker
Use Case 1: (REF: After Effects)
Text Markers are normally visible on the timeline (above frame numbers) or on Layers. Can contain comments or annotations for other animators or production teammates that work in the same file (i.e colorists, clean-up artists, checkers, etc). Or reminders for independent artists to finish a task later.
Use Case 2: (REF TVPaint)
Can be used for filtering display of frames types (key, bdwn, inbtwn) to visualize the animation during playback on different stages. Frame types would be constants K, B, I, so each time you wrote these letters on a marker, Pencil2D can acknoledge any layer frame marked with it belongs to the marked type (this is responsability of the user to properly mark the frame types)
Filters:
LAYER MANAGEMENT
Implement a layer merge feature: Layer merge #1206
Improve layer organization awareness
Implement Layer Groups to nest layers for organization purposes
Timeline Layer Filter (REF Krita Layer track timeline panel visibility properties #359) Note: Might work in sync with
Implement Custom layer colors: Allow to pick custom color or a predefined set of colors determined by the colour palette.
Implement a Z-Order Index + Override functionality for layers that can be animated. This would help to use different layers to be in front or behind any other layer with lower Z-depth. This is not true 3D Z-ordering but rather something similar to vector programs where you can re-arrange the objects overlap. This would be also important for using the camera with a z-depth toggle enabled in order to fake the parallax effect (the effect where elements that are farther move slower in comparison to those which are closer to the camera and move faster)
INTERFACE ENHANCEMENTS
Implement panel locks http://www.pencil2d.org/forums/topic/is-there-a-way-to-lock-the-windows/
On New File creation canvas state (rotation and zoom) should be reset (currently pan is reset). Fixed via pull clear recent files list #165 #686
Implement update / reset of open recent list: To add a way for RESETING the "OPEN RECENT" files #165 implemented via clear recent files list #165 #686
Implement Alpha Channel Slider: [REQUEST] Alpha channel with a Slide-Control value #237
Slider Display Change Proposal: Change the way sliders are working #15
Re-Implement Pop-Up palette for quick access to tool presets and colours: Just an idea: An instant/pop-up palette to quickly access favorite tool presets including a color wheel #157
Technical review or Refactoring Proposal: extract adjusting tool and feather adjusting tool to their own tools: extract adjustingTool and featherAdjustingTool to their own tools #124
WORKFLOW ENHANCEMENTS
Implement Shortcut Re-binding: http://www.pencil2d.org/forums/topic/the-ability-to-rebind-anything-and-disable-some-feutures/
Technical Review of QT / Pencil2D Hardcoded Keyboard shortcuts. Original Thread - Some keyboard shortcuts problem #61
Implement GUI for Pencil2D configuration settings: A way to save the Custom shortcuts list for future needs. #177
Implement ROOM or WORKSPACE Paradigm Making special canvases for different works/documents #28
Implement Shortcut to change between last used tools: Implement shortcut to switch between last two used tools (including layer, color, ...) #158
Implement Shortcut to change between last used colors
Implement shortcut to create straight lines with any drawing tool. Ref Thread: Add a shortcut key for making straight lines with the polyline tool #44
Fix Flip selection content tool
Implement SHIFT & TRACE feature: This will allow you to offset onion skinned frames to trace over previous portions of your drawing in order to speed up construction and allow for traceback techniques.
Implement a flipping & rolling function. Flipping & Rolling are two techniques that allow the animator to quickly preview playback based on the actual drawing / frame container. This proposal was separated and issued here [Request] Implement Flipping / Rolling Feature #978
REF: TVPaint's "Flip" function panel: https://www.tvpaint.com/doc/tvp11/index.php?id=lesson-tradigital-animation-advanced-flip-presentation
Implement a Library Panel for vector objects, bitmap reference images & sound resources http://www.pencil2d.org/forums/topic/some-ideas-more-modify-the-cursor/
UNDO + REDO PARADIGM
Implement UNDO / REDO operations to affect keyframe + layer operations
Note: When undoing frames we should also undo frame container creation.
REF Thread: Redo for deleted frames: An UNDO option for "frames deleted" #36
REF Thread: Redo + layer rotation: Few Wishes (Undo frame deleting & Layer rotation) #187
Implement UNDO / REDO Configurable steps.
COLORING WORKFLOW ENHANCEMENTS
tool presets for colored linework: #25
(Bitmap) Implement a color replacement function
Refine Tool Functionalities for separate drawing and coloring tasks. Note: Pencil2D already has a primitive system of lineart /paint color separation.
Improve Color Palette Selection for Bitmap Layers
DRAWING TOOLS ENHANCEMENTS
Implement or Adapt current tools to create pixel-perfect artwork (no antialias)
Implement Pixel snapping to grid
Improve custom Grid to allow for grid cells with asymmetric proportions.
Improve Brush Tool Feathering visualization. Note: Brush area circle that represents the brush should have another inner circle that shrinks towards the center when the Feathering value is higher. The area difference between the outer and inner circle represents the feathering of the brushstroke.
Implement Brush Presets
Implement Textured Tip Brushes: REF Thread: Hashing Brush Hashing Brush #344 (might be possible with mypaint)
Implement a Global Pressure Sensitivity editor to alter WinTab (and others) input signals.
SELECTION TOOLS
Implement a Lasso / Freehand + Polygonal Selection tool: build a lasso tool #118 , More selection tools #18
Implement Selection Marquee tool to follow canvas rotation: [REQUEST] make selection toggle to follow or not canvas rotation #379
Implement a Toggle to ignore canvas rotation: When utilizing Lasso selection it can be used to cut a shape manually without following the canvas rotation.
TRANSFORM TOOL ENHANCEMENT (SELECTION + MOVE TOOL)
CAMERA HANDLING
http://www.pencil2d.org/forums/topic/camera-panning-zoom-or-z-depth-and-rotation/
DIALOGUE & LIP-SYNC
AUDIO ENHANCEMENTS
PLUGIN SUPPORT
EX-CHANGE FORMATS & IMPORT-EXPORT
ANIMATION PRODUCTION SPECIFIC REQUESTS
Implement an X-sheet Panel for professional / classical animators. http://www.pencil2d.org/forums/topic/classic-x-sheet-integration/ Xsheet feature #1119
Implement Layer-space transforms (Position, Rotation, Scale)
Allow modification of visual path to adjust trajectory of layer objects in real-time