Sprite Animation : logiciel pour créer des animations
Sprite Animation : logiciel pour créer des animations
Salut
Il y a quelques temps, j'ai commencé un logiciel pour créer des animations (pour les spritesheets de mes jeux ou pour simplement créer des animations). Voici donc quelques informations concernant ce soft, des images et pitet une démo si vous êtes sages ^^.
MISE A JOUR : 29/04/2016
■ Nom : Sprite Animation (nom à revoir, si vous avez un meilleur nom, n'hésitez pas )
■ Objectifs :
- créer des animations de sprites (linéaires pour le moment) : position, rotation, échelle (scale), alpha, depth (?), image
- créer un skeleton et pouvoir assigner un bone à un ou des sprites, et les animations des bones se répercutent sur les sprites (pour animer un personnage, par exemple)
■ Version actuelle : 0.11
La version disponible est une pré-version bêta, qui comporte certainement encore quelques bugs et qui est loin d'être terminée ^^.
Limitation :
- le système de bone n'est pas du tout terminé
- les interpolations entre les clefs d'animations sont implémentées, mais je dois optimiser ça par la suite ^^.
http://blendman.free.fr/dev/pb/spritean ... on0.11.zip
(La nouvelle version n'est pas encore disponible, car j'ai encore quelques bugs à corriger)
■ Videos
0.18
https://youtu.be/Y-jQ3xCbR4I
■ Screenshots
0.11
0.10
0.08
Old :
http://blendman.free.fr/dev/pb/spritean ... on0.05.jpg
http://blendman.free.fr/dev/pb/spritean ... on0.04.jpg
http://blendman.free.fr/dev/pb/spritean ... on0.03.jpg
■ Fonctions disponibles
0.18
// New
- le parenting fonctionne désormais avec les rotations (entre bone et entre bone et sprites). il reste quelques bugs, mais c'est utilisable (pinaise c'était hyper galère ^^)
- ajout paramètre speed animation preview
- export option (in animation propertie) : x,y,w,h,zoom
- export image ou image sequence (png, jpg)
- sprite et bone sélection améliorée (merci Fig !!!!)
- on peut désormais changer la couleur des sprites (mode multiply)
- splashscreen à l'ouverture
// Fixes
- beaucoup de bugs corrigés
0.11
// New
Timeline
- on voit la currentframe ainsi que la frame de départ et de fin.
- On peut bouger la currentFrame directement sur la timeline
- Visible : clefs lorsqu'elle sont ajoutées par sprite, canal du sprite selectionné
- on peut bouger les clefs des sprites ou bones
Interpolation
- l'interpolation est fonctionnelle entre les clefs des objets
0.10
// New
- Parenting : on peut parenter un sprite (ou un bone) avec un bone. Quand on effectue certaines transformations sur le bone parent (move, scale, scaleW, scaleH), c'est répercuté sur les enfants (bone ou sprite)
- sprite : désormais les sprites prennent en compte l'offset de leur image dans leur transformations. Les rotations et scale s'effectuent en fonction de ce centre par exemple (et non en w/2,h/2 et 0,0 par defaut). Attention, les sprites (et bones) ne prennent pas encore l'offset du bone parent dans leurs transformations.
- sprite : on peut animer les paramètres width et height, on peut aussi changer l'image entre différentes frames (utile pour les animation de type bouche, yeux...)
- Images : on peut modifier le centre (offset) des images, cela se répercutent sur les sprites.
- Ajout d'une Toolbar avec quelques boutons
- les gadgets et ecran sont redimensionnés quand on change la taille de la fenêtre
- Undo/redo (à revoir, mais fonctionne à peu près)
- options : chargement et sauvegarde des options lors de l'ouverture du soft
- autosave : désormais, je crée un fichier de sauvegarde automatique (d'après un timer qu'on peut définir dans les options.ini)
- lang : on peut changer la langue du soft si besoin (anglais ou français pour le moment)
// Fixes
- corrections dans OpenDoc : les frames > 0 étaient mal prises en compte
- correction lors de la sauvegarde
- corrections de divers bugs (images et autre)
0.08 (& précédentes)
. File : new, open, save/saveAs
. Image : on peut sélectionner une image et créer un sprite avec. Lorsqu'on crée un nouveau project, les images du dossier sont automatiquement ajoutées à la liste des images disponibles pour le projet.
. sprite : création, suppression, position, rotation, scale, alpha, image, depth. On peut transformer le sprite (position, rot,scale,alpha, depth), changer son image.
. Bone: création, suppression, sélection, position, rotation, scale.
. Animation : on peut ajouter ou supprimer une keyframe sur un sprite (prend en compte les paramètres : position, rotation, scale, alpha), on peut jouer l'animation. Lorsqu'on change de frame, si on transforme le sprite (position, rotation, scale, alpha, depth), si la clef n'existe pas elle est créé pour ce sprite avec les paramètres qu'on a modifié, sinon, ça modifie les paramètres pour la clef sélectionnée.
. Ui : pan (bouger la vue), zoom, animation (nb total de frame, fps, clef courante...)
Note : Pour le moment, l'interpolation se calcule uniquement lors des clef d'animation pour les sprites. Donc, si on démarre entre deux clefs, ça fait n'importe quoi jusqu'à ce qu'on arrive sur une clef d'animation. Mais je modifierai ça très prochainement.
■ Todo-list
UI
ok 0.05 - ajouter le zoom √
ok 0.06 - select sprite √
ok 0.07 - select bone √
ok 0.09 - ajouter Toolbar : New, open, save| add (A), select (clic), move (G),rot (R), scale(S) √
ok 0.06 - option : BG Checker √
- option : BG color
- option : BG Image
- pouvoir changer le BG (image)
- pouvoir mettre une image de référence (par exemple pour shibi pour bien placer les yeux, etc...)
Animation (général)
ok 0.08 - ajouter list animation √
ok 0.08 - pouvoir selectionner l'animation √
ok 0.08 - pouvoir ajouter une nouvelle animation √
ok 0.08 - pouvoir supprimer une animation √
- pouvoir cloner une animation
Animation des sprites
ok 0.11 - ajouter les interpolation entre les clefs à recalculer si on change de frame √
ok 0.10 - spritetransformation: avoir les rotation et transformation avec l'offset √
Edition
ok 0.10 - undo √
ok 0.10 - redo √
- historic ?
View
ok 0.06 - reset view √
ok 0.06 - center view √
ok 0.06 - view to sprite √
Files
ok 0.05 - new √
ok 0.06 - open √
ok 0.05 - save √
ok 0.05 - save As √
ok 0.16 - export all frame as separated images (png) : image or sequence√
- export all frames as avi
- export all frames as gif
Images
ok 0.05 - ajouter biblio image √
ok 0.05 - pouvoir select image pour créer sprite √
Bone
ok 0.07 - ajouter bone √
ok 0.08 - supprimer bone √
ok 0.08 - bone name √
ok 0.06 - pouvoir selectionner bone √
ok 0.06 - pouvoir bouger bone √
ok 0.07 - pouvoir rotationner bone √
ok 0.07 - pouvoir scaler bone √
ok 0.06 - draw bone move √
ok 0.07 - draw bone rotate √
ok 0.07 - draw bone scale √
ok 0.10 - ajouter parenting bone (bouger/rotationner/scaler bone bouge les enfants) √
ok 0.10 - qd bone bouge, child bougent √
ok 0.10 - qd bone scale, child scale avec scale parenting √
ok 0.14 - ajouter anim de bone R √
ok 0.14 - ajouter anim de bone G √
ok 0.14 - ajouter anim de bone S √
ok 0.15 - qd bone rotate, child rotate, avec rotation parenting
- ajouter l'offset dans les transformations avec le parent
- ajouter anim de bone Depth
- ajouter anim de bone Alpha
- ajouter anim de bone color
Images
ok 0.09 - pouvoir changer offset Image (et donc du sprite, zoom et rotation) √
ok 0.10 - pouvoir faire un update du dossier des images √
Sprite
ok 0.05 - pouvoir changer depth sprite √
ok 0.08 - pouvoir changer image sprite √
ok 0.06 - select by name √
ok 0.06 - sprite name √
ok 0.08 - supprimer sprite √
ok 0.10 - animation de sprite Rotation (R) √
ok 0.10 - animation de sprite Move (G = Grab) √
ok 0.10 - animation de sprite Scale (S) √
ok 0.10 - animation de sprite sizeH √
ok 0.10 - animation de sprite SizeW √
ok 0.10 - animation de sprite Alpha √
ok 0.11 - animation de sprite Image √
Timeline
ok 0.11 - ajouter timeline √
ok 0.11 - ajouter framecurrent √
ok 0.11 - pouvoir bouger framecurrent √
ok 0.11 - voir key par sprite √
ok 0.11 - pouvoir bouger key par sprite √
ok 0.12 - pouvoir supprimer key par sprite √
ok 0.20 - pouvoir copier/coller key par sprite √
- voir keyframe generale
- pouvoir bouger keyframe generale
- pouvoir supprimer keyframe generale
- pouvoir copier/coller keyframe general
? - voir key par sprite (rot,scale, pos, alpha...)
■ Remerciements
- Bien entendu, je remercie Fred et la Team de Purebasic pour cet extraordinaire langage et toutes les possibilités qu'il offre . Merci aussi pour la lib vector drawing dont je me sers pour la sortie des images, ainsi que la lib screen/sprite pour l'affichage et l'édition-animation.
- Stargate (rotation sprite Not centered) et système de bone (bone /sprite parenting)
- Fig : merci pour la découpe de sprite automatique et l'amélioration de la sélection des sprites et bones
- Mesa/Typhon/Comtois : sprite bounding box et aide en général
- Dobro (spock) : merci pour l'aide pour le parenting des bones (même si au final j'utilise une autre méthode ^^).
- Rashad pour l'aide en général
- Falsam : merci pour la mise en page pour cette présentation, je me suis inspiré d'une mise en page d'une de tes projets
■ Infos techniques
Ce logiciel utilise les libs suivantes :
- Screen & Sprite (affichage surface centrale, interactions), keyboard (keyboard sur surface de travail). Je n'utilise pas encore mouseX()/MouseY(), peut-être dans la version linux/Mac si j'en fais une.
- Window, windowmouseX/Y
- Menu, statusBar (je crée ma toolbar à la main)
- Gadgets (pour le canvas : timeline, preview image center...)
- vectorDrawing : export et outil de dessin vectoriel (version allégée et intégrée de Cartoon, mon autre logiciel d'animation vectorielle)
- Json (options)
- image, image plugin, font
- Array & sort : des array() pour gérer tous les sprites et les bones. Quelques list() et pas encore de map()
- Files & Filesystem (open, save documents), date, string
- Math : pour beaucoup d'opération (rotation...)
- Requester, OnError
- Thread (lors de la lecture de l'animation notamment)
- Http (pour recevoir l'avertissement de mise à jour) et Network (pour certaines opérations de renderfarm)
Aucune lib 3D n'est utilisée (pour le moment).
■ Suggestion, remarques
Si vous avez des idées, des suggestions ou des remarques, n'hésitez pas .
■ Purebasic feature request
J'en profite pour poster ma petite des features-requests que j'aimerai voir ajoutées dans Purebasic (Fred, si tu me lis ).
J'utilise le screen et les sprites pour de très nombreuses applications que je développe. Donc, ces nouvelles fonctions pourraient être très utiles pour les jeux et pour les applications graphiques :
- DrawBuffer(sprite) : pouvoir dessiner des sprites sur un sprite (avec canal alpha), comme c'était le cas autrefois avec l'ancien système de sprite.
Autres fonctions (on peut déjà le faire par nous-même, mais ce serait peut-être mieux en internet ^^)]
- SpriteImage(Sprite, Image) (équivalent de CreateSprite3D(Sprite, image)) : dans une version ultérieure, on pouvait faire ça avec les sprite3D, ce serait bien pouvoir à nouveau le faire, ça éviterait de faire des loadsprite() tout le temps, on pourrait charger une image (dynamiquement, c'est donc différent de catch sprite où les images sont statiques) et facilement créer des sprites avec cette image. Avec SpriteImage(sprite, image), on pourrait aussi changer dynamiquement l'image d'un sprite, si le sprite existe (sa nouvelle taille serait alors la taille de la nouvelle image.
- SpriteColor() : permet de changer la couleur (en mode multiply) du sprite. Attention, c'est différent de la couleur changée avec DisplayTransparentSprite(), car la couleur est remplacée dans cette dernière fonction, et multipliée comme avec ma demande.
- SpriteOffset() : pour placer un centre à nos sprites. Ainsi, les zoom et rotation se feraient en fonction de cet offset() ou non.
Shaders
Ca, ce serait vraiment intéressant, mais j'imagine que ce n'est pas du tout évident à coder (à moins que ça ne soit disponible qu'avec openGL) :
- LoadShader(shaderID, nom.vs,nom.ps)
- SetShaderparameter(Shader, parameter$, valeur)
- SpriteShader(sprite,shader), : pour charger un shader (GLSL), et que le sprite l'utilise.
Il y a quelques temps, j'ai commencé un logiciel pour créer des animations (pour les spritesheets de mes jeux ou pour simplement créer des animations). Voici donc quelques informations concernant ce soft, des images et pitet une démo si vous êtes sages ^^.
MISE A JOUR : 29/04/2016
■ Nom : Sprite Animation (nom à revoir, si vous avez un meilleur nom, n'hésitez pas )
■ Objectifs :
- créer des animations de sprites (linéaires pour le moment) : position, rotation, échelle (scale), alpha, depth (?), image
- créer un skeleton et pouvoir assigner un bone à un ou des sprites, et les animations des bones se répercutent sur les sprites (pour animer un personnage, par exemple)
■ Version actuelle : 0.11
La version disponible est une pré-version bêta, qui comporte certainement encore quelques bugs et qui est loin d'être terminée ^^.
Limitation :
- le système de bone n'est pas du tout terminé
- les interpolations entre les clefs d'animations sont implémentées, mais je dois optimiser ça par la suite ^^.
http://blendman.free.fr/dev/pb/spritean ... on0.11.zip
(La nouvelle version n'est pas encore disponible, car j'ai encore quelques bugs à corriger)
■ Videos
0.18
https://youtu.be/Y-jQ3xCbR4I
■ Screenshots
0.11
0.10
0.08
Old :
http://blendman.free.fr/dev/pb/spritean ... on0.05.jpg
http://blendman.free.fr/dev/pb/spritean ... on0.04.jpg
http://blendman.free.fr/dev/pb/spritean ... on0.03.jpg
■ Fonctions disponibles
0.18
// New
- le parenting fonctionne désormais avec les rotations (entre bone et entre bone et sprites). il reste quelques bugs, mais c'est utilisable (pinaise c'était hyper galère ^^)
- ajout paramètre speed animation preview
- export option (in animation propertie) : x,y,w,h,zoom
- export image ou image sequence (png, jpg)
- sprite et bone sélection améliorée (merci Fig !!!!)
- on peut désormais changer la couleur des sprites (mode multiply)
- splashscreen à l'ouverture
// Fixes
- beaucoup de bugs corrigés
0.11
// New
Timeline
- on voit la currentframe ainsi que la frame de départ et de fin.
- On peut bouger la currentFrame directement sur la timeline
- Visible : clefs lorsqu'elle sont ajoutées par sprite, canal du sprite selectionné
- on peut bouger les clefs des sprites ou bones
Interpolation
- l'interpolation est fonctionnelle entre les clefs des objets
0.10
// New
- Parenting : on peut parenter un sprite (ou un bone) avec un bone. Quand on effectue certaines transformations sur le bone parent (move, scale, scaleW, scaleH), c'est répercuté sur les enfants (bone ou sprite)
- sprite : désormais les sprites prennent en compte l'offset de leur image dans leur transformations. Les rotations et scale s'effectuent en fonction de ce centre par exemple (et non en w/2,h/2 et 0,0 par defaut). Attention, les sprites (et bones) ne prennent pas encore l'offset du bone parent dans leurs transformations.
- sprite : on peut animer les paramètres width et height, on peut aussi changer l'image entre différentes frames (utile pour les animation de type bouche, yeux...)
- Images : on peut modifier le centre (offset) des images, cela se répercutent sur les sprites.
- Ajout d'une Toolbar avec quelques boutons
- les gadgets et ecran sont redimensionnés quand on change la taille de la fenêtre
- Undo/redo (à revoir, mais fonctionne à peu près)
- options : chargement et sauvegarde des options lors de l'ouverture du soft
- autosave : désormais, je crée un fichier de sauvegarde automatique (d'après un timer qu'on peut définir dans les options.ini)
- lang : on peut changer la langue du soft si besoin (anglais ou français pour le moment)
// Fixes
- corrections dans OpenDoc : les frames > 0 étaient mal prises en compte
- correction lors de la sauvegarde
- corrections de divers bugs (images et autre)
0.08 (& précédentes)
. File : new, open, save/saveAs
. Image : on peut sélectionner une image et créer un sprite avec. Lorsqu'on crée un nouveau project, les images du dossier sont automatiquement ajoutées à la liste des images disponibles pour le projet.
. sprite : création, suppression, position, rotation, scale, alpha, image, depth. On peut transformer le sprite (position, rot,scale,alpha, depth), changer son image.
. Bone: création, suppression, sélection, position, rotation, scale.
. Animation : on peut ajouter ou supprimer une keyframe sur un sprite (prend en compte les paramètres : position, rotation, scale, alpha), on peut jouer l'animation. Lorsqu'on change de frame, si on transforme le sprite (position, rotation, scale, alpha, depth), si la clef n'existe pas elle est créé pour ce sprite avec les paramètres qu'on a modifié, sinon, ça modifie les paramètres pour la clef sélectionnée.
. Ui : pan (bouger la vue), zoom, animation (nb total de frame, fps, clef courante...)
Note : Pour le moment, l'interpolation se calcule uniquement lors des clef d'animation pour les sprites. Donc, si on démarre entre deux clefs, ça fait n'importe quoi jusqu'à ce qu'on arrive sur une clef d'animation. Mais je modifierai ça très prochainement.
■ Todo-list
UI
ok 0.05 - ajouter le zoom √
ok 0.06 - select sprite √
ok 0.07 - select bone √
ok 0.09 - ajouter Toolbar : New, open, save| add (A), select (clic), move (G),rot (R), scale(S) √
ok 0.06 - option : BG Checker √
- option : BG color
- option : BG Image
- pouvoir changer le BG (image)
- pouvoir mettre une image de référence (par exemple pour shibi pour bien placer les yeux, etc...)
Animation (général)
ok 0.08 - ajouter list animation √
ok 0.08 - pouvoir selectionner l'animation √
ok 0.08 - pouvoir ajouter une nouvelle animation √
ok 0.08 - pouvoir supprimer une animation √
- pouvoir cloner une animation
Animation des sprites
ok 0.11 - ajouter les interpolation entre les clefs à recalculer si on change de frame √
ok 0.10 - spritetransformation: avoir les rotation et transformation avec l'offset √
Edition
ok 0.10 - undo √
ok 0.10 - redo √
- historic ?
View
ok 0.06 - reset view √
ok 0.06 - center view √
ok 0.06 - view to sprite √
Files
ok 0.05 - new √
ok 0.06 - open √
ok 0.05 - save √
ok 0.05 - save As √
ok 0.16 - export all frame as separated images (png) : image or sequence√
- export all frames as avi
- export all frames as gif
Images
ok 0.05 - ajouter biblio image √
ok 0.05 - pouvoir select image pour créer sprite √
Bone
ok 0.07 - ajouter bone √
ok 0.08 - supprimer bone √
ok 0.08 - bone name √
ok 0.06 - pouvoir selectionner bone √
ok 0.06 - pouvoir bouger bone √
ok 0.07 - pouvoir rotationner bone √
ok 0.07 - pouvoir scaler bone √
ok 0.06 - draw bone move √
ok 0.07 - draw bone rotate √
ok 0.07 - draw bone scale √
ok 0.10 - ajouter parenting bone (bouger/rotationner/scaler bone bouge les enfants) √
ok 0.10 - qd bone bouge, child bougent √
ok 0.10 - qd bone scale, child scale avec scale parenting √
ok 0.14 - ajouter anim de bone R √
ok 0.14 - ajouter anim de bone G √
ok 0.14 - ajouter anim de bone S √
ok 0.15 - qd bone rotate, child rotate, avec rotation parenting
- ajouter l'offset dans les transformations avec le parent
- ajouter anim de bone Depth
- ajouter anim de bone Alpha
- ajouter anim de bone color
Images
ok 0.09 - pouvoir changer offset Image (et donc du sprite, zoom et rotation) √
ok 0.10 - pouvoir faire un update du dossier des images √
Sprite
ok 0.05 - pouvoir changer depth sprite √
ok 0.08 - pouvoir changer image sprite √
ok 0.06 - select by name √
ok 0.06 - sprite name √
ok 0.08 - supprimer sprite √
ok 0.10 - animation de sprite Rotation (R) √
ok 0.10 - animation de sprite Move (G = Grab) √
ok 0.10 - animation de sprite Scale (S) √
ok 0.10 - animation de sprite sizeH √
ok 0.10 - animation de sprite SizeW √
ok 0.10 - animation de sprite Alpha √
ok 0.11 - animation de sprite Image √
Timeline
ok 0.11 - ajouter timeline √
ok 0.11 - ajouter framecurrent √
ok 0.11 - pouvoir bouger framecurrent √
ok 0.11 - voir key par sprite √
ok 0.11 - pouvoir bouger key par sprite √
ok 0.12 - pouvoir supprimer key par sprite √
ok 0.20 - pouvoir copier/coller key par sprite √
- voir keyframe generale
- pouvoir bouger keyframe generale
- pouvoir supprimer keyframe generale
- pouvoir copier/coller keyframe general
? - voir key par sprite (rot,scale, pos, alpha...)
■ Remerciements
- Bien entendu, je remercie Fred et la Team de Purebasic pour cet extraordinaire langage et toutes les possibilités qu'il offre . Merci aussi pour la lib vector drawing dont je me sers pour la sortie des images, ainsi que la lib screen/sprite pour l'affichage et l'édition-animation.
- Stargate (rotation sprite Not centered) et système de bone (bone /sprite parenting)
- Fig : merci pour la découpe de sprite automatique et l'amélioration de la sélection des sprites et bones
- Mesa/Typhon/Comtois : sprite bounding box et aide en général
- Dobro (spock) : merci pour l'aide pour le parenting des bones (même si au final j'utilise une autre méthode ^^).
- Rashad pour l'aide en général
- Falsam : merci pour la mise en page pour cette présentation, je me suis inspiré d'une mise en page d'une de tes projets
■ Infos techniques
Ce logiciel utilise les libs suivantes :
- Screen & Sprite (affichage surface centrale, interactions), keyboard (keyboard sur surface de travail). Je n'utilise pas encore mouseX()/MouseY(), peut-être dans la version linux/Mac si j'en fais une.
- Window, windowmouseX/Y
- Menu, statusBar (je crée ma toolbar à la main)
- Gadgets (pour le canvas : timeline, preview image center...)
- vectorDrawing : export et outil de dessin vectoriel (version allégée et intégrée de Cartoon, mon autre logiciel d'animation vectorielle)
- Json (options)
- image, image plugin, font
- Array & sort : des array() pour gérer tous les sprites et les bones. Quelques list() et pas encore de map()
- Files & Filesystem (open, save documents), date, string
- Math : pour beaucoup d'opération (rotation...)
- Requester, OnError
- Thread (lors de la lecture de l'animation notamment)
- Http (pour recevoir l'avertissement de mise à jour) et Network (pour certaines opérations de renderfarm)
Aucune lib 3D n'est utilisée (pour le moment).
■ Suggestion, remarques
Si vous avez des idées, des suggestions ou des remarques, n'hésitez pas .
■ Purebasic feature request
J'en profite pour poster ma petite des features-requests que j'aimerai voir ajoutées dans Purebasic (Fred, si tu me lis ).
J'utilise le screen et les sprites pour de très nombreuses applications que je développe. Donc, ces nouvelles fonctions pourraient être très utiles pour les jeux et pour les applications graphiques :
- DrawBuffer(sprite) : pouvoir dessiner des sprites sur un sprite (avec canal alpha), comme c'était le cas autrefois avec l'ancien système de sprite.
Autres fonctions (on peut déjà le faire par nous-même, mais ce serait peut-être mieux en internet ^^)]
- SpriteImage(Sprite, Image) (équivalent de CreateSprite3D(Sprite, image)) : dans une version ultérieure, on pouvait faire ça avec les sprite3D, ce serait bien pouvoir à nouveau le faire, ça éviterait de faire des loadsprite() tout le temps, on pourrait charger une image (dynamiquement, c'est donc différent de catch sprite où les images sont statiques) et facilement créer des sprites avec cette image. Avec SpriteImage(sprite, image), on pourrait aussi changer dynamiquement l'image d'un sprite, si le sprite existe (sa nouvelle taille serait alors la taille de la nouvelle image.
- SpriteColor() : permet de changer la couleur (en mode multiply) du sprite. Attention, c'est différent de la couleur changée avec DisplayTransparentSprite(), car la couleur est remplacée dans cette dernière fonction, et multipliée comme avec ma demande.
- SpriteOffset() : pour placer un centre à nos sprites. Ainsi, les zoom et rotation se feraient en fonction de cet offset() ou non.
Shaders
Ca, ce serait vraiment intéressant, mais j'imagine que ce n'est pas du tout évident à coder (à moins que ça ne soit disponible qu'avec openGL) :
- LoadShader(shaderID, nom.vs,nom.ps)
- SetShaderparameter(Shader, parameter$, valeur)
- SpriteShader(sprite,shader), : pour charger un shader (GLSL), et que le sprite l'utilise.
Dernière modification par blendman le dim. 01/mai/2016 15:19, modifié 8 fois.
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Sprite Animation : logiciel pour créer des animations
salut
Voici un lien pour télécharger une première version, si vous avez envie de tester .
Attention, c'est une version bêta qui est loin d'être terminée. Il reste même certainement encore quelques bugs ^^.
A noter que l'interpolation n'est pas calculée à toutes les frames (c'est prévue pour une prochaine version) et que le système n'est pas du tout terminé (on peut juste ajouter des bones, effectuer des transformations et les parenter avec un autre bone ou un sprite, mais c'est tout ^^).
http://blendman.free.fr/dev/pb/spritean ... on0.10.zip
J'ai mis à jour le premier message, avec les nouveautés de mon soft.
0.10
// New
- Parenting : on peut parenter un sprite (ou un bone) avec un bone. Quand on effectue certaines transformations sur le bone parent (move, scale, scaleW, scaleH), c'est répercuté sur les enfants (bone ou sprite)
- sprite : désormais les sprites prennent en compte l'offset de leur image dans leur transformations. Les rotations et scale s'effectuent en fonction de ce centre par exemple (et non en w/2,h/2 et 0,0 par defaut). Attention, les sprites (et bones) ne prennent pas encore l'offset du bone parent dans leurs transformations.
- sprite : on peut animer les paramètres width et height, on peut aussi changer l'image entre différentes frames (utile pour les animation de type bouche, yeux...)
- Images : on peut modifier le centre (offset) des images, cela se répercutent sur les sprites.
- Ajout d'une Toolbar avec quelques boutons
- les gadgets et ecran sont redimensionnés quand on change la taille de la fenêtre
- Undo/redo (à revoir, mais fonctionne à peu près)
- options : chargement et sauvegarde des options lors de l'ouverture du soft
- autosave : désormais, je crée un fichier de sauvegarde automatique (d'après un timer qu'on peut définir dans les options.ini)
- lang : on peut changer la langue du soft si besoin (anglais ou français pour le moment)
// Fixes
- corrections dans OpenDoc : les frames > 0 étaient mal prises en compte
- correction lors de la sauvegarde
- corrections de divers bugs (images et autre)
Voici un lien pour télécharger une première version, si vous avez envie de tester .
Attention, c'est une version bêta qui est loin d'être terminée. Il reste même certainement encore quelques bugs ^^.
A noter que l'interpolation n'est pas calculée à toutes les frames (c'est prévue pour une prochaine version) et que le système n'est pas du tout terminé (on peut juste ajouter des bones, effectuer des transformations et les parenter avec un autre bone ou un sprite, mais c'est tout ^^).
http://blendman.free.fr/dev/pb/spritean ... on0.10.zip
J'ai mis à jour le premier message, avec les nouveautés de mon soft.
0.10
// New
- Parenting : on peut parenter un sprite (ou un bone) avec un bone. Quand on effectue certaines transformations sur le bone parent (move, scale, scaleW, scaleH), c'est répercuté sur les enfants (bone ou sprite)
- sprite : désormais les sprites prennent en compte l'offset de leur image dans leur transformations. Les rotations et scale s'effectuent en fonction de ce centre par exemple (et non en w/2,h/2 et 0,0 par defaut). Attention, les sprites (et bones) ne prennent pas encore l'offset du bone parent dans leurs transformations.
- sprite : on peut animer les paramètres width et height, on peut aussi changer l'image entre différentes frames (utile pour les animation de type bouche, yeux...)
- Images : on peut modifier le centre (offset) des images, cela se répercutent sur les sprites.
- Ajout d'une Toolbar avec quelques boutons
- les gadgets et ecran sont redimensionnés quand on change la taille de la fenêtre
- Undo/redo (à revoir, mais fonctionne à peu près)
- options : chargement et sauvegarde des options lors de l'ouverture du soft
- autosave : désormais, je crée un fichier de sauvegarde automatique (d'après un timer qu'on peut définir dans les options.ini)
- lang : on peut changer la langue du soft si besoin (anglais ou français pour le moment)
// Fixes
- corrections dans OpenDoc : les frames > 0 étaient mal prises en compte
- correction lors de la sauvegarde
- corrections de divers bugs (images et autre)
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Sprite Animation : logiciel pour créer des animations
L'ouverture ou la sauvegarde d'un projet, l'extension est bien un .saf
Par contre la création d'un projet, l'extension proposée est un .png ou un .jpg
J'avoue ne pas comprendre.
Par contre la création d'un projet, l'extension proposée est un .png ou un .jpg
J'avoue ne pas comprendre.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Sprite Animation : logiciel pour créer des animations
En fait, lors de la création d'un projet, on te propose de choisir ton dossier où se trouve les images de ton animation.
C'est pour ça que tu vois les images (png, jpg) et qu'on ne propose pas un .saf comme format, car c'est juste pour sélectionner ton dossier image ^^.
EDIT :
le nom de la fenêtre quand on crée un projet c'est "select project folder", mais j'ajouterai un message qui explique ça ^^.
En fait, tu choisis le dossier où tu as mis tes images pour ton projet et ça les ouvres automatiquement ensuite.
C'est pour ça que tu vois les images (png, jpg) et qu'on ne propose pas un .saf comme format, car c'est juste pour sélectionner ton dossier image ^^.
EDIT :
le nom de la fenêtre quand on crée un projet c'est "select project folder", mais j'ajouterai un message qui explique ça ^^.
En fait, tu choisis le dossier où tu as mis tes images pour ton projet et ça les ouvres automatiquement ensuite.
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Sprite Animation : logiciel pour créer des animations
Si je ne clique pas sur une image, le dossier n'est pas sélectionné.blendman a écrit :En fait, lors de la création d'un projet, on te propose de choisir ton dossier où se trouve les images de ton animation.
je pense que l’utilisation du PathRequester() permettant de choisir un dossier est plus adéquate pour la création d'un projet.
Je continue le test.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Sprite Animation : logiciel pour créer des animations
Ah, il faudrait que je regarde si je peux changer ça. En fait, c'est comme ça que fonctionne Spriter, un soft que j'utilise et je trouvais que c'était sympa ce fonctionnement.falsam a écrit :Si je ne clique pas sur une image, le dossier n'est pas sélectionné.
C'est possible, mais je voulais qu'on puisse visualiser les images du dossier, donc pas évident ^^.je pense que l’utilisation du PathRequester() permettant de choisir un dossier est plus adéquate pour la création d'un projet.
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Sprite Animation : logiciel pour créer des animations
J'ai positionné un sprite.
Quand je suis dans le FrameGadget j'ai défini 5 frames pour le sprite.
Le bouton permettant de se positionner sur le premier frame fonctionne ainsi que celui permettant de se positionner sur le dernier.
Par contre quand je souhaite passer à l'image suivant ou précédente, l'incrément passe à 169.
Quand je suis dans le FrameGadget j'ai défini 5 frames pour le sprite.
Le bouton permettant de se positionner sur le premier frame fonctionne ainsi que celui permettant de se positionner sur le dernier.
Par contre quand je souhaite passer à l'image suivant ou précédente, l'incrément passe à 169.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Sprite Animation : logiciel pour créer des animations
Bonsoir blendman
j'ai testé ton logiciel c'est de la bombe , c'est fou que l'on peux crée avec PB
je te remercie beaucoup de ce partage
j'ai testé ton logiciel c'est de la bombe , c'est fou que l'on peux crée avec PB
je te remercie beaucoup de ce partage
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Sprite Animation : logiciel pour créer des animations
Merdum je dois être trop con pour utiliser ce logiciel !^^Bernie a écrit :j'ai testé ton logiciel c'est de la bombe
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Sprite Animation : logiciel pour créer des animations
ces deux boutons sont temporaires, je vais les virer, je les ai mis en attendant la timeline, mais ils ne marchent pas très bien.Par contre quand je souhaite passer à l'image suivant ou précédente, l'incrément passe à 169.
En fait, ils servent, (comme le décrit le tooltip des boutons) à se positionner sur la clef d'animation du sprite sélectionné (précédente ou suivante), mais lorsque j'aurai la timeline, je n'en aurai plus besoin.
Pour simplement testé :
- tu crées un projet, en choisissant un dossier avec tes images.
- tu crées un sprite (ou plusieurs)
- tu te mets en frame 0
- tu le sélectionnes, puis le bouge (touche G) ou tu fais une rotation (touche R) ou un scale (S) ou alors tu utilises les gadgets pour changer les paramètres (width, height, scale, x,y, etc...)
- tu vas en frame 50 (en tapant simplement 50 dans le gadget dont le tooltip est "frame current")
- tu bouges ton sprite ou rotation ou scale, etc...
- tu te replaces en 0 et tu fais "play"
Et tadam .
Ou alors, tu peux ouvrir les exemples que j'ai fourni avec .
BErnie : merci, c'est clair que Purebasic, ça déchire !!!
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Sprite Animation : logiciel pour créer des animations
salut
j'ai mis à jour le premier message, avec une nouvelle version (0.11).
Vous y trouverez notamment :
- une timeline fonctionnelle
- les interpolations entre les frames sont désormais opérationnelles
0.11
// New
Timeline
- on voit la currentframe ainsi que la frame de départ et de fin.
- On peut bouger la currentFrame directement sur la timeline
- on voit les clefs lorsqu'elle sont ajoutées par sprite
- on voit le canal du sprite selectionné
- on peut bouger les clefs des sprites ou bones
Interpolation
- l'interpolation est fonctionnelle entre les clefs des objets
j'ai mis à jour le premier message, avec une nouvelle version (0.11).
Vous y trouverez notamment :
- une timeline fonctionnelle
- les interpolations entre les frames sont désormais opérationnelles
0.11
// New
Timeline
- on voit la currentframe ainsi que la frame de départ et de fin.
- On peut bouger la currentFrame directement sur la timeline
- on voit les clefs lorsqu'elle sont ajoutées par sprite
- on voit le canal du sprite selectionné
- on peut bouger les clefs des sprites ou bones
Interpolation
- l'interpolation est fonctionnelle entre les clefs des objets
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Sprite Animation : logiciel pour créer des animations
Tu ne chaumes pas, bravo.
Je teste ça dés que possible.
Je teste ça dés que possible.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Sprite Animation : logiciel pour créer des animations
Ouwaaa, ca à l'air vraiment prometteur
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Sprite Animation : logiciel pour créer des animations
Merci microdevweb
Je suis en train d'ajouter un module pour créer des images vectorielles (au cas où on préfère créer nos sprites directement dans le soft) ou carrément animer des images vectorielles (façon flash ^^). Mais je n'en suis pas encore là, même si j'ai déjà des pistes .
Je suis en train d'ajouter un module pour créer des images vectorielles (au cas où on préfère créer nos sprites directement dans le soft) ou carrément animer des images vectorielles (façon flash ^^). Mais je n'en suis pas encore là, même si j'ai déjà des pistes .
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Sprite Animation : logiciel pour créer des animations
salut
J'ai continué à avancer sur mon logiciel d'animation.
Depuis quelques jours j'essaie de lui ajouter un éditeur de dessin vectoriel qu'on peut par la suite animer via les sprites (on pourra peut-être ensuite l'animer directement en vectoriel).
Pour ça, on enregistre le dessin vecto en bitmap qui est ensuite ajouté automatiquement à la bibliothèque d'image présente dans le document en cours.
Pour le moment, je termine les fonctions pour dessiner facilement (ajouter des shapes, insérer des points, ajouter des effets de style aux dessins (ombres externes ou internes, bordure, etc...).
Ajout de Fx pour les formes (on peut les modifier pour créer une ombre externe, interne, une bordure, ou autre chose) :
Un petit personnage pour tester les quelques outils :
Si certains veulent tester (attention c'est encore très wip, et c'est une version standalone, non intégrée à sprite Animation) :
http://blendman.free.fr/dev/pb/spritean ... ng0.07.zip
Limitations :
- quand on exporte l'image, ça ne prend pas encore en compte les FX
- l'offset (centre du shape) peut bouger si on déplace le shape après une rotation (je dois réécrire le système complet d'affichage car je l'ai modifié pour ajouter ce centre justement)
- plus d'autres truc que j'oublie, il doit aussi rester quelques bugs.
J'ai continué à avancer sur mon logiciel d'animation.
Depuis quelques jours j'essaie de lui ajouter un éditeur de dessin vectoriel qu'on peut par la suite animer via les sprites (on pourra peut-être ensuite l'animer directement en vectoriel).
Pour ça, on enregistre le dessin vecto en bitmap qui est ensuite ajouté automatiquement à la bibliothèque d'image présente dans le document en cours.
Pour le moment, je termine les fonctions pour dessiner facilement (ajouter des shapes, insérer des points, ajouter des effets de style aux dessins (ombres externes ou internes, bordure, etc...).
Ajout de Fx pour les formes (on peut les modifier pour créer une ombre externe, interne, une bordure, ou autre chose) :
Un petit personnage pour tester les quelques outils :
Si certains veulent tester (attention c'est encore très wip, et c'est une version standalone, non intégrée à sprite Animation) :
http://blendman.free.fr/dev/pb/spritean ... ng0.07.zip
Limitations :
- quand on exporte l'image, ça ne prend pas encore en compte les FX
- l'offset (centre du shape) peut bouger si on déplace le shape après une rotation (je dois réécrire le système complet d'affichage car je l'ai modifié pour ajouter ce centre justement)
- plus d'autres truc que j'oublie, il doit aussi rester quelques bugs.
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english