TupiTube's To-Do List
This is a non-prioritized list of tasks, features, fixes, and any activity related to TupiTube's development.
a) General
- Add an option to edit the project's general metadata (i.e. title, description, etc).
- Create universal installers (appimage) of TupiTube for Linux. Reference: http://appimage.org/
- Migrate the configure script to CMAKE for Unix platforms.
- Enhance interface integration with Windows and OSX platforms: Labels, shortcuts, mime type association for .tup extension.
- Bug: black dialog issue on canvas rotation control in Windows.
- Bug: Windows installer generates conflict with other Qt apps with different library versions.
- Enhance the UX of the Scenes manager and include support for Storyboards per scene.
- Bug: Fix compilation recipe for Linux Arch.
- Implement architecture to support customized themes.
- Extend the Preferences dialog to allow keyboard shortcut customization.
- Implement optional auto-save feature, including parameters like enable/disable and frequency.
- Allow editing of the project's dimension in case the user wants to resize it.
- Implement clipboard support (copy/paste features) for the whole application.
- Implement a feature to save projects on Google Drive.
- Bug: Fix the error message -> defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
b) Drawing/Imaging Tools
- Design and implement a complete set of resources to support vector nodes edition (i.e. add a node, remove a node, merge nodes, split node, etc).
- Extend and enhance the color fill tools (bucket).
- The ellipse panel must include a control to show the width and height values of the current object.
- Implement integration with the QtMyPaint project to bring raster brushes and erasers to the TupiTube canvas. Reference: https://github.com/ethiccinema/qtmypaint
- Enhance the rotation feature from the Objects Selection tool: the rotation pivot position must be editable. Currently is always the center of the object.
- Add items alignment functions (center, align to right, align to top, etc) to the Object Selection panel.
- Add a new feature: Text tool.
- Implement color support for the onion skin feature. This option will make recognizing previous and next frames easier by color.
- Research about pen pressure support and the possibility of implementing it in as many pen tables as possible.
- Add support for the blur feature. This option could be applied to any object and the blur level must be an editable parameter.
- Implement grid lines for drawing tools when the border color is transparent, so the user can get a reference of his drawings while he's sketching. These grid lines must disappear at the moment the user stops drawing.
- Bug: Object transformation values are lost when the object is copied from one frame to another. This behavior is evident with rotation actions and the problem is even worse with SVG items.
- Implement logical operations between objects: union, difference, intersection, exclusion, etc.
- Add an option to show/hide rules around the workspace
- Add an option to highlight the borders of the frame in the animation workspace. In this way, users can recognize the boundaries of the visible drawing area, even if elements are overlapping/hiding those limits.
- Implement an option to edit the brush properties of any element when it is already drawn.
- Bug: There is a texture issue related to the brushes. Some of the textures are only visible when the zoom tool is used. A scale parameter for textures is required.
- Bug: The node editor fails to support the “space bar” command with the pen directly. It works with the mouse, but that's not enough.
- Implement a feature to edit geometric tools (square, circle, etc) using nodes.
- Enhance/extend Smoothness feature (Reference: Paint Tool SAI).
- Implement Blend mode for color image transformations.
c) Color Management
- Add a color picker feature (eyedropper).
- Implement a color palette editor (user's customized palettes).
- Include gradients support to the color manager.
- Bug: Every scene should support its own background color. Currently, a project only allows one background color even if it has several scenes.
- Bug: In the Brush panel, if the border color is white then the background color must change to make the pen size reference visible.
- Implement a feature to mix two or more colors to create a new one.
d) Tweening
- Add undo/redo support to the Position tweener path editor.
- Add a feature to edit (add/remove) nodes from the Position tweener path.
- Add support for vertical/horizontal lines in the Position tweener path editor.
- Design and implement a morphing tweener, including support for native elements such as curves and text objects.
- Design and implement a composed tweener. This feature will allow mixing several transformations (i.e. position, rotation, scale, etc) to the same object.
- Implement a feature to transform tweens into a sequence of independent/editable items, maintaining the initial item transformations in every frame. In this way, users could make small adjustments to the final result of their tweens in the frame they want.
- Bug: Nodes of the Position Tween path are not synchronized with the zoom tool. Their size is too small to be handled.
- Implement a motion curve editor (easing curves) for the Position tweener.
- Extend the Position Tween settings to allow the user to edit the coordinates of the path at the end of every segment.
- Include the path property of the Position Tween as part of the settings for other tweens, so users can set different transformations for every segment of the path.
e) TimeLine and Exposure Sheet
- Add support for multiple selection of frames for copy/paste/remove actions.
- Add support for keyframes.
- Complete the undo/redo stack for Layer operations.
- Implement a feature to show/hide static/dynamic background levels.
- Implement sound layers for the timeline component.
- Implement a feature to reverse the order of the current frame selection.
- Implement a feature to combine/merge layers.
- Research about layers fusion feature (Reference: Gimp).
- Implement a feature to collapse/expand layers. Note: when users create too many layers is hard to handle the interface.
- Implement the "Empty Frame" feature in the horizontal timeline.
- Implement an audio sync feature (enableable) as a guide to reference frames with audio, just like the Papagayo lip-sync interface does it.
f) Lip-Sync
- Enhance the lip-sync editor UI to support transformations like rotation and scale.
- Bug: TupiTube doesn't support multiple Papagayo files (.pgo). It's necessary to check if this behavior is related to the layer's architecture.
- Implement a clone tool for lip-sync objects.
g) Library
- Allow to drag objects from the preview display to the work-space directly.
- Implement a new feature to import video files as image sequences.
- Implement a new feature to import animated GIFs as image sequences.
- Design and implement a new type of library item: sprites. A sprite is an animated object formed by its own set of states (images) following a loop, like an animated GIF.
- Design and implement a feature to replace objects easily between the workspace and the library interface.
- Enhance the UX of the Library's file manager, including the Undo/Redo stack.
- Implement symbol elements (Adobe Flash concept).
- Implement settings dialog for the "Image Sequence" feature to allow options like "Set Position" and "Scale Factor".
h) Sound
- Add sound support to the video export module.
i) Characters
- Design and develop an architecture to support character creation and management for animation techniques like the cut-out. This feature must be strongly integrated with the Library module and it has to include all the standard properties required to handle a character (i.e. bones).
j) Player
- Bug: Forward button from Player control doesn't work with frames containing image items.
- Add a new feature to multiply the number of times every frame will be displayed during one reproduction. By default, each frame is used only once (1) per loop, but with this new control, users could extend them many times (2, 3, 4, etc).
- Add support for effects image filters (i.e. black and white, pixelation, blur, etc).
k) Export Module
- Add support for animated GIF and APNG formats.
- Allow exporting the same scene several times in the same video.
- Add support to export animations as OpenEXR files. Reference: http://www.openexr.com/documentation.html
- Bug: When users export their projects, several frames at the end of the timeline get lost. As a result, the animation video file is incomplete.
- Implement a transparent background option for the export feature “SVG Images Array” (Tip: Inkscape:pageopacity=“0.0”).
- Implement a resize option for video files.
- Research about 4K support and the alpha channel option for videos.
l) Storyboard
- Add support for storyboard format templates and enhance exportation quality (HTML and PDF).
- Research the CBR Comic Format and the possibility of including it as a storyboard export format. Reference: http://www.brianrobinsonstudios.com/how-to-create-and-make-a-cbr-comic-file-tutorial.html
- Design UI to create and edit one storyboard per scene from the interface.
m) Stop Motion
- Bug: the stop motion module is broken. The webcam is not detected or the video display is misconfigured in the latest version of TupiTube. Refactoring and general bug fixing are required.
- Add support for DSLR cameras.
n) Workspace
- Implement virtual cameras feature (v-cameras) to support actions like panning, zoom, and rotation.
- Implement animation masking feature.
o) Preferences
- Add the option to support “Add Sketch Layer” by default for every new project.