mercredi 4 juillet 2012

Développement (et TODO LIST)

Développement


 1) LANGAGE

Le logiciel Animatoon est développé en Purebasic. C'est un langage simple, puissant, performant et  mis à jour régulièrement.
J'utilise la version 5.31 pour développer Animatoon (en général c'est la dernière version de purebasic, car des bugs sont corrigés et des fonctions ont pu être améliorées ou ajoutées.


2 ) TODO-LIST

(mise à jour 16/07/2015)

Vous trouverez ici la liste des ajouts et modifications futures d'Animatoon.


OPTIMISATION
- ré-écrire le moteur de calque : gérer un système de dalle (tile)
- ne gérer que la surface sur laquelle on est en train de travailler.
- ajouter une liste avec dot() et des thread (3 thread : ajout des dot(), dessin sur ecran (affichage temps réel) dessin sur image)


FONCTIONS DISPONIBLES PAR VERSION



TODO LIST Actuelle

Légendes : 
- noir : ok
- rouge  : fonction à ajouter

V0.1x :
ok - UI : menu, panel, gadgets, statusbar...
ok - menu : file / edit / view / layers / help, some menus are empty, waiting the futur features.
ok - view : zoom (50, 100, 200, 300, 400, 500 %), reset view, center view
ok - Canvas : move & zoom canvas
ok - test for painting
> Version 0.19 OK le 9 juin 2015 !
Bonus : this version already has : eraser tool, presets, a lot of brush parameters (size, alpha, rotation, scatter, pressure tablet)


V 0.2x :  (actual version)
ok - brush parameters (3 panels at least) : size (+size width/height), opacity, scatter, rotation, change image, pressure tablet, stroke, random (Rotation, alpha), hardness, softness, smooth,color mixing, viscosity, wash), image preview, random size
ok - preset brush (open, change, save, export). The presets : crayon, pen, pencil, watercolors, marker, calligraphy, FX, blend, charcoals, charks... (in 0.15)
ok - tool : Eraser (same parameters as brush). (in 0.15)
ok - Shortcut : brush (B), Eraser (E), Brush Size + (D), Brush Size - (F)
Reported to a next version : - Brush : pressure fade size between dots
 > Version 0.29 ok le 19 juin 2015
Bonus : this version already has : Layers (add, delete, duplicate, merge, import image, change position)+ layers parameters (view, lock, alpha lock, opacity, some blendmode)


V 0.3x :
ok - Layers : add, delete, duplicate, merge with botom, merge all, import an image on layer (ctrl+I), Change layer position (up, down)
ok - layers parameters: view, opacity, lock, lock alpha, + some blendmode (add, multiply, clearlight, inverse).
ok - File (+shortcuts): new doc (ctrl +N), opendoc (ctrl+O), save doc (ctrl+S), saveImage, export layer (png, jpg), export all layers in png or zip.
ok - Edit : clear layer (in 0.15)
ok - Brush follow Angle (in 0.28)
ok  - Langage (fr, eng)
ok - Preferences menu (change language, some options)
Reported to a next version : - Brush : fade alpha, fade size
 > version 0.39 Ok le 29 juin 2015
Bonus : Crop


V 0.4x :
ok - Edit : resize document, resize canvas (in 0.16)
ok - tool : transform layer (Width/height + proportionnal (+shift)) (in 0.20)
ok - Tool : move layer (hand (free)) (in 0.20)
ok - Tool move : with keyboard (left, right, up, down) (in 0.28)
ok - Tool move : direction locked (move in width or height), define the new position) (in 0.39)
ok - Tool : rotate layer (in 0.32)
ok - Shape tool : Gradient (linear), Box, Ellipse (full color) (in 0.32)

ok - Shape tool : gradient (radial, boxed, ellipcit, conic) (in 0.39)

ok - box & ellipse (outlined) + proportionnal
ok - Panel tool option change in fonction of the selected tool. (in 0.34)
ok - Line tool : line (in 0.32)

ok - Line Tool : radial line, speed line

> version 0.49 Ok le 9 juillet 2015



V 0.5x : 
 ok - Color selector (square) (in 0.33/0.34)
ok - Swatch : open, save, merge, new (in 0.35)

- Swatch : delete swatch
ok - Roughboard : open, save, export, draw (in 0.26)
ok - Roughboard : pick color (in 0.20)
- Tool : pattern

ok - Tool text (in 0.40)
- Layer group, linked layers



V 0.6x :
ok - Edit : cut, copy, paste (in 0.22)
ok - Crop (in 0.29)
- Image : HSV (hue, saturation, value)
- Image : brightness, contrast, level, color balance (in 0.54/0.55)
ok - Transformation : miror Horizontal, miror vertical (in 0.255)
ok - Transformation : rotation (90, 180, 270, free) (in 0.32/0.33)
- Edit : trim
ok - Layer Inverse color, desaturate (ok in 0.26)
ok - Brush : water (dillution) (in 0.51)
- Add Thread to separate : dot() creation and saving and drawing (realtime/on the current layer (image))

> bonus : image color balance, filter : flou


V 0.7x :
ok - Fill with BG color (in 0.22)
ok - Tool : selection (rectangle) (in 0.29)
- Tool : Brush selection.
- Menu selection : +, -, random, inverse
- Move selection

ok - Selection : cut, copy, paste selection. (in 0.44)
- Paint on selection
ok - Fill with Pattern (in 0.26)
ok - Layer background  : image repeated (in 0.55)

- layer select alpha
- Brush : add  noise, dynamic brush



V 0.8x :
 ok : - Brush Type : Glass, Pixel, Noise (in 0.21)
- Particles : add system, x,y,life, type (water, normal), opacity
- Brush blendmode drawing : add, multiply

ok - Alpha mask (in 0.50)
- Adjustment layer : level, brightness, saturation





V 0.9x :
ok - Brush symetry (horizontal, vertical, H&V, kaleidoscop) (in 0.24)
- Undo/redo : for brush painting. I hope to add the undo for some actions (not only for painting, but delete layers, merge layers and some others...)
- improve brush engine : strokes are now saved (in an array/list) for undo and better performance.
- brush : Improve brush stroke > "smooth" the stroke curve (sort of bezier for stroke curve).
- Image : Convert to alpha

ok - brush and eraser are differents tools (in 0.35)
- Brush : random color
ok - Brush Size Mini



V 1.0x :
- animation module : interface (anim layer, frame dock, buttons...)
- animation : add frame, delete frame, move frame, duplicate frame
- Animation layers : camera, bitmap, sound
- play, stop, loop, start /end frame, preview, set framerate
- save animation / load animation (animatoon format)
- save animation as png (all frames are saved as png), as avi
- oignon skining



V 1.1x to 2.0 : in reflexion ;)
- animation features (skeleton, sprite animation, fx, particules...), vector layer,
- Comics features : border, perspective line, iso line, Phylacters
- others arts features (new presets, texture)




-------------------------------------------------------------------------------------------------------------------------


Les informations suivantes ne sont plus valides, je les conserve pour y piocher des idées si besoin :).


Version ALPHA(ancienne todo list)

Légendes : 
- noir : ok
- rouge  : fonction à ajouter
- vert : en court ou disponible dans une branche spéciale, à intégrer prochainement
- Bleu : reporté à une prochaine version
- Orange : non prévu et ajouter dans la version
- Violet : déjà disponible dans une version précédente


Version 0.1x 
- Menu principal en place (fichier, édition..)
- panneau Layer, infos, paramètre de brush (non actif)
- canvas mis en place
- possibilité de dessiner dessus (brush basic)
- Toolbar
- open image, open image on layer, save layer, save image (jpg, png, bmp)
- new document
- save document/open document

Version 0.2x
- brush editing : size, alpha, rotation, random (size, color, alpha) , rotation, viscosité, size/Alpha/color vs time
spacing (à revoir)
- Color ForeGround

- Options (tooltip, exit..)
- Outils : ligne, carré, cercle : corriger les bugs
- Outils : pen (traits pixelisés, non smoothés)
- sélecteur de couleur
- pipette (alt + clic)
- debut d'interface d'animation
- Roughboard : ouvrir, nouveau, sauvegarder/ peindre sur la roughboard pour ajouter des couleurs.
- images : couleurs inversées, désaturer, modifier la luminosité
- taille de l'image/taille du canvas
- grille

Version 0.3x
- Si possible, gérer la pression du stylet des tablettes (Wacom et autres)
- Layers : calques bloqués, opacité, visible, changer la position du calque, new/del/dupliquer
- Outil pipette / alt+clic
- blend mode des calques : normal, add, multiply, overlay, screen, invert,color burn.
- brush : load, save preset, open bank preset
- Fond : afficher un fond, changer le fond

Version 0.4x
- Outils : motifs (pattern), gomme
- Shift + clic  = trait droit
- swatches : ouvrir, sauvergarder, nouveau swatch, ajouter /supprimer/ merger des swatches
- Roughboard : idem
- Brush editing : forme et taille du bord, pas (espace entre les points)


Version 0.5x
- Brush editing : pixel variation, bleeding (déplacement de pixels)
- brush animé
- panneau navigation (zoom et cadre du document)
- images :  balance des couleurs/ couleur inversées

Version 0.6x
- particules
- undo/redo
- calques de réglages (flou, couleur, saturation, brightness,contraste, level)

Version 0.7x
- tool resize (ctrl+T) / symétrie, rotation (calque ou partie d'un calque)
- Image ajustement (brightness/saturation/contraste/desaturer/balance color,/level)
- filtres : flou, net, pixel..

- Guide, repères, grille
- Rebar + menu flottant
- Dégradé (G) : plein, transparent, avec direction
- Fill Area (K)


Version 0.8x
- Sélection (M)  : rectangle et bouger les pixels
- Animation : onion skining (avant et après)
- Animation : timeline, curseur frame
- layer d'animation : normal, objet, background, camera, light,  particule, avec propriété pour chaque type
- Preview d'animation (sur la surface de dessin), preview calculé
- interface d'animation : bouton d'animation, calque, timeline
- Animation : bouger la frame courrante sur la timeline
- sélection de la frame, et du calque d'animation, pouvoir bouger de place la frame courrante
 
Version 0.9x
- Squelette d'animation : on créé un squelette (des bones) avec des morceaux d'images et on peut les bouger
- courbe de bézier : pour déplacer des objets (calque objet, light, particule, camera) et interpolation
- Objet suit la courbe, camera (zoom, pan), light (alpha..)

Version 1.0x
- Brush : smooth et hard, smudge, densité+/-, blendmode
- outil : flou / sharpen (net)
- calque vectoriel d'animation


DETAILS

TODOLIST liée au Painting

 Drawing / brush :
- pression du style : transparence, taille, couleur... (J'ai trouvé un code lié au sdk wacom, mais c'est loin d'être simple, et pis, mon test bug un peu :p).
- color : fall-of (vs time), pression, vitesse (si j'arrive), Bg->FG, random()etc..
- rotation : vs time, pression
- size : vs time, pression
- brush "bleeding" : bouger les pixels avec le brush
- brush pixel variation : ajouter du grain par exemple
- brush blendmode
- smudge, densité+/-, flou/sharpen
- dual brush
- brush texture
- multi-brush
- brush animé

Canvas (surface de travail)  :
- symétrie
- miroir : horizontal, vertical X2/X4 (caleidoscope))
- rotation : je devrais sans doute faire une rotation de tous les calques/images du document , donc pas terrible comme option. Sinon, je pourrais passer par Cairo, il existe une lib pour Purebasic, mais il faudrait que je recode la partie affichage canvas.

TODOLIST liée à l'animation 

 Layer Animation :
Voici une réflexion sur les calques d'animation que je pense ajouter par la suite.
- Normal : calque d'animation  pour les images normales.
- Objet : calque pour des objets : on utilise une image sur un "plan" (on ne peut modifier l'image qu'en ouvrant l'image originale). On peut avoir des objets parents/enfants. Si on bouge l'objet parent entre 2 frames espacées, cela créé une interpolation de mouvement/rotation..
- Camera : pour bouger la vue, zoomer..
- Light : calque pour ajouter des lumières
- Effets (en réflexion ) calque ajoutant des effets paramétrables changeant en temps réel (flou, glow...)
- Sound : calque de son/music. Quelques fonctions : fadein, out, volume
- Particules : calque ajoutant des particules

Outils / fonctions d'animation :
- sur calque normal :  rotation, symétrie (H,V), scale. Pas d'interpolation.
- sur calque objet : rotation, symétrie, scale, suivre une courbe, changer l'alpha. Avec interpolation.


Bones/squelette :
- possibilité de créer des bones et d'attacher des images à chaque bones
- hiérarchies des bones
- on peut bouger les bones, cela crée des interpolations de mouvement

Format d'entrée :
- bmp, png (avec alpha), jpg, tga, tiff, ico
- en réflexion : video (av, mpg) -> conversion en image

Format de sortie
- bmp, jpg, png
- il y aura une conversion possible en vidéo avec ffmpeg.
- xsheet (png, jpg, bmp)
- en réflexion : swf.








Aucun commentaire:

Enregistrer un commentaire