People still using Bloodbane's slam script

NED

Well-known member
Hello,
Are there people still using Bloodbane's slam script ?

This is an incredibly good system.
But it's so time consuming. (Actually one of the numerous things that slowdown my project)

If some still use it.
How do you manage to be efficient when coding a slam with it.
We still don't have any visual support / real time preview to be effective when coding it.

When you have kind of long slam sequence and have to bind every single frame one by one with trial and error, you just bind 4 frames and already 1 hour is lost.

Any suggestion is welcome.
 
I too was wondering if there could be a more efficient way to slam.

I will be reviewing it when i incorporate slams into my DD mod.
 
TBH nedflandeurse, I think I'm the only person with scripted throws who DOESN'T use Bloodbane's system - I prefer my own. You should be able to crack open just about any module out there and get some insight.

Not sure what you mean about efficiency though. No matter what throw system you use or build, there will always be the tedium of setting up the individual throws themselves. You just aren't getting around that.

You CAN mitigate a lot (most) of it with good pre-planning. My old grapple system included a real time editor:

https://www.youtube.com/watch?v=QHOBzuCbC8w

...but my new one does not, and I probably won't ever add one. That's because if you use a single template with all poses across all models, you can easily measure the bind offsets you'll need in Photoshop. Turns out that's a lot faster in the long term than a real time editor. Let me explain how this works:

[list type=decimal]
[*]You need to decide on what reaction poses you have, and how detialed. This just comes down to how much time you want to spend vs. the quality you want to achieve.

Take for instance someone getting a German Suplex done to them. Do you want visible squashing and pain on impact like Street Fighter? Well then, you'll need a vertical head down pose, and then one or more vertical down poses buckling in pain (most games just use the middle pain sprites turned upside down for this, and it works well). Or are you OK with less nuanced animation? Most side scrolling brawlers like Streets of Rage only have a single vertical upside down frame, and they get by with that just fine.

After you decide on all the generic poses you'll use, you also need to consider if you want any specialty poses, like you see in KOF when Blue Mary applies her various Sambo holds. Here's the list of generic poses I use:
  • REACT_FALLING_UP_0 - Normal falling, just after initial lift.
  • REACT_FALLING_UP_CENTER_0 - Normal falling apex, and beginning to tilt backward.
  • REACT_FALLING_UP_LIFT_0 - Normal falling, first knocked into air.
  • REACT_FALLING_UP_TILT_0 - Normal falling, tilted backward.
  • REACT_HELD_0 - In someone's clench, used when grabbed.
  • REACT_HORIZONTAL_DOWN_0 - Lifted overhead while facing down.
  • REACT_HORIZONTAL_DOWN_PAIN_0 - Lift up, face down, in pain, as if dropped on stomach, step 1.
  • REACT_HORIZONTAL_DOWN_PAIN_1 - Lift up, face down, in pain, as if dropped on stomach, step 2.
  • REACT_HORIZONTAL_DOWN_PAIN_2 - Lift up, face down, in pain, as if dropped on stomach, step 3.
  • REACT_HORIZONTAL_UP_0 - Same as horizontal down, but face is pointing up.
  • REACT_HORIZONTAL_UP_PAIN_0 - Lift up, face up, in pain (ex. back breaker impact), step 1.
  • REACT_HORIZONTAL_UP_PAIN_1 - Lift up, face up, in pain (ex. back breaker impact), step 2.
  • REACT_HORIZONTAL_UP_PAIN_2 - Lift up, face up, in pain (ex. back breaker impact), step 3.
  • REACT_LAYING_UP_0 - Laying on ground.
  • REACT_LAYING_UP_PAIN_0 - Laying on ground, in pain (ex. hit with down attack), step 1.
  • REACT_LAYING_UP_PAIN_1 - Laying on ground, in pain (ex. hit with down attack), step 2.
  • REACT_LAYING_UP_PAIN_2 - Laying on ground, in pain (ex. hit with down attack), step 3.
  • REACT_PAIN_0 - Normal pain (head/upper body) - step 1.
  • REACT_PAIN_1 - Normal pain (head/upper body) - step 2.
  • REACT_PAIN_2 - Normal pain (head/upper body) - step 3.
  • REACT_PAIN_MID_0 - Normal pain (torso/lower body) - step 1.
  • REACT_PAIN_MID_1 - Normal pain (torso/lower body) - step 2.
  • REACT_PAIN_MID_2 - Normal pain (torso/lower body) - step 3.
  • REACT_TILT_DOWN_0 - At 45' angle, with upper body pointing down. Think last step of most long distances throws just before release.
  • REACT_TILT_FORWARD_0 - At 45' with feet pointed down, as if toppling forward. Think first step of most shoulder type throws.
  • REACT_TILT_UP_0 - At 45' angle feet down, toppling backward. Pushed off balance or being pulled into a German Suplex.
  • REACT_VERTICAL_DOWN_0 - Turned upside down. This is gonna hurt.
  • REACT_VERTICAL_DOWN_PAIN_0 - Slammed on head/upper body, step 1.
  • REACT_VERTICAL_DOWN_PAIN_1 - Slammed on head/upper body, step 2.
  • REACT_VERTICAL_DOWN_PAIN_2 - Slammed on head/upper body, step 3.
  • REACT_VERTICAL_UP_0 - Lifted by neck or popped straight into air by a powerful uppercut.

These are great for me, but again, this is just a matter of deciding what is best for your project and effort balance.


[*]Once you decide on the reaction poses you'll need, build a template that includes all them, using a standard offset. The template should be a mid sized character compared to the others in your project. For me, good ole' Ryu works perfectly. Alignment of each pose compared to the others is important here. For "standing" reaction poses, I line up the sprites normally. For "lifted" and falling poses, I place the sprite's center line (usually the belt area) on its offset. There are advantages and disadvantages depending on how you choose to align the sprite vs. offset - the important part is whatever alignment you choose, you do it consistently.

index.php


[*]When done, save these poses as sprites using your chosen fighter's base palette - the same as you would any other sprites. I highly recommend you apply a standard naming convention to reaction sprites for every model, and use one that will keep the reaction sprites grouped together when mixed with other sprites. Once this step is complete, your character has all the sprites he needs to get thrown!
[*]When it comes time to make pose sprites for the next character, now you can use the template. Utilizing layers, your template's character acts as a guide to line up the poses for the new character (see screenshots), and then you save them as sprites too. Because you've already done all the hard work up front building a template out of one character, all the other characters are a breeze!

index.php


[*]One last touch - add another layer to your reaction poses, and in that layer, mark the offset location. Now you are ready to build a throw!
[*]Head over to the working file for your throwing character. If you haven't already, make a layer that marks its offset too. When you want to build a throw, all you have to do is copy the offset layer and pose layer from your reaction template. Again using layers, overlay it with the throwing pose (see screenshot). Now you know exactly what offset you need for binding. Again, since you've already done the hard part up front, this step is very quick. In the SS example, when I place the reaction pose where I think it looks good, I can see it's 11 pixels behind and 7 pixels above the throwing character, and I also know which direction to bind in.

index.php


[/list]

Once the last step is complete, you can perform this throw on any character with the standard reaction poses, and it will look the same. There's no need to go back and forth loading and unloading the game to test. Building that template is the key - do it right once, and everything else will more or less take care of itself.  :)

index.php


DC

 

Attachments

  • grapple_ex_all_poses.PNG
    grapple_ex_all_poses.PNG
    202 KB · Views: 172
  • grapple_ex_overlay_template_new.PNG
    grapple_ex_overlay_template_new.PNG
    169.1 KB · Views: 165
  • grapple_ex_overlay_make_throw.png
    grapple_ex_overlay_make_throw.png
    132.6 KB · Views: 164
  • bor - 0030.png
    bor - 0030.png
    82 KB · Views: 162
Hi nedflandeurse! I use a modified version of Bloodbane's system adapted to my game but agree with DC and will always be the tedium of setting up the individual throws themselves, no matter the method you use. His tutorial is excelent and the only thing that I will add to this is a little tool that help me a lot to configure any throw/slam.
I made a script that activate/deactivate slowmotion using "esc" button. I can see all frames too much better and configure my throw/slams more quickly with this.

Code:
void debugMode()
{//Turn debug mode on/off for test purposes (PLAYER 1 ONLY)
	
	if(playerkeys(0, 1, "esc")){ //ESC KEY IS PRESSED?
		if(openborvariant("in_level")){ //IN ANY LEVEL?
			if(openborvariant("pause") == 0 && openborvariant("in_options") != 1){ //NOT PAUSED AND NOT IN OPTIONS?
				if(getglobalvar("debugMode") == 0){ //IS DEBUG MODE TURNED OFF??
					changeopenborvariant("slowmotion", 1); //ACTIVATE SLOW MOTION
					playsample(openborconstant("SAMPLE_BEEP"), 0, 120, 120, 100, 0); //PLAY SAMPLE
					setglobalvar("debugMode", 1); //ACTIVATE DEBUG MODE
				}else if(getglobalvar("debugMode") == 1){ //IS IN DEBUG ACTIVATED??
					changeopenborvariant("slowmotion", 0); //DEACTIVATE SLOW MOTION
					playsample(openborconstant("SAMPLE_BEEP"), 0, 120, 120, 100, 0); //PLAY SAMPLE
					setglobalvar("debugMode", 0); //DEACTIVATE DEBUG MODE
				}
			}
		}
	}
}
I use globalvar because other scripts need this in updated.c to show some info in the screen like "xpos" and "count_enemies", but you can modify it your way. You can adjust "slowmotion" to a higher value and the effect will be more slow, if you want. And I use this script in "KEY1.C" file
 
Kratus  nice and handy script!

But it's so time consuming. (Actually one of the numerous things that slowdown my project)
It's not time consuming at all, if you do it right. If you use it wrong, it will slow things a lot.

We still don't have any visual support / real time preview to be effective when coding it.
yes, you have. You can either use Photoshop to get the axis or even OpenBORStats. Just use the OVERLAY function and it will do the job.

About the system, I have a heavily customized system which was based on Bloodbane's method.

I need to find free time (which I is very rare to me) to explain my custom method of working with this - I've customed Bloodbane slamscript to a degree where I can do pretty much whatever I want with the target, and I do 90% of the throws using only ONE animation. I have a second one for those 10%. And a third just for cosmetic propouses.

You don't need to create tons of fall animations for that. This made sense before the scripts. But if you use scripts and still have many animations for the throws, you are doing it wrong. And this is a common mistake.

Basically, my method recreates how throws works in Mugen. If you have my game, check animations FALL7 and FALL9 and you see what I am talk about.
 
nedflandeurse I've started to write a tutorial to explain my method
http://www.chronocrash.com/forum/index.php?topic=4621.0

For now, it covers only the images part. I will complete it once I can.
 
nedflandeurse said:
But it's so time consuming. (Actually one of the numerous things that slowdown my project)

If some still use it.
How do you manage to be efficient when coding a slam with it.
We still don't have any visual support / real time preview to be effective when coding it.

I'm surprised that coding slam could take so long. They only time coding took so darn long was when I used pseudo slam script way before bind function was coded in

Anyways, just like Ilu suggested, I use Photoshop as visual reference to create slams/throws. I have layers for the slammer and the grabbed opponent. The slammer has visual offset which I use as offset reference for measuring binding distance. Grabbed opponent has offset point in each pose
With these, I can position both to create the slam/throw frames. When one frame is decided, I measure the binding distance with selection tool then set it into position function

It is easy and doesn't take long  ;D
 
Thanks for the help, guys.

Damon Caskey , basically I used to use similar method but I redo it from scratch every time I need to code a new throw.
I should organise some template files in Photoshop just like you do, and always use this base.
Thanks for sharing the method.

Also I remember you custom throw system and realtime display ingame.
For now, I'll stick to Bloodbane's method. I'm bad to remember stuff, so if I start learning a full new way to do it, I will be lost.

Kratus Thanks for this script.
I used to activate it with normal cmd but it's bad method.
Yours seems very good. NOW, I have to remember how to add a script without crashing the game... I completly forgot. (I know it have to be declared in header...)

O Ilusionista Thanks for your help.
I'll give it a look. I can't wait for the next steps.

Actually, the problem with my throws is that some animations are pretty long (it's some kind of chain throw using 1 anim only)
I started coding it 2 years ago ans it makes me lose interest for coding because I cannot find any way to code this move.
I simplified it a lot, now some custom sprites are not used anymore (I hate this  :P) But It's possible to code it now. I restarted it again from scratch.
I coded 6 frames with binding. But it was too long with trial and error, so I stoped until next time.
With your help guys, it could be faster now. I will try, after I try to understand all these english language advices.  ::)
 
the problem with my throws is that some animations are pretty long (it's some kind of chain throw using 1 anim only)
But this is exactly what I do in Hercules and he is full of chain throws - even his hyper move is a big chain throw (see near of the end of the video)
https://www.youtube.com/watch?v=LmOrbPZYTFM

On those throws, every time he change from one move to another, I have to input a different command and the enemy is still on a scripted grab. This is why the damage is only applied in the end.

NOW, I have to remember how to add a script without crashing the game
Remember that when you reffer a script, you need to use a function from it or it will give an error.
 
O Ilusionista said:

Same here. The long grapple at the end is a series of cancels the player has to do in succession, and it actually goes  longer than that (I missed an input while recording that demo). And as you can see, counter throws too.

https://www.youtube.com/watch?v=lNcoVQhhITI

You can do terrain throws too. You can see one at 0:20 when Ax slams Longmoan into the trees before giving him an Atomic Drop. Nothing at all complex going on here. When you start certain throws near a wall, they just switch to an alternate animation. That's totally separate from the grapple system itself.

https://www.youtube.com/watch?v=XWtCEdRZnJI

magggas Also has chain throws in his World Heroes module. nedflandeurse adding long sequences, chains, counters, and alternates doesn't change anything - they all work the same way. Again, pre-plan, organize and standardize from the very beginning, and the throw making process won't be painful at all.

DC
 
Thanks again.
I will follow your advice, buddies.

since my project is heavilly about slams/throws.
I have to master a way to code it in an organised way.
 
nedflandeurse said:
since my project is heavilly about slams/throws.
I have to master a way to code it in an organised way.
Ah, you can be sure of that! Or it will grow too big and crazy to maintain.
 
Damon Caskey said:
O Ilusionista said:

Same here. The long grapple at the end is a series of cancels the player has to do in succession, and it actually goes  longer than that (I missed an input while recording that demo). And as you can see, counter throws too.

https://www.youtube.com/watch?v=lNcoVQhhITI

You can do terrain throws too. You can see one at 0:20 when Ax slams Longmoan into the trees before giving him an Atomic Drop. Nothing at all complex going on here. When you start certain throws near a wall, they just switch to an alternate animation. That's totally separate from the grapple system itself.

https://www.youtube.com/watch?v=XWtCEdRZnJI

magggas Also has chain throws in his World Heroes module. nedflandeurse adding long sequences, chains, counters, and alternates doesn't change anything - they all work the same way. Again, pre-plan, organize and standardize from the very beginning, and the throw making process won't be painful at all.

DC

Man I hope this game is complete one day. That's some impressive gameplay mechanics.
 
Back
Top Bottom