PiccoloAnimatore v3 ( third edition ), allows you to create animations using sprites ( images ), which can then be exported either as images.png or as code to be incorporated into GameMaker 1.4 and 2.
PiccoloAnimatore v3 is an amateur ( non-professional ) project, made by a single person ( civic71 ) and for this they do not guarantee the lack of bugs 😅 .
The program is an autonomous "Single Runtime Exe" executable ( Stand Alone ) and does not require installation on the PC.
Every time you start it, the existence or not of a new version will be searched online and if so, you will immediately be informed in the Home.
To start
Let's create a character using programs like Inkscape, Inkscape , here is an example :
Now we export each of its parts ( head, body, arm, forearm, foot and sword ) in the PNG format, having a single color of transparency with recommended
measurements in pixels, of a multiple of 2 : 16x32; 32x32; 64x64, 128x128, 64x256, etc ...;
So let's start PiccoloAnimatore v3 and create a new project to import these sprites of ours.
PROJECT
When you start PiccoloAnimatore v3, you enter this project screen.
Enter a name for this project and confirm it by pressing .
Select the .zip file of the project you want to upload
Warning : a project with the same name must not already exist;
Warning : the name must not have a number greater than 8 letters.
This will be imported, and the corresponding button will be created.
Warning : if once loaded, the project is empty, it is likely that its name is wrong!
Just open the projects folder then the data.txt file and change the name to the exact one.
You can download some of my free projects from here 👉 👉 👉 👉 👉
To open the projects folder ( useful for making a backup of a project by zipping the relative folder ) :
Select and right click the project folder you want to backup.
From the drop-down menu select "send to ... compressed folder" to create a zip file.
Warning : when zipping a project, do not change its name;
Then move the .zip file where you see fit.
To set a language ( English or
Italian ) :
click the button of the relevant flag with the left mouse button or.
Keyboard
display or not the information of a selected button ;
close the program or return to the Home.
put the program in fullscreen.
In some circumstances the fullscreen mode will be disabled automatically .
go to the next section ( buttons on the top bar ).
sequentially selects the buttons on the screen.
select the previous button.
When a button is selected :
becomes green with the background :
you can use the keyboard buttons associated with it ( usually ) to activate its function ;
the keyboard buttons associated with it are shown.
The buttons can have more functions, which can be activated on the basis of the mouse button,
with which they are clicked or by pressing the keyboard buttons associated with it.
LOADING PROJECT
To upload a project :
click the button of the related project with the left mouse button, or.
At that point, the relevant dialogue will open with these buttons that can be clicked or :
loading the project ;
copy the project with a different name ;
delete the project ;
close the dialogue ;
Bar positioned at the top
When you load a project, you can see, in the bar at the top, 8 buttons for as many sections of PiccoloAnimatore v3 :
SPRITES : upload sprites ( images );
SKELETON : create the skeleton;
TEXTURE : assign the desired sprite to the bones;
SEQUNCE : create a new animation ;
ANIMATION : edit the animation;
EXPORT : export animation for GameMaker;
FOTO : screenshot of the animation in .png format;
MENU : to return to the menu principal;
You can press to move from one section to the next.
SPRITES
We then access the SPRITES section, where we are going to upload our PNG images.
Here we will find 18 boxes that report the name of the loaded sprite and its origins.
We select a box UPLOAD SPRITE, with the mouse ( or press
e ),
then click it or to open his dialogue.
This will open the dialogue of the sprite where we could :
upload an image or strip ( composed of several concatenated frames ) .png:
We recommend sprites or frames with a single color of transparency and with measures of a multiple of 2 : 64x64px, 128x128px, 64x256px, ecc... ;
Origin X:
click with the left mouse button and drag the bar
or press or ,
to change the x origin of the sprite ( point of rotation of the sprite not to be confused with that of the bone )
with a range from -720 to a maximum of 720.
Origin Y:
click with the left mouse button and drag the bar
or press or ,
to change the y origin of the sprite ( point of rotation of the sprite not to be confused with that of the bone )
with a range from -720 to a maximum of 720.
set the number of frames in a strip image;
For example this sprite_strip ( 240px width and 80px height )
is made up of 3 frames, but we will set 2 as a value because it is calculated starting from 0 :
assign a name ( not mandatory ).
save sprite changes;
( from version 3.24.03.24 ):
It allows you to set the loading of sprites with their transparencies or without (in the case .png opaque).
In the latter case the background of the sprite will still be made transparent;
Click it with the left mouse button;
or press ;
delete the sprite;
close the dialogue;
SKELETON
After importing all the necessary sprites, let's move on to the SKELETON
section, where we will create the skeleton...
At the beginning there is already a 1st green diamond-shaped bone, which is called Root.
It will be the father of all the bones present in the skeleton.
The bones created later are defined as children of the father bone that generated them.
In the previous version of PiccoloAnimatore there was a limit of creating 5 bones for father.
This new version has no child limits for each father, but keep in mind that too many bones could decrease the FPS in a game.
All bones except the Root can be stretched, rotated, moved, named, added and deleted :
To modify a bone, it must first be selected, thus becoming green in color.
click the button with the left or right mouse button.
click the button with the middle mouse button or, to view the :
dialogue with the bone selection buttons
The first ( blue color named "Father" ) is the father of the selected bone.
The others report the name of the bone and its depth.
click one to select that bone and close the dialog.
Use the mouse wheel to move them up or down;
to rotate a green bone :
click the button with the left or right mouse button.
or press or .
Also holding down their children will not rotate.
Also holding down only his children will rotate.
Also holding down the rotation will take place slowly.
and to move a green bone :
Those functions use physics and will drag the other bones of the skeleton as well and this could lead to a unsatisfactory !! result,
use them with caution.
click the buttons with the left or right mouse button,
or press , ,
o .
to stretch a green bone:
click the button with the left or right mouse button,
or press , .
It is very useful to rename a bone, with what it will represent: head, right arm, left arm, etc ....
To rename a green bone, open the name dialog:
click the button with the left mouse button, or press .
When saving, it is first checked that each bone has a different name from the other and if there are 2 bones with the same name,
it will not be possible to save. So before saving, check that there are no 2 bones with the same name.
delete or add a bone ( attention: it is not possible to add or delete a bone if you have already created a Sequence !! )
ADD ( add a new bone to a green bone [ add a son to the father ] )
click the button with the left mouse button, or press .
DELETE ( to erase a green bone )
click the button with the right mouse button, or press .
Favorite skeletons :
:
It is possible to save 3 skeletons as favorites, to be able to reuse them in new projects.
If a skeleton already has bones, just press Q + 1 o 2 o 3 to save it as a favorite.
While if there is no bone except the Root , a pop-up will appear that will show you 3 screenshots of the previously saved skeletons of bones.
Then just press Q + 1 or 2 or 3 to charge that skeleton.
when you have completed your skeleton remember to save .
Whenever you make changes this button will have a red background, to remind you to save.
clicking the button with the left mouse button, or press ;
TEXTURE
1/3 in this screen we find an additional button of the bones, useful for displaying or not the bones,
or displaying them above or below your sprite :
click the button with the left mouse button, or press .
In addition to the bone buttons ( left ), we will also have texture buttons ( right ).
To assign a sprite to the desired bones :
we select a bone ( it will turn green ).
we activate the display of the sprite, for the selected bone ( not all bones need to display a sprite ).
we set a sprite for each selected bone.
we modify the various parameters : image index, depth, rotation, size, position, color and save.
to set the depth of the sprite ( place one sprite above or below another ) :
The depth value is 1 to the total number of bones present.
Click the button with the left or right mouse button
or press or .
Only in the TEXTURE section :
click the button with the middle mouse button
or press to set the depth manually.
When saving, it is first checked that each bone has a different depth from the other and if there are 2 bones having the same depth,
it cannot be saved. So before saving, check that there are no 2 bones with the same depth.
per ruotare lo sprite :
click the button with the left or right mouse button
This will open the Sequence dialogue where we will find these buttons :
to load the sequence and access ANIMATION .
per copiare questa sequenza con un nuovo nome.
to delete this sequence.
to close the dialogue.
While the button will allow you to merge 2 sequences, but only in case the total number of their FRAMES
does not exceed 60.
ANIMATION
Here we could create animations by modifying the parameters of the skeleton and related sprites.
To start an animation :
select a frame
( rectangles present in the bar at the bottom ) by clicking on it
or press o ,
( if the button
is already selected and therefore with a green background ).
It will turn green :
Then select a bone ( it will become green ), then use the various buttons to rotate it or modify its sprite.
The edited frame will now have a red dot .
Repeat this in each desired frame .
At the end save all the changes made.
In the example below, we're going to modify the character's leg making changes only in frames number 0, 10 and 19 and then using the LERP
functions :
OTHER BUTTONS
move the animation forward or backward :
click the button with the left or right mouse button
or press o .
Also pressing animations will advance frame by frame.
Pressing you are going to select this PLAY button directly.
automatic or manual saving ( adding red dots ) :
click the key with the left or right mouse button, or press In case it is set in manual, you will have to click this button with the right mouse button so that the red dot
appears in the selected frame, which temporarily stores the changes made to the frame.
copies and pastes the data of a bone of one frame into another frame :
select a bone.
select a frame.
click the button with the left mouse button or press .
select another frame.
click the button with the right mouse button or press
copy and paste the data of one frame into another frame :
select a frame.
click the button with the left mouse button or press .
select another frame.
click the button with the right mouse button or press
add previously saved animation :
click the button with the left mouse button or press
flip the previously saved animation :
click the button with the left mouse button or press
activates the display of the LERP buttons :
click the button with the left mouse button or press
increase or decrease frames ( maximum 60 ) :
click the button with the left or right mouse button.
or press o .
go back ( maximum 5 positions ) :
when you make mistakes you can fix it by going back through this button.
However, if the errors are not resolved, it is recommended to return to the SEQUENCE section and reload the animation.
click with the left or right mouse button
or press .
FUNCTION LERP
To facilitate and speed up the animation we will use the functions of the LERP buttons, present on the right of the screen :
It is enough :
save the changes of 2 or 3 frames
set markers on those frames
select a desired lerp function by clicking the relative button with the left or right mouse button
or if this button is selected ( with a green background ), press the relevant keys on the keyboard;
Let's see every single LERP function :
allows you to set the type of lerp with 2 or 3 markers :
If there are 2 markers ,
that function will be interpolated starting from the frame having the green triangle up to the frame having the red triangle.
EXAMPLE :
whereas the value of the frame with the green marker = 100;
that the value of the frame with the red marker = 10;
that between these 2 frames there are another 8 frames, for a total of 10 frames
the frames will receive these values : 100,90,80,70,60,50,40,30,20,10;
While if the markers are 3,
the interpolation will take place starting from the frame with the green triangle, up to the frame with the blue diamond.
Then it will continue from the frame with the blue diamond marker to the frame with the red triangle marker.
EXAMPLE :
whereas the value of the 1st frame with the green marker = 100;
that the value of the last frame with the red marker = 100;
that the value of the 6th frame with the blue marker = 10;
that there are 11 frames in total;
the frames will receive these values : 100,80,60,40,20,10,20,40,60,80,100;
clockwise or counterclockwise rotation of the selected bone and its children :
click with the left or right mouse button
or press o .
press together , so as not to rotate its children on the same axis.
moves the green marker right or left among the available frames.
moves the blue marker right or left among the available frames.
moves the red marker right or left among the available frames.
Each of them will not be able to position itself in the same or next frame of another marker.
click with the left, right or middle mouse button
or press , or
EXPORT
Here we can export the sprites and the code of our animation in txt format, to be incorporated into a project created with GameMakerStudio 1.4 or 2.0.
Pressing also will advance the animations frame by frame.
Pressing will directly select this PLAY button.
Code Project.txt
The code of the exported Project.txt file will report this information
It starts with the x and y origins of the 18 sprites (regardless of their use):
1 >>>>>>>>>>>>>>>>>> INFO SPRITES <<<<<<<<<<<<<<<<<<
2 x origins of sprites n ° 18;
3 origins y of sprites n ° 18;
4 x origins of sprites n ° 17;
5 origins y of sprites n ° 17;
6 x origins of sprites n ° 16;
7 origins y of sprites n ° 16;
8 etc...
Then continue with the information on the total of Bones:
38 >>>>>>>>>>>>>>>>>> INFO BONE <<<<<<<<<<<<<<<<<<
39 Total number of bones;
Finally it will report the information of each individual Bone:
40 >>>>>>>> start_depth_2: 1; name: Arm_DX; sprite: 2 <<<<<<<<
41 visible true or false (1 or 0);
42 number of the sprite used;
43 sprite index or frame number (-1 can also be reported)
44 depth
45 position x
46 position y
47 x scale
48 y scale
49 rotation angle;
50 color coded GML
51 transparency;
52 etc...
Code Animation_name.txt
The code of the exported animation.txt file will report this information:
1 Resize: resizing (maximum 1);
2 Total number of animation frames;
Then it will report the information of each individual Frame for each Bone :
3 >>>>>>> Frame: 0; start_depth_2: 1; name: Arm_DX; sprite: 2 <<<<<<<<
4 number of the sprite used;
5 sprite index or frame number (-1 can also be reported)
6 depth
7 position x
8 position y
9 x scale
10 y scale
11 rotation angle;
12 color coded GML
13 transparency;
14 >>>>>>> Frame: 1; start_depth_2: 1; name: Arm_DX; sprite: 2 <<<<<<<<
15 etc ...
FOTO
In this section we can export our animation in .PNG format with a transparent background, of what is inside the "canvas"
( the area highlighted in the center that delimits the size of the sprite we are going to create ).
premi or to select the bone whose Normal you want to rotate.
A standard Normal image shown below is used and for this reason the result may not be satisfactory :
PA3 in Game Maker Studio
After exporting the sprites and files.txt ( of your project and its animation ), you can import them into a project for GameMakerStudio 1.4 or 2.0.
Warning : only projects made with PiccoloAnimatore v3 are compatible with the code below,
while projects made with previous versions of PiccoloAnimatore will not work.
included Files
In the " included Files " we import the 2 files.txt of the code :
PA3_project-name_Project.txt ( the project file )
PA3_project-name_Animation_name-animation.txt ( animation file).
in GameMakerStudio 1.4
in GameMakerStudio 2 [ v2022.2.0.614 ]
It will be possible to have more animations by including the related animation files.txt .
Their name is composed of :
PA3_ stands for compatible with PiccoloAnimatore version 3 .
"project-name" name of the project to which it refers;
_Project in the case of the file.txt main of the project;
or _Animation_ in the case of an animation file.txt
( in the latter case, at the end there will also be the relative name ).
Warning : sometimes it happened to me that the included files imported on GMS, were not really saved in the relative folder.
For this, once imported check if they are present on :
GameMaker \ Projects \ Name your project.gmx \ datafiles \
Sprites
Import all the sprites of the project and rename them with the same name, leaving at the end the number that identifies them.
For example like this :
in GameMakerStudio 1.4
in GameMakerStudio 2 [ v2022.2.0.614 ]
A sprite can have multiple frames
Script
Scripts for GMS 1.4 updated 11/24/2023
Scripts for GMS2 updated on 03/26/2024 ( now with variables written in small print )
Download the .zip file ( right click and save ) with the GML scripts suitable for your version of GameMaker :
Extract the files.zip;
Import the extracted scripts, into the Scripts folder of your project :
in GameMakerStudio 1.4
in GameMakerStudio 2 [ v2022.2.0.614 ]
PA3_INI_VAR :
script to initialize the necessary variables and to load the data from the file.txt of your project;
PA3_LOAD_ANIMATION :
script to load the data from the file.txt related to the animations of your project;
PA3_PLAY_ANIMATION :
script to cycle a previously loaded animation;
PA3_DRAW :
script to draw the animation;
Object
Let's now create an object with the same name as the project for example : obj_Bubu ;
in GameMakerStudio 1.4
in GameMakerStudio 2 [ v2022.2.0.614 ]
CREATE
In his CREATE event we report :
PA3_INI_VAR ( sprite name , project name ) ;
This script initializes the necessary variables and loads the data from the PA3_projectname_Project.txt file of your project;
sprite name : sprite name string without the final number ( in this example : "spr_Bubu_" );
project name : project name string in the.txt files ( in this example : "bubu" );
PA3_LOAD_ANIMATION ( n , animation name ) ;
This script loads the data from the file
PA3_project-name_Animation_animation-name.txt related to the animations of your project;
n : the progressive number of the animation ( in this example : "1" );
animation name : string of the name of the animation present in the file.txt ( in this example : "shot" );
PA3_Resize = value;
value : scaling ( max 1 );
PA3_PLAY_ANIMATION (
PA3_Animation_N ,
PA3_AnimationSpeed [ PA3_Animation_N ] ,
PA3_AheadAnimation ,
PA3_Mirror
) ;
This script cycles through an animation that has already been loaded
PA3_Animation_N = n;
n : number of the selected animation;
PA3_AnimationSpeed [ n ] = speed;
n : animation number;
speed: animation speed ( max = 1; ).
On Create for the first animation called, always set 1
so that PA3_Resize is immediately set with PA3_PLAY_ANIMATION ();
PA3_AheadAnimation = boolean;
Advance ( true ) or reverse ( false ) the animation;
PA3_DRAW ( 1 , 2 ) ;
This script will draw your project.
true or false : cycle or not the animation;
true or false : displays an animation having the modified depth
( This will result in greater use of computation ).
FAQ & Problems ???
Attention, the new variables present in the scripts dedicated to GMS2 are written in small print.
In case you have set the index of the texture to -1, but you do not see the advancement of the sprite frames,
set image_speed to a value greater than 0. In addition, the object should have a sprite with multiple frames.
In case parts of the drawing are not displayed, check in its animation that each Bone has set its own depth
different from each other and with a value from 1 to the total number of bones present .
The Resize of the sprites is reset only by calling the script PA3_PLAY_ANIMATION (....);
Warning : sometimes it happened to me that the included files imported on GMS, were not really saved in the relative folder.
For this, once imported check if they are present on :
GameMaker \ Projects \ Name your project.gmx \ datafiles \
For bug reports or other contact me on Twitter @gamequiz_tk
Updates PiccoloAnimatore v3
For now the code has been tested positively with GamemmakerStudio 1.4xx on Windows 10 and HTML5, and with GamemmakerStudio 2 on Windows 10 and OperaGX;
While it has never been tested on Android and more.
03/24/2024 updated PiccoloAnimatore_v3 ( changes compatible with the previous version )
added the [Sprite_Transp] button on IMG to load files.png with the right transparencies, or opaque ( albeit with the transparency of its Background );
Added on PHOTO the button [1 photo All] to view (then export png) with one or all the bones.
new script for GMS2 [ v2023.11.1.129 ]: only changed the names of the variables in small.
24/11/2023 updated scripts PA3_scripts_GMS_11_2023.zip
and PA3_scripts_GMS2_11_2023.zip For compatibility with GMS2 version 2023.8.2.151 :
An error occurred in the script gml_Script_PA3_INI_VAR ( line 29 or 37 )
Solved by modifying the code like this :
sprite_set_offset( PA3_LOAD_Sprite[i],PA3_origini_x[i],PA3_origini_y[i]); like this :
if sprite_exists(PA3_LOAD_Sprite[i] ){
sprite_set_offset( PA3_LOAD_Sprite[i],PA3_origini_x[i],PA3_origini_y[i]);
}
Added button for fullscreen;
Added IMPORT button;
Added PHY ... buttons;
Added MIX SEQ button;
Added BACK button;
Added Bone selection buttons menu;
Added skeleton favorites;
Added sprites loading dialog;
Added dialogs for changing colors;
Added more shader effects;
Macros are no longer used;
Improved LERP functions;
Added Duplicate a project;
It can copy, duplicate, reverse frames and bones;
Sprites can have multiple selectable frames in the animation;
You can change the depth in the animation;
Exporting images with transparent background;
Export of the whole animation in a strip.png;
Using the TAB key to select buttons;
the keys related to the selected button are displayed;
Updates PiccoloAnimatore v1
and PA1_GMS_v...
Code tested positively with GamemmakerStudio 1.4xx on Windows 10 and HTML5, not tested on Android or other.
Now the character is depicted using a single object, thus allowing multiple instances to be placed in the room [ PA1_GMS_v5 ];
Improved animation quality [ PA1_GMS_v5 ];
Reduced and improved the code (no longer used the alarm[0], no longer need PA_ADD, the script PA_PLAY_ANIMATION ();
it no longer contains the name of the animation, more ... ) [ PA1_GMS_v5 ];
The scripts and objects have been updated [ PA1_GMS_v3, PA1_GMS_v4, PA1_GMS_v5 ];
Now it is possible to mirror the animation both vertically and horizontally [ PA1_GMS_v4 ];
Speed up loading [ PA1_GMS_v3 ];
You can insert more objects that use the same sprite and folder of the included files [ PA1_GMS_v3 ];
An object can have several different sprites [ PA1_GMS_v3 ];
The sprites will no longer be loaded among the inluded files but as normal sprites and the origins will be updated [ PA1_GMS_v3 ];
In the room it is not yet possible to add more instances of the same object, but I hope to succeed in a possible new version [ PA1_GMS_v5 ].
The Mini Hero character is created using the designed by freepik but modified and animated by civic71 :
Kids vector created by Freepik
The program is provided, without any express or implied warranty.
Under no circumstances should the author be held liable for any damages resulting from the use of this software.
The program is free, no tax or cost is required and its sale is not authorized.
ALL PROJECTS
AFFILIATI :
PiccoloAnimatore 3 Projects :
Download the free projects and import them to PiccoloAnimatore 3
Scarica i progetti gratuiti ed importali su PiccoloAnimatore 3