[Logiciel 2D] Animatoon

Programmation d'applications complexes
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

Coucou

Je continue de travailler sur animatoon, en ajoutant des petites choses, en fixant des bugs lorsque j'en rencontre, et en le testant au max :).

récemment, je l'ai testé en mode "production", j'ai ouvert un dessin scanné en A4 à 300DPI (3500 x 2500 pixels) et je l'ai colorisé.
Et ben, ça le fait grave, pinaise de bistouflaï :D.

La preuve (le dessin pas terminé) : couleurs et rendu dans animatoon, crayonné sur feuille A4.
(j'ai reduit l'image à 1800*1300, pour que ça ne soit pas trop lourd.
Image

un autre essai vite fait (entièrement réalisé avec animatoon) :
Image

Je vais essayer de poster une nouvelle version sur github dans pas longtemps, avec surtout des bugfixes, et quelques nouvelles bricoles.

Mais quel plaisr de recoder avec purebasic (ça faisait 2 ans que je ne codais presque plus rien ^^).
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

Salut

encore un dessin entièrement réalisé dans animatoon.
J'ai ajouté de nouveaux brush, réagencé les onglets pour l'outil pinceau, et commencé à ajouter des paramètres pour le papier (en fond).

Nouveaux dessins (environ 30 minutes) :
Image

Image

Et les liens des vidéo screencast :
https://youtu.be/KCLMt8qpA70

https://youtu.be/gdz407dRBIw

Edit :
et une vidéo en plus :
https://youtu.be/yJ53QH3yxfQ

A+ :)
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: [Logiciel 2D] Animatoon

Message par SPH »

On dirait vraiment que tu as dessiné sur papier cartonné 8)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: [Logiciel 2D] Animatoon

Message par venom »

SPH a écrit :On dirait vraiment que tu as dessiné sur papier cartonné 8)
Ouai...
Mais le logiciel ne fait pas tout. :( J'ai juste réussi à faire un bonhomme baton :? :wink:

Bravo en tout cas. Tu as l'air de bien l'exploiter :D







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

Coucou

Je continue d'ajouter des choses et corriger des bugs (car j'en ai pas mal en fait ^^).

Voici de nouvelles images et vidéos :


Un dessin réalisé en mai 2020 (sur papier A4, au criterium), et colorisé sur animatoon hier :
Image

La video timelapse/screencast :
https://youtu.be/ie56IOsYFuA

Un autre dessin réalisé en mai 2020 (sur papier A4, au criterium), et aussi colorisé hier (mais pas terminé) :
Image

Et un dessin entièrement réalisé dans animatoon, ce matin (environ 1h30):
Image

Et la vidéo complète de ce dessin :
https://youtu.be/xYa1CHhZmi0
SPH a écrit :On dirait vraiment que tu as dessiné sur papier cartonné 8)
En fait, c'est du papier pour faire des aquarelles.
J'essaie d'avoir un rendu le plus proche possible de ce que je fais avec l'encre de couleur ou l'aquarelle, donc, je mets en fond des papiers de ce type (aquarelle, canson à grain, etc...).
Mais le logiciel ne fait pas tout.
oui, c'est sûr ^^. C'est un logiciel de dessin et peinture, donc, c'est mieux de savoir un peu dessiner pour l'utiliser. On peut faire des bricoles de type édition d'images avec, mais c'est vraiment prévu pour la mise en couleur et la peinture numérique.
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: [Logiciel 2D] Animatoon

Message par MLD »

Moi qui suis nul en dessin, je suis admiratif de ton travail. Continu comme cela c'est beau.
Michel
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: [Logiciel 2D] Animatoon

Message par venom »

MLD a écrit :Moi qui suis nul en dessin, je suis admiratif de ton travail. Continu comme cela c'est beau.
Michel
C'est vrai que c'est joli. J'aime bien ton style de dessin en plus.







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

coucou

Un nouveau début de mise en couleur (non terminé):
Image

Et la vidéo timelapse qui va avec :
https://www.youtube.com/watch?v=jCmOMTAC71c

Moi qui suis nul en dessin, je suis admiratif de ton travail. Continu comme cela c'est beau.
Merci beaucoup ;)
oui, je vais continuer, ne serait-ce que pour tester mes modifications dans mon logiciel ^^
C'est vrai que c'est joli. J'aime bien ton style de dessin en plus.
merci, c'est un style entre la BD, les jeux vidéos de type aventure-plateforme/rpg et le dessin animé cartoon ;).

A+
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

salut

J'ai ajouté sur github les source de la dernière version d'animatoon (0.588).
je la mets à jour régulièrement, dès que je travaille dessus ;)
Mais il reste des bugs et pas mal de choses que je dois optimiser.

https://github.com/blendman/animatoon

A+
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

salut

J'ai mis les sources de la nouvelle version d'animatoon sur github (version 0.5.9.0).

Toujours au même endroit :
https://github.com/blendman/animatoon

De nouvelles images (et videos) :

Image

Image

Image


Timelapse /screen capture :
https://www.youtube.com/watch?v=LhKZkpUIG6E


Et Voici les nouveautés pour la dernière version d'animatoon (0.5.9.0), pour celles et ceux qui seraient intéressés (oui, c'est en anglais, car j'ai copié le changelog que j'ai mis sur github, un peu la flemme de tout réécrire en français, désolé ^^) :

Animatoon Version 0.5.9.0 (24 march 2021) :

Les nouveautés : possibilité de régler le fond (image du papier (ou toile, carton, etc), couleur, transparence, échelle), des améliorations d'outils (zoom, pipette, dégradés), ajout d'un autosave, amélioration pour la traduction, corrections de bugs, etc.

New
  • Background (paper) editor : preview paper image and names, color, alpha, scale.
    Menu/layer : transform image into line, to convert a drawing in black line.
    Picker tool : all layers or selected layer.
    Gradient : save/load now the colors and alpha (in the pref.ini)
    Options (pref.ini) : a lot of parameters have been added to the pref.ini to save/load options.
    new brush images
    new tool presets
    new papers
    add : autosave, and option (AutoSaveIfQuit, message ConfirmExit...)
    OpenGL version is ok (need to create a release special)
    add a logError file, to know the errors if needed
Changes / improvements
  • tool zoom : some changes and new parameters (zoom center, zoom on mouse (still wip))
    language system improved. We should get by default always a word in the UI. The menu language is updated in real time if we change the langage (need to add the gadgets now)
    some improvements in options save/load (relative path for swatch, roughboard, presets...)
    when import an image, it create now a new layer
    other minor changes and improvements (check if some images exists...)
Bugfixes
  • Bug paper if we open an image with height > width.
    New doc, open doc, resize, crop, trim... : didn't update the temporary layer
    Bug with shaped if we have changed the size of the document.
    Newdoc : didn't free the image od the lapha mask of layer 0
    several bugfixes with "merge layer"
    Bug layer merge-bottom and Blendmode (not used when merge).
    when we paint, preview image for layer isn't updated.
    Size and position of the container-screen isn't ok
    gradient and shape : bug if we create and move the canvas (is drawn several times)
    when close the app, the paths of the bank (for brush presets) isn't saved
    CTRL+x (cut) and copy (CTRL+c) didn't copy the selected area or layer
    paste didn't work
    the clipboard image isn't used.
    Bug spingadgets (panel brush, tra, dyn, color..) we cant' write a number > 99
    various minor bugfixes and improvements
A+
Dernière modification par blendman le mer. 24/mars/2021 16:15, modifié 1 fois.
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: [Logiciel 2D] Animatoon

Message par Micoute »

Je vois que ça avance bien, ça aurait été dommage de brider une telle énergie, bravo.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: [Logiciel 2D] Animatoon

Message par SPH »

+1

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: [Logiciel 2D] Animatoon

Message par G-Rom »

Salut Blendman , j'ai testé , avec mon écran 4k , tout est petit , l'interface est quasiment inutilisable. zoomé à la souris est hardcore & j'ai foiré un trait , impossible d'annuler :/
Sinon, c'est sympa ;)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: [Logiciel 2D] Animatoon

Message par G-Rom »

Voila un petit bout de code expliquant les undo/redo avec le patron de conception "command"
le principe est simple , dans l'exemple je démontre comment dessiner un pixel à un endroit donné en x & y avec une couleur et comment annulé l'opération.
Attention , le code ne gère pas la suppressions des commandes alloué dynamiquement , donc , ne pas utilisé tel quel , sinon fuite de mémoire garantie.

Code : Tout sélectionner

Prototype virtual_execute(*data)
Prototype virtual_undo(*data)
Prototype virtual_redo(*data)

Structure Command
  execute.virtual_execute
  undo.virtual_undo
  redo.virtual_redo
EndStructure

Structure CommandManager
  List *undo.Command()
  List *redo.Command()
EndStructure

Procedure ExecuteCommand(*cm.CommandManager, *cmd.Command)
  ForEach *cm\redo()          ; on efface redo et les commandes de la mémoire
    FreeStructure(*cm\redo())  
  Next  
  ClearList(*cm\redo())   
  *cmd\execute(*cmd)          ; on execute la commande
  AddElement(*cm\undo())  ; on l'ajoute a undo
  *cm\undo() = *cmd
EndProcedure

Procedure Undo(*cm.CommandManager)
  If ListSize(*cm\undo())
    LastElement(*cm\undo()) ; on execute undo
    *cm\undo()\undo(*cm\undo())
    AddElement(*cm\redo())  ; on l'ajoute a redo
    *cm\redo() = *cm\undo()    
    DeleteElement(*cm\undo()) ; on efface undo
  EndIf
EndProcedure

Procedure Redo(*cm.CommandManager)
  If ListSize(*cm\redo())
    LastElement(*cm\redo()) ; on execute redo
    *cm\redo()\redo(*cm\redo())
    AddElement(*cm\undo())  ; on l'ajoute a undo
    *cm\undo() = *cm\redo()    
    DeleteElement(*cm\redo()) ; on efface redo
  EndIf
EndProcedure




;
; Commande pour dessiner un pixel 
;
Structure PaintPixelCommand Extends Command
  *pixels_data
  bitmap_width.l  
  x.l
  y.l
  color.l  
  old_color.l
EndStructure

Procedure PaintPixelCommand_Execute(*cmd.PaintPixelCommand)
  *cmd\old_color = PeekL( *cmd\pixels_data + (*cmd\x + *cmd\bitmap_width * *cmd\y) )
  PokeL(*cmd\pixels_data + (*cmd\x + *cmd\bitmap_width * *cmd\y), *cmd\color)
  Debug "pixel at     : " + Str(*cmd\x) + " : " + Str(*cmd\y)
  Debug "paint color  : " + Str(*cmd\color)
  Debug ""
EndProcedure

Procedure PaintPixelCommand_Undo(*cmd.PaintPixelCommand)
  PokeL(*cmd\pixels_data + (*cmd\x + *cmd\bitmap_width * *cmd\y), *cmd\old_color)
  Debug "cancel paint"
  Debug "pixel at     : " + Str(*cmd\x) + " : " + Str(*cmd\y)
  Debug "paint color  : " + Str(*cmd\color)
  Debug ""
EndProcedure

Procedure PaintPixelCommand_Redo(*cmd.PaintPixelCommand)
  *cmd\old_color = PeekL( *cmd\pixels_data + (*cmd\x + *cmd\bitmap_width * *cmd\y) )
  PokeL(*cmd\pixels_data + (*cmd\x + *cmd\bitmap_width * *cmd\y), *cmd\color)
  Debug "redo paint"
  Debug "pixel at     : " + Str(*cmd\x) + " : " + Str(*cmd\y)
  Debug "paint color  : " + Str(*cmd\color)
  Debug ""
EndProcedure






Manager.CommandManager
InitializeStructure(@Manager,CommandManager)

*mes_pixels = AllocateMemory( 512 * 512 * 4 ) ; on créer une zone de 512x512 pixels

; on dessine 10 pixels
For i = 0 To 10
  
  ; on crée une commande de dessin
  *Paint.PaintPixelCommand = AllocateStructure(PaintPixelCommand)
  *Paint\execute       = @PaintPixelCommand_Execute()
  *Paint\undo          = @PaintPixelCommand_Undo()
  *Paint\redo          = @PaintPixelCommand_Redo()
  *Paint\bitmap_width  = 512
  *Paint\pixels_data   = *mes_pixels
  
  ; on remplis les champs
  *Paint\x = i  
  *Paint\y = i
  *Paint\color = 255 + i
  
  ; on l'execute !
  ExecuteCommand(@Manager,*Paint)
  
Next

; on annule les 5 derniers pixels : 
For i = 0 To 4
  Undo(@Manager)
Next 

; on annule l'annulation , redo :
For i = 0 To 4
  Redo(@Manager)
Next 

le principe est simple , tu créer "des commandes" de ce que tu veut pouvoir annulé , par exemple le dessin d'un rectange se fera de cette manière :

Code : Tout sélectionner

Structure PaintRectangleCommand Extends Command
  *pixels_data
  bitmap_width.l  
  x.l
  y.l
  w.l
  h.l
  color.l  
  old_color.l
EndStructure
pour un cercle :

Code : Tout sélectionner

Structure PaintCircleCommand Extends Command
  *pixels_data
  bitmap_width.l  
  x.l
  y.l
  radius.l
  color.l  
  old_color.l
EndStructure
il faut juste que tu étendes la structure à la structure "mère" Command est qu'a la création de la commande
tu "bind" les fonctions virtuelles :

Code : Tout sélectionner

Prototype virtual_execute(*data)
Prototype virtual_undo(*data)
Prototype virtual_redo(*data)

Structure Command
  execute.virtual_execute
  undo.virtual_undo
  redo.virtual_redo
EndStructure
tu "bind" ou plutot tu fait pointé correctement les bonne fonctions aux pointeurs de fonctions , execute , undo & redo :

Code : Tout sélectionner

*Paint.PaintPixelCommand = AllocateStructure(PaintPixelCommand)
  *Paint\execute       = @PaintPixelCommand_Execute()
  *Paint\undo          = @PaintPixelCommand_Undo()
  *Paint\redo          = @PaintPixelCommand_Redo()
  *Paint\bitmap_width  = 512
  *Paint\pixels_data   = *mes_pixels
  
  ; on remplis les champs
  *Paint\x = i  
  *Paint\y = i
  *Paint\color = 255 + i

ca peut paraître pas évident au premier abord , mais indispensable pour ce genre d'application. et une fois que tu as compris le principe , c'est simple comme bonjour.
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

G-Rom a écrit :Salut Blendman , j'ai testé , avec mon écran 4k , tout est petit , l'interface est quasiment inutilisable. zoomé à la souris est hardcore & j'ai foiré un trait , impossible d'annuler :/
Sinon, c'est sympa ;)
salut

Ah oui, mais c'est un logiciel free et open-source, donc , c'est pour les pauvres comme moi :D.
Et nous, les pâuvres, on n'a pas d'écran 4k, mais un petit PC portable 14pouces à moins de 300e, et là, c'est nickel en 1360*768 :)

Sinon, tu devrais tester gimp ou open-office en 4K, tu vas bien t'amuser aussi ^^.

Moi, je teste animatoon avec des résolutions assez petites comme 1360*768 par exemple (et je vais jusque 1920*1080, je ne peux pas aller au-dela avec mon ordi de toute façon) et ça fonctionne bien.

Mais sinon, ça doit être pareil avec quasiment tous les logiciels, avec ton écran 4K, non ?
Par exemple, l'éditeur purebasic en 1920*1080, sur mon ordi, c'est aussi riquiqui, et moi, je n'arrive pas à l'utiliser avec cette résolution, ça me pète les yeux ^^.
Je viens de tester, c'est identique avec gimp, openoffice, mypaint, rebelle, agk, etc... toutes les interfaces avec de grandes résolutions d'écran deviennent minuscules.
Pareil pour les trucs genre word, etc...

La plupart des logiciels que j'utilise ne se cassent pas la tête avec les résolutions, lorsqu'on a une grande résolution, tout devient minuscule, (font, gadgets, menu...).
Windows 10 permet de changer le pourcentage d'agrandissement (en 1920*1080, je choisis 150% par exemple), et hop ça passe nickel du coup.

De toutes façons, je ne peux pas changer, faudrait que je refasse toute l'interface (position et taille des gadgets), ce serait beaucoup trop de boulot ^^.

Pour le undo/redo, je ne l'ai pas encore ajouté, mais c'est parce que je ne fais jamais d'erreur quand je dessine, donc, je n'en ai pas encore eu l'utilité (punaise, l'excuse bidon :)).
Plus sérieusement, pour le undo/redo, j'ai déjà un fichier sur lequel j'avais fait des tests, et ça fonctionnait pour certains trucs comme certaines actions des outils (peindre, créer un rectangle ou un cercle). Mais pour d'autres choses, (la gomme par exemple), je dois revoir le système que j'ai.

J'ai regardé ton exemple de undo/redo, le problème c'est que ce n'est pas du tout comme ça que j'ai codé mon logiciel, et je ne vois pas du tout comment l'intégrer ^^.
En plus, c'est quand même très compliqué pour moi.
Oui, je suis pas très balèze en code, oui. Mais je fais des choses pas trop pourries avec mes limites ^^.
Répondre