Well…………… I had been dreading it for ever……….. but I knew it had to be done. The day that I would actually attempt to imitate one of the enemies that uses “puppet animating.” Some examples of enemies from SOTN that use this are:
- Red Slasher a.k.a. Blade
- Hammer Shaker a.k.a. Hammer
- Gurkha Master a.k.a. gurkha
- Plate Lord
- Olrox form 2
The list goes on. I have actually been working on this for almost 3 weeks now, between work, university courses, my online business, family time, working out, cooking, cleaning, studying, etc. So I haven’t had a LOT of time to dedicate to it all at once (though there were a few late nights where I was up until between 6 and 9 AM!!!!). However, I recently buckled down…..
And I managed to complete an engine that will let me quickly and EASILY code in these enemies!
Yes, you read right: I CAN NOW CODE IN ENEMIES THAT USE PUPPET ANIMATIONS, and they actually look even BETTER than they did in SOTN. This is something that I was told would be next to impossible to do in GM, and that it would actually take forever to code each enemy…… but I DID IT!!!!!!!!!
With the way I have it set up:
- I can easily glue one piece to another, by just changing 2 values per piece
- I can set one piece to move around another (like hammer/blade/gurkha’s hands do around the elbow joint) or even constantly orbit around them (like frozen half’s ice sparkle does).
- By just setting 2 offset values in a sprite, I can set up HOW I want each piece to rotate (ex. the shoulder rotates around it’s x & y center, but each hand rotates around it’s middle TOP spot instead).
- I can ensure that the feet of the enemy ALWAYS stay planted flat on a solid object when needed
- Each piece has it’s own hitbox
- I can easily mirror all the frames of animation in game without extra work, by changing just one value: image_xscale for the main piece.
In short: all I have to do for each animation is copy the original values from SOTN for each key frame (I have and view these easily via memhack), put these values in for each piece of each animation (most animations are just 6-8 key frames at most), then just find what offset each hand must be placed around it’s elbow for each key frame (easily done via the GM debugger in a minute or two) and a new animation is done! The engine handles all rotations, x and y positioning, etc. between each key frame of animation and makes it look sooooooooooooo smooth!
If I even want to go so far as make new animations, I just go into spriter, make the key frames in a few minutes for it, then duplicate the angle values, and offset for each hand in GM, and it is DONE! Some may require some fine tuning afterwards, but this is also pretty quick and very simple. If I need to correct values, I just edit them in the debugger to look right, then copy the numeric values into the code.
Right now I am working on Red Slasher (aka Blade). This is in addition to the new gfx I have ripped from the game over the last 2 months (though I haven’t updated the sprite thread yet). I may also go back later on and make some tweaks to alucard’s wolf form with my new engine. But for now, I want to practice with making these types of enemies, as well as ripping more sprites from the game. I can hopefully upload a video some time soon of this in action, as well as release another gfx file with THIS guy included as an example.
This…………… has been a good day for me. And a major accomplishment towards completing the engine!