mardi 22 juin 2021

Animatoon : nouveauté de la Version 0.600

 Les sources sont disponibles ici : 

blendman/animatoon: Animatoon is a 2D program (opensource) made in purebasic (github.com)

Je vais y mettre une version "release" 0.600 prochainement ^^ (là, il y a la version 0.598, qui a déjà presque toutes les améliorations décrites en dessous).


Beaucoup d'amélioration dans cette version :

- nouvel outil : tampon. On peut dessiner avec un motif (avec tous les paramètres du pinceau sauf le mélange de couleur), en utilisant en plus la couleur sur le motif. 

- amélioration de l'outil "pinceau" : brush editor (permet d'éditer plus facilement les brushs, image sélection plus facile, ajout de grain, fondu vers la transparence...). Le brush editor n'est pas terminé, je continue de travailler dessus :).

- Amélioration du papier : ajout d'une fenêtre pour définir des paramètres pour le papier : couleur et motif, échelle, transparence, contraste/luminosité. De plus, j'ai ajouté au papier une position, on peut donc le mettre où on veut : tout en bas des calques, au dessus de tous les calques, ou entre les calques, à la position qu'on veut.

- optimisation des surfaces de dessins et vitesse d'exécution (j'ai réduit le fait que le processeur soit occupé tout le temps (lorsqu'on ne fait rien), le processus utilisait jusque 70% du cpu et ça descend à 0 lorsqu'on n'utilise plus animatoon (si on n'arrête de peindre par exemple), et autour de 40% quand on l'utilise), ainsi que quantité de mémoire (ram) réduite de plus de 50%  (les fichiers d'un document 3500x2500 avec 7 calques sont passés de 1,5Go à 600Mo ! (utilisation mémoire))!

- beaucoup d'autres améliorations diverses (outils (pot de peinture, sélection, pipette, etc...), édition (ctrlX/V), importer une image sur une calque, système de langage amélioration, autosave...)

- ajout de nouveaux presets d'outils, d'images de brush, d'image de papier, motif, etc...

- ajout de fonctions pratiques comme : transformer un calque en "ligne" (pour récupérer les lignes d'un dessin scanné et avoir un calque transparent), sélection de l'alpha du calque

- beaucoup de bugs corrigés (au moins une centaine)

Animatoon, nouvelles images et vidéos

 Régulièrement, je réalise des images (et parfois des vidéos screen) en utilisant Animatoon.

Voici les dernières images que j'ai colorisé avec mon logiciel : 

Les lignes sont réalisées sur papier avec des feutres fins (unipin et fabercastell), et les couleurs et rendus sur animatoon. A chaque fois que je colorise un dessin avec animatoon, j'en profite pour l'améliorer :)
















dimanche 14 mars 2021

Nouvelles images et vidéos (2021)

Voici de nouvelles images réalisées avec animatoon, depuis début février 2021 (animatoon version 0.584 à 0.588) :


Images réalisées avec animatoon (pour certaines, j'ai utilisé un dessin que j'ai créé puis  scanné et importé, et j'ai fait la mise en couleur dans animatoon, les autres ont été entièrement conçues dans animatoon).
Mon objectif sur ces images est de simuler d'une manière la plus proche possible l'aquarelle ou les encres de couleurs (pebeo).


Images entièrement créés dans animatoon :














Images mise en couleur dans animatoon, (j'ai réalisé le dessin sur une feuille que j'ai ensuite scannée) :
Certaines couleurs ne sont pas terminées.

























Voici les liens des Vidéos (timelapse /screencast) :







samedi 4 juillet 2015

Download



Mise à jour 22 juin 2021.


Logiciel (Exécutable)

Version stable :

Je mets les dernières versions sur mon github : 
Dernière version : 0.598
 
https://github.com/blendman/animatoon/tree/main/_release

Pour le moment, je compile pour windows, car je n'ai pas d'autres systèmes sous la main. Si un contributeur souhaite compiler pour linux ou macos, je pourrais proposer des versions pour ces systèmes :).


Source

Certaines sources sont disponibles ici :
https://github.com/blendman/animatoon

Pour cela, il faut télécharger Purebasic afin de compiler les sources (la démo devrait suffire pour ces sources-ci).

mardi 16 juin 2015

Animatoon (screen) - récapitulatif des avancées


Voici le récapitulatifs de mes avancées sur la nouvelle version d'animatoon.

Mise à jour le 16/07/2015

 15/07/2015 0.55
 New
 - Image : Level
 - Layer Background


 14/07/2015 0.54
 New
 - Image : contrast
 - Image : color balance
 - Image : posterize
 - layer properties : new window with some fx (not finished)
 Fixes
 - bug with update Text (after action with tool move/rotate/transform)
 - when open a jpg, the layer was a copyimage (in 24 bit), and hasn't alpha chanel, the layer is now in 32bits


 13/07/2015 0.53
 Fixes
 - FloodFill : doesn't take the zoom
 - when delete a layer, we can't select the new layers created
 - when tool floodfill selected, the color wasn't good (was always the brush color)
 - the pick color didn't work when the tool wasn't brush/eraser or pen. Now it works with all painting tools (floodfill, box, ellpise, text...)
 - when we use shape tool (line, box, ellipse...) and pickcolor (alt + clic) the shape was drawned. Now it is drawned only if alt (pick color) isn't pushed.
 - fixe some bugs in symetry (miror vertical, horizontal and 4 views) X and Y weren't at the good position


 12/07/2015 0.52
 New
 - Tool move, rotate, transform : option-> action on all layers viewed
 Fixes
 - bug with cut/copy and selection


 11/07/2015 0.51
 New
- Menu File : new document : new window + template size


 10/07/2015 0.50
 New
 - View  :grid
 - Tool shape : transparency for the border (ellipse, rectangle)
 Changes
 - some keyboard shortcut have now ellapsedtime
 Fixes
 - Tools shape (rectangle, circle...) were bugged with outlined + alphablend


 09/07/2015 0.49
 New
 - New stroke "line"
 - Tool Ellipse, box : outlined, proportionnal
 - Tool line : AA, radial, speedline


 08/07/2015 0.48
 New
 - Mask alpha : Layer gadget has now a preview for alphamask
 - Mask alpha : btn : add an alpha mask
 - Mask alpha : when clear layer  it clear the image mask alpha if smask is seleted.
 - Mask alpha : we can select the mask image or the image layer, with clic on layer-gadget
 - Mask alpha : Fill -> now we can fill the alphamask
 Fixes
 - we couldn't delete a layer if nb of layer was < 2
 - when we selected a tool, the selection-rectangle create a text layer when we add a layer
 - layer delete : when we delete a layer, it wasn't really deleted if hte numer was > layerID
 - fixe bug with add layer
 - tool rotate : the spin parameter doesn't work in Realtime
 - for all tool, with parameter (spin, checkbox...) I verify now if hte layer isn't locked and is viewed
 - when use arc-en_ciel selector color, the first stroke still was with the old color
 - color selector : the color wasn't keep after the second stroke
 - If we use keyboard shortcuts F & D, the color change to the old color


 07/07/2015 0.47
 Changes
 - Some changes with Water brush parameters (not finished)



 06/07/2015 0.46
 New
 - Brush water
 Changes
 - color mix old : now, with only layer, it begin with alpha transparency depending of the % of the mix color
 - save/load colormix parameters in pref : layer and colorMix typ, and set the parameters
 - New file format (open/save) : *.ani in now a zip (renammed by ".ani" with all the layer/info in it).
 Fixes
 - Some fixes in the color mix system (modified)
 - fixe error color with mix mode : old, inverse and new (color weren't good)
 - some fixe with the new layer system (Free gadget & image)



 05/07/2015 0.45
 New
 - Layer lock move, lock paint
 - new layer Buton interface (preview, view,lock, name, selected), event clic on UI layer ok
 Changes
- color mix: layer only : take only the color of the image layer, not the screen (with layer + paper)



 04/07/2015 0.44
 - View : new option : filtering (no, bilinear)
 - Zoom : 1000%
 - Edit : select All, deselect
 Change
- Edit : copy, cut only copy/cut the selected area (not the entire layer)
 Test
 - test to optimise the drawing


 03/07/2015 0.43
 New
 - Menu Filters
 - Filter : Noise, Blur(by g-rom), sharpen alpha
 Test
 - plug in system for filters


 02/07/2015 0.42
 New
 - Tool fillarea : better tool (adapted from a code by comtois)
 - layer text are saved and loaded
- MAsk alpha: we can use a mask for the alpha of the image(not finished)
 Changes
- Now, the clear layer fill the layer and image with a white box before to erase them
 Fixes
 - bug with color selector
 - when tool = text, we couldn't add a normal layer
 - when change tool, color solect and color image weren't updated


 01/07/2015 0.41
 New
 - Script (test) : save, stop and run script.
 - New Menu : Script (test)
 Fixes
 - color selector fixes : the colour of the selector wasn't good if we pick the colour from the canvas area or the colorImageBG.
 - Fixe the cursor of the color Select too, which wasn't at the good place when selecting a new color.
 Test
 - various test for animation and color selector fixes


 30/06/2015 0.40
 New
 - Tool Text : text, fontname, fontsize, fontcolor
 Changes
 - several types of layers are available : Bitmap (defaut), text for the moment. More to come (background)
 Fixes
 - bug Bm : qd on gomme, ça n'apparait pas immédiatement
 - box bug
 - bug avec color : au départ la couleur n'est pas ok


 29/06/2015 0.39
 New
 - Panel tool parameters : now, I delete all the gadget and gadgetitem and recreate it, depending of the action selected (brush, eraser, spray, move layer...)
 - Tool Move : parameters on panel -> pos X, Y, lock X & Y dir, view border
 - Tool rotate :  parameter in options -> angle
 - Tool Transform : parameters Width/height + proportionnal
 - Tool gradient : add radial, circular, elliptic, conical, boxed gradient
 Test
 - Stroke



 28/06/2015 0.38
 New
 - New Brush Stroke CurveType : Dash
 - New brush Stroke Type : image or circle
 Change
 - Stroke and line modified to have a better a smoothed stroke
 - The min size of the brush was 1, it's now 0.05 (when recalculated with pressure)
 - some optimisation for brush stroke



 27/06/2015 0.37
 New
 - panel, tool : box, gradient, line, ellipse : have some gadgets (alpha..)
 - Menu & Window preference
 - Window Info (help)
 Fixes
 - some minors fixes



 26/06/2015 0.36
 New
 - Swatch : open, save, export, merge. We can now open a swatch (gpl format (gimp, krita, mypaint..), save it, export it, and merge several swatch
 - Swatch Properties/edit : to change the number of column, the name, add a swatch in the palette, image from an image, save, open
 - Désormais Brush et autre outils ont des paramètres séparés (brush\param devient un tableau d'action:  brush(action)\param)
 - sauvegarde des paramètres du brush, eraser and pen (pref)
 - le panel tool s'actualise en fonction de l'outil choisi. Pour le moment, seul Brush, eraser et pen sont actualisés
 - Theme : now, we can customise our icones (colors and interface for later ))
 Fixes
 - some minor bugs fixes



 25/06/2015 0.35
 New
 - color selector
 - swatch : create the swatch squares (not finished)
 - New stroke type : Gersam (G-rom + Falsam)
 Test
 - a lot of tests to have a better line (bezier, bresenham algo...)
 Fixes
 - some minors bugs fixes


 24/06/2015 0.34
 New
 - color selector (wip)
 Fixes
 - Roughboard :the canvas wasn't at the good size with some image
 Test
 - Various test to fixe the Brush\pas : wasn't the good method. I'm looking for a method to have equal distance between all dots of my stroke.


 23/06/2015 0.33
 New
 - Image : rotate image (90,180,270, free) All layers are rotated
 - ajout d'un thread autosave() pour sauver automatiquement nos calques modifiés toutes les minutes
 - new parameter for the brush : Stroke : we can use an image (default) or the "line" stroke, which is better to draw inking line for example.
 - Layer : rotate only the current layer
 Changes
 - some modifications on the line, when brush is "smooth"


 22/06/2015 0.32
 New
 - Tool box, ellipse, line, gradient (with color and alpha)
 - Tool rotate.
 - buttons swatch : open, save, export (just the button ^^)


 21/06/2015 0.31
 New
 - langage : Menu ok
 - langage : Toolbar ok
 - langage : panel name ok
 Changes
 - now, the screen is parent to a container, not the window, so it's easier to resize it with this container ! (thanks dobro !)
 Fixes/Corrigé
 - the mixcolor wasn't good with brushsize < 20
 - When screenUpdate(), the alpha of the layer wasn't good if Width < Height
 - bug du screen refresh : we have to refresh the screen manually if we resize the window (feature temporary)


 20/06/2015 0.30
 New
 - brush filter : on peut mettre des paramètres (test)
 - new Filter :ground (sol), line. Not finished : add, dark
 - Zoom with Wheel
 - add shift (square) with transform tool
 Fixes/Corrigé
 - bug Crop : doesn't crop the good area
 - we didn't see the border of the layer & selection when zoom/unzoom
 - We didn't see border and selection when move the canvas
 Test
 - pour bm overlay et autre : ajout bm custom + bouton custom



19/06/2015 0.29
Nouveau
- Tool selection cadre + shortcut (M)
- Image : crop
- framegadget for size, aspect & line (panel tool "general")
Corrigé
- raccourci D et F ne prenaient pas en compte if brush\sizemini > brush\size
- je n'affichai pas les calques/paper,etc pour le mixtyp = 0 (layer above)
- la gomme buguait car le drawingmode() n'était pas bon avec rotation-angle
- image saved (_screen) doesn't take the good format
- bug : qd on ouvrait un document avec des layers avec bm screen ou overlay, etc.. les layers n'étaient pas mis à jour tout de suite
- il y avait une inversion entre bmp et jpg dans la sauvegarde image



18/06/2015 0.28
Nouveau
- Tool move : with keyboard
- brush follow angle
- le color mix classic est opérationnel et topissime !
Modifié
- brush rotation : le random peut aller dans les deux directions
Corrigé
- il y avait un bug avec le lavage de pinceau (ça ne lavait pas)
- certains gadgets param du brush n'étaient pas mis à jour qd on ouvrait un preset
Test
- image adjustement ok : level, contraste, brightness, teinte, TSV (HSB)
à réfléchir
- optimisation (à revoir, car j'ai besoin des images): je ne dessine plus sur les images, si on est en mode screen, je récupère le dessin du sprite et je le colle sur l'image



17/06/2015 0.27
Nouveau
- spin pour opacity calque
- ajout Nbre max d'undo
- ajout ScrollArea pour canvas RB
- ajout ScrollArea pour swatch
- Ajout splitter layer/swatch
- Ajout splitter tool/color
- les splitters se resizent en fonction de la taille de la fenêtre
- je sauve et charge la position de la barre de séparation des splitters dans les options (tool et layer)
- getcolor : ajout d'option pour choisir le/les calques sur lesquels on peut prendre la couleur . (All above, layer only, all, custom). Custom pas encore possible.
modifié
- ajout tooltip pour colormix
- ajout d'un panneau "tra" (transparence) pour le panel des tools-brush
- ajout de frame gadget pour brush : alpha, rot, scatter, color, symetry
corrigé
- l'export et save des RB n'enregistrait pas l'image
Tests :
- stroke : curve smooth (onilink code conversion)



16/06/2015 0.26
 Nouveau
- Brush size random
- Brush size mini + gadget (ok avec random & pression)
- Brush intensity : permet d'augmenter l'intensité du brush (plus ou moins foncé)
- RoughBoard : boutons paint/pick, load, save, export. Tous opérationnels
- on sauve la roughboard en cours à la sortie et on l'ouvre  (c'est sauvegardé dans les options)
- Image : inverse color
- Image : desaturate
- remplir le calque avec 1 pattern
Corrigé
- le center view ne prenait pas en compte le zoom
- qd on redimensionnait le canvas, les layers restaient à l'ancienne taille
- qd on bougeait un layer et qu'on en sélectionnait un autre, il appliquait le changement (x,y) au layer sélectionné.
Test
 - wheel mouse (marche avec mousewheel, mais il faut examinemouse()


15/06/2015 0.255
nouveau
- Layer : MirorH et mirorV pour layer
- SaveImage : jpg et bmp format ajouté
- open : all files
Correction
- bug avec le resizeImage() de pb, j'ai bidouillé un truc. Du coup, maintenant, on peut utiliser le smooth sur les brush et c'est supra topissime :)
- le move layer faisait flicker l'écran


14/06/2015 0.25
nouveau
- doc_open : on peut désormais ouvrir des image jpg, png, bmp


13/06/2015 0.24
nouveau
- brush symetry : h, v, h&v, 4 views (kaleidoscope)
modification
- désormais, on peut charger un dossier de preset autre que blendman
Correction
- saveimage : si l'image était plus petite que l'écran, ça prenait l'écran complet
- saveimage : ne copiait pas toute les parties
- saveimage: sauve désormais en une seule image toutes les parties :)
- resizedocument n'updatait pas le bm du layer (les layers étaient noirs, on devait remettre le bm).
- après un doc ouvert si je le sauvais, ça plantait dans certains cas.
- layer move : ça bugait encore sur les calques > 0


12/06/2015 0.23
nouveau
- save image : j'enregistre aussi une copie du screen pour avoir le rendu final identique à ce qu'on voit à l'écran.
- j'ai mis à jour la plupart des presets de brush et ajouter quelques presets (ink, marker, etc..)


11/06/2015 0.22
nouveau
- edit : fill (remplir en effaçant) avec couleur du fond
- edit : remplir la transparence avec couleur du fond
- edit coller (clipboard)
- edit copier (clipboard)
- edit cut
General
- découpage du fichier en plusieurs sous-fichiers (enumeration.pb, macros.pb...)
optimisation
- je n'utilise plus mousebutton(), releasemouse(), etc..
car c'était un peu bugué et ça ralentissait beaucoup les dessins.
J'utilise la commande #WM_leftbuttondown et up pour windows, ça va beaucoup plus vite. Pour linux/Mac, soit je trouverais l'équivalent, soit j'utiliserai ExamineMouse().
corrigé
- lorsque j'utilisais l'outil eraser, ça flickait



10/06/2015 0.21
Nouveau
- ResizeScreen si on resize la fenêtre, ça resize le screen et les gadgets panel, ça supprime les sprites et les recrée aussi (PB le nécessite)
- Blendmode : inverse, linearlight, Overlay (pas tout à fait identique à toshop)
- Layer alpha blocked
- brush size W et H
- brush softness
- fx type for tool brush : pixel, noise, glass. A revoir : smudge, water, blur
Modifié
- qd on crée un layer, ça update les gadgets paramètres du layer
Corrigé
- bug tool move : le zoom n'était pas pris en compte et donc ça décalait le layer
- save : j'ai changé le nom des images, car si on a 2 calques avec le même nom, on l'écrase.
- si Clear (ctrl+X), vérifier le bm car ça bug sinon
- si erase, vérifier le bm car ça bug sinon



09/06/2015 0.20
nouveau
- layer delete
- layer mergetobottom (merger avec calque vers le bas)
- layer mergeAll
test :
- changement de cursor
- optimisation pression tablet : test du systeme de tile (encore bugué, mais on approche ^^)


08/06/2015 0.19
- ajout panel couleur (BG et FG) pour futur couleur select)
- brush : lavage. Si enclenché, on revient à la couleur de base dès qu'on relâche la souris ou que mix = 0
- ajout Brush visco. Désormais, on ne prend la couleur que si la viscosité le permet
- ajout image FG, et clic sur image FG : change FG color
- ajout Fade color avec mixing : 1 nouveau type de mélange (classic)
- ajout bouton pour le mélange (choix du type de mélange)
- paper : on peut désormais changer le fond, sauvegarde et load du paper
- Tool transform : ok
modifié :
- taille image BG
- ajout dans les options de brush w, h, trait, smooth, hardness, lavage, visco, alphrarand, sizemin, sizepressure, alphapressure
Corrigé
- le TG des presets était coupé et on ne voyait pas l’ascenseur


07/06/2015 0.18
Nouveau:
- sauvegarde automatique des images si on ferme l'application (si on activait l'autosave)
- brush : sizeW et sizeH : pas encore actif
- brush trait : on peut l'activer ou non
- brush smooth : idem
- brush hardness : on peut régler le hard de chaque brosse
- brush : alpha pressure
Modifié :
- Tool box (encore bugué)
- paint getcolor (encore bugué)


06/06/2015 0.17
Nouveau
- ajout pression tablet !! (gros morceau :). il reste encore du boulot, mais c'est déjà pomalze :)
- ajout d'un center aux calques, pour les transformations (rotations, miror par exemple).
- ajout du système Tablet (structure, variables, constantes, prototypes) pour la pression des tablettes
- Brush : pression tablet pour size
optimisation :
- j'ai supprimé un screenupdate() après qu'on ait dessiné, ça fait gagné 10 à 20fps environ


05/06/2015 0.16
Nouveau :
- Image : Resize document
- Image : resize canvas
- File : Doc_Open() : ouvre les fichiers *.teo.
- File : save doc(), save le fichier
- tool fill (un peu buggué, mais c'est du bug PB ^^
- brush rotation
- alpha rnd
Modifié
- statusbar : j'ai ajouté des champs (texte "") pour la progressbar (pour sauve, ouvrir, new et transformation diverses.
- on peut passer de l'image brush 0 à max et de max à 0 désormais (faire le tour quoi)
- ajout de presets crayons
Corrigé
- lorsque j'appuie sur B, désormais, ça update la couleur
- paper pas à la taille du document


03/06/2015 0.15
nouveau
- Tool eraser
- Tool clear ( = ctrl+x)
- ajout de 25 images de brush supplémentaires
- ajout panneau color/swatch/roughboard/gradient
- ajout Roughboard, on loade l'image de la roughboard par defaut
- quand on clique sur la roughboard, on récupère la couleur sous le clic souris
- panneau Preset, TG, bouton reload, save, export, name
- qd on clic sur un preset ça le charge, export ça l'export, save ça sauve le preset en cours
modifié :
- bord autour du gadget BG color
corrigé :
- layer bm : efface le calque image qd on change le bm
- bm add ok
- bm multiply ok
- qd on changeait l'image du brush, on ne pouvait pas avoir l'image max
- tool move buggait avec le nouveau système de painting
- scatter n'était pas recalculé à chaque point (pas à chaque trait)
- qd on était sur le canvas, ça perdait le focus du gadget courant


02/06/2015 0.14
nouveau :
- tool move : désormais je demande une confirmation du changement et si oui, je l'applique.
- tool clear : on efface le layer courant mais on ne change pas l'outil précédent
- Ajout raccourci centerView
- ajout trait screen
- ajout trait image
- ajout bouton brush next et previous
- brush : ajout raccourci D et F (pour changer la taille)
- on peut changer l'image du brush avec les boutons next et previous
- ajout d'une option temps réel pour voir les changements en tps réel ou non (si ça rame trop, sur les immenses images par exemple)
Modifié :
- Le bouton du tool est actif au lancement de l'appli
- Options (open et save)
- désormais, je dessine directement le brush sur le sprite courant, puis sur l'image et j'update le screen avec ts les calques visibles
Je passe en tps réel à 30FPs (au lieu de 12 si je dessine l'image courante sur le sprite courant.
Corrigé :
- export all png : enregistrait les calques à la racine
- Bm multiply : ajout d'une box() blanche avant l'image


01/06/2015 0.13
nouveau :
- File : new avec taille à définir
- File : import image on layer
- File : Save image (as png)
- File : export all layer as png
- File : export all layer as zip
- Edit : clear layer
- Paper : correction avec le zoom : je diminue la surface du paper, plutôt que les dalles.
- Layer : duplicate
- Layer blocked
- brush scatter
- brush mixing ok
- brush : la couleur est ok sur l'image
- brush : maintenant, on mixe les couleurs entre la couleur actuelle et la couleur en point(x,y) du calque
- brush preview & update brushpreview
- tool pipette
- tool move layer
- bouton mix, change le mix du brush
- ajout toolbar  & icone : bouton pinceau, gomme, crayon, spray,tampon, etc..
- pipette couleur (alt+clic)
- ajout raccourci pour outil : b,e,v,k,g
- view : resetcenter, centerview, zoom 50,100,200,300,400,500
corrigé :
- bug qd on peint sur l'image et que le canvas est décalé
- qd on a un zoom et qu'on peint, ça décale le painting sur l'image


31/05/2015 0.12
- ajout d'un fenêtre pour charger tout (intro)
- Ajout combobox layerBM, qd clic layer > bm actualisé
- ajout gadget selecteur couleur
- changer couleur brush
- paper ou fond
- corrigé : on peint sur le layer courrant
non fini ou buggué :
- ajout layerBM multiply, Add, screen. BM à revoir : colorburn, linearburn, clearlight, lighten, darken


30/05/2015 0.11
- je dessine sur l'écran et sur l'image active
- si on zoome/dezoome, ça update l'image active et update le calque actif
- ajout statusbar, on écrit le zoom dedans, ainsi que la taille du document
- ajout panel tool
- ajout gadget brush size, alpha, rotation, scatter, pas
- ajout panel layer
- ajout gadgets layer : view, alpha, bm, bouton +,-, ht, bas
- layer selected > info, layerId change et gadget layer update
- layer alpha
- layer view


29/05/2015 0.10
- premiers tests
- ajout 2 calques : dessus, dessous
- test drawing sprite on screen, avec rotation et brush image
- ajout de calque
- ajout FPS
- ajouter des sprite quand on peint : devient assez lent
- dessiner sur l'image et updater le screen avec cette image est très lent pour une image grande (1024*1024), j'essayerai d'autres technique



lundi 15 juin 2015

Nouvelles Images (animatoon 0.20 à 0.60)

Voici quelques images récentes (juin 2015) que j'ai réalisées avec les dernières versions d'animatoon sur lesquels j'ai travaillées.

Mise à jour : 05/12/2016



Animatoon 0.5813 (11/2016)
Couleur : animatoon (simulation aquarelle / encre de couleur)
Encrage : crayon sur papier.








Animatoon 0.5813 (30/06/2016)
Couleur : animatoon (simulation aquarelle / encre de couleur)
Encrage : crayon sur papier.







 Animatoon 0.5813 (07/09/2015)






 Animatoon 0.58 (22/07/2015)









 Animatoon 0.57 (19 & 21/07/2015)

Pour cette image, j'ai repris un ancien dessin réalisé avec animatoon (version GM - 2010) et j'ai refait la couleur.








Animatoon 0.56 (16/07/2015)







Animatoon 0.42 (02/07/2015)









Animatoon 0.37 (27/06/2015)








Animatoon 0.34 (24/06/2015) 
Scann d'un croquis au crayon gris + couleur dans animatoon environ 2 heures




Julius (Animatoon 0.27+0.30 (20/06/2015))






Gloupat (animatoon 0.29 (19/06/2015)) - environ 1 heure

Test pour obtenir un rendu aquarelle + texture papier




Fraid (animatoon 0.28 (18/06/2015)) environ 30 minutes


Nouveau mode de mélange de couleur : classic (ça fait un fondu entre l'ancienne couleur et la nouvelle).



Julius (animatoon 0.20 (croquis) et 0.27-0.28(couleur et lignes décor)  (17 et 18/06/2015)) - environ 2 ou 3 heures





The blue boy (Animatoon 0.255 14/06/2015) - environ 15 minutes

Technique : brosse watercolor (fond), crayon (encrage + couleurs), backlight sur calque blendmode screen,



 Jake (animatoon 0.23 - 12/06/2015) - environ 2 heures


L'image originale est en 1500*1500, avec 10 calques et c'est fluide sans problème sur mon vieil ordi pourri ^^.
Technique : brosse watercolor + crayon (encrage), backlight sur calque blendmode screen, au dessus, un calque avec une texture de papier (bm : clearlight à 50%)





Dragouz - Animatoon 0.255 (15/06/2015) - environ 30 minutes. 
Un petit dragon, nommé "dragouz".



Technique : pinceau "acrylic" & crayon, ombre en blendmode multiply, backlight en blendmode Screen, ajout d'un calque "papier" à 20% d'opacité.


Et la vidéo :





Max (animatoon 0.24 - 14/06/2015)  - environ 10 minutes
Nouveauté : Symetrie (H, V, diagonal, kaleidoscope)



Technique : watercolor, blendmode multiply (pour la couleur et l'encrage)., outil symetry Horizontal.
Taille originale : 1024*768.

mercredi 3 juin 2015

Animatoon - informations générales liées au développement

Le 29 mai 2015, j'ai commencé à entièrement recoder animatoon avec purebasic en utilisant la bibliothèque pour les jeux (screen et sprites).

1) Introduction

Au départ, Purebasic dispose de plusieurs bibliothèques, qui ajoutent des fonctionnalités intéressantes pour le développement.
Par exemple, sur 3arks/Arkeos (mon projet de RPG mis en pause), j'ai utilisé la bibliothèque graphique Screen, Sprite, mouse, keyboard, ainsi que quelques fonctions liées à la bibliothèque graphique 2D Drawing.

Pour plus d'informations sur les bibliothèques de purebasic, voir ici :
http://www.purebasic.com/french/documentation/

Depuis 2011, j'ai recodé plusieurs fois Animatoon avec purebasic, en essayant de nouvelles techniques à chaque fois et en essayant d'optimiser le plus possible le code.

La version sur laquelle je travaille est la version utilisant les Sprites et le screen. Cette version est la plus performantes, mais elle dépend beaucoup de la CG et du CPU dont on dispose.
Cependant, j'ai un ordinateur assez faiblard, donc mes tests sont très encourageants, car sur cette machine, c'est parfaitement fluide, même au-delà de 2048*2048, et je peux utiliser beaucoup de calques avant que ça ne se mette à ramer (j'ai testé avec 30 calques sans aucun soucis).

2) récapitulatif

- Version Image (dessin) + canvas affichant les calques (affichage)
Images (calques), image (brush), calques affiché sur le canvas
Version utilisant des images (calques) sur lesquelles je dessine d'autres images (brush), puis je dessine chaque calque sur le canvas, avant de l'avoir effacer au préalable.

    Avantages : facile
    Inconvénients : cette version rame vite au-delà de 800*600 et 2 calques.
    Version utilisant cette technique : animatoon et Teo (voir la rubrique download). Ces versions ne sont plus mises à jour, car elles devenaient vite inutilisables.



- Version Image (dessin) + canvas temps réel (affichage)
Images (calques), image (brush), canvas temps réel
Version utilisant des images (calques) sur lesquelles je dessine d'autres images. En parallèle, je dessine directement le brush sur le canvas. Cette version va très vite car dessiner sur un canvas en 5000*5000 est presque immédiat. Le problème est pour les calques au-dessus du calque courant : les calques ne sont plus affichés sur le canvas (sinon, ça fait ramer, c'est le principe de la version précédente) et donc apparait toujours sous mes nouveaux traits. Récemment, j'ai testé un systèmes de dalle (tile) et j'actualise uniquement les dalles (tiles) sur lesquelles je suis passé.

    Avantages : assez fluide, grande image possible (5000*5000), plusieurs calques sans ramer (jusque 5)
    Inconvénients : la gestion des calques du dessus et des tiles est vite complexe. En plus, si on ajoute plus de 3 ou 4 calques, on se retrouve avec un système qui rame à nouveau très vite.
    Version utilisant cette technique : animatoon-Optimisée (non disponible)



- Version dessins sur Image (dessin) + OpenGlcanvas  (affichage)
Images (calques), image (brush), OpenGlcanvas pour l'affichage.
Comme toutes les versions, je dessine mon brush sur mon calque (image courante), puis j'affiche cette image sur le calque OpenGL.

    Avantages : l'openGl canvas permet d'avoir un zoom facile et fluide. C'est très rapide. Grâce à ce nouveau gadget (version Purebasic 5.30), on a accès aux shaders en temps réel, ce qui est top !
    Inconvénients : pour le moment, l'openGL ne dispose d'aucune fonctionnalité pour l'affichage (image ou autre). On doit donc tout coder par nous-mêmes, ce qui n'est pas une mince affaire ^^ (j'ai dû un peu me pencher sur opengl du coup).
    Version Utilisant cette technique : aucune, je n'ai fait que quelques tests pour le moment.
J'espère que Fred (le dev de Purebasic) ajoutera quelques fonctions à ce gadget (comme un StartDrawing(canvasGlOutput()) par exemple, ce qui permettrait de dessiner facilement des images ou autre dessus :).



- Version dessin sur image et sur sprite +  affichage des sprites sur screen
 Images (calque courant), image (brush) sprite (brush pour le prévisualisation et screen pour l'affichage.
En gros, j'effectue deux opérations en même temps : je dessine sur le calque courant (une image) avec mon brush (une autre image) et en même temps, je dessine sur le sprite courant (le calque pour l'affichage) sur le screen. J'affiche ensuite d'autres sprites (les autres calques), au dessous ou en dessous.

    Avantage : avec le screen et les sprites, on a beaucoup d'avantage : très rapide, très grandes images (5000*5000), beaucoup de calques possibles sans faire ramer (on peut avoir facilement 20 calques sans soucis), j'ai le zoom grâce aux sprites (ZoomSprite()), les rotations (canvas
    Inconvénient : le screen et les sprites sont liés au PC et la CG, au CPu, etc.. Donc, il peut arriver que sur des aordinateurs différents, on ait des résultats différents (au niveau rendu). Donc, il est possible que j'ajoute une option permettant d'avoir le rendu image si on le souhaite.
    Version utilisant cette technique : animatoon-Screen est en cours de développement, prochainement  disponible ;).


3) code de base

Ceci concerne la nouvelle technique : dessins sur image, puis sur sprite et affichage sur screen.

Pour gérer les calques, j'utilise une structure Layer, ainsi qu'une liste (New list()) ou un tableau (dim()).
La structure ressemble à ça :
Structure sLayer
Image.i ; l'image sur laquelle je vais dessiner
ImageBM.i ; nécessaire pour les blendmode
x.w : y.w ; position et taille
View.a : Lock.a :
Bm.a ; le blendmode
Alpha.a ; la transparence
name$ ; le nom, etc..
EndStructure
Idem, j'ai une structure pour le brush, avec ses paramètres (image, size, alpha, scatter, rotation, randomrotation, etc...).

Puis, je dessine mon brush (brush\image) sur le calque 1 (layer(0)\image) avec :

If Startdrawing(Layer(LayerActif)\image)
    Drawingmode(#pb_2ddrawing_alphablend) ; le blendmode normal, à changer pour un blendmode add, multiply ou autre
    ; il manque les opération de changement du brush
    ; je garde l'image du brush original, j'en fais une copie que je modifie si besoin( pour changer la taille, rotation, couleur
    ; ici les opérations de transformation : rotation brush, size brush...
    x = mouseX + Random(scatter) - Random(Scatter)
    y = mouseY + Random(scatter) - Random(Scatter)
    DrawAlphaImage(imageId(brush\imgNew), X, Y) ; on dessine l'image du brush
    Stopdrawing()
Endif
Et ensuite, je peins sur mon sprite actif de la même manière avec
If StartDrawing(Layer(LayerActif)\Sprite) ...

Et j'affiche mes sprites sur mon screen :
ClearScreen() ; j'efface l'écran
For i = 0 to arraySize(Layer())
    DisplayTransparentSprite(LAyer(i)\sprite, 0,0)
Next i
Flipbuffers ; j'affiche l'écran

C'est assez simple, mais ça fonctionne plutôt bien.
Evidemment, il faut faire attention car sur les grandes images (5000*5000) afficher plusieurs sprites de 5000*5000 peut être problématique sur certains ordinateurs.

L'avantage est de pouvoir utiliser OpenGl ou DirectX si besoin.



 4) partage du code entre version

Afin d'éviter de tout refaire, entre chaque version, j'essaie de récupérer un maximum de procédures et de code.
Par exemple, pour les rotation d'image, les presets de brush, les procédures d'affichages, de blendmode, els fx, les transformations d'image (désaturation, brightness), etc...