Bloody Mess : Positional Data and Dismemberment [Beta Released]

Hey guys and gals,
We at Heavy Diesel Softworks are pleased to announce the Beta release of Bloody Mess!

<>

Coming in Version 0.3
New CharacterSetup.cs that allows for Mesh Renderers
Bug fixes

Demos
Big Beta Web Demo

Tutorials
Bloody Mess Initial Setup
Basic Character Setup
Advanced Character Setup (Dismemberment)
Scripts Overview
Damage Events Tutorial
Healing Events Overview
RFPS Integration
UFPS Integration
Easy Weapons Setup

Shooter AI Integration
Easy Save 2 Integration (Saving and Loading)
Non-Humanoid Character Overview

Upcoming Features

VPADS Sneak Peak

3rd Party System Integration
Easy Weapons
RFPS
Shooter AI
UFPS
Easy Save 2
Pool Boss (coming soon)

Fun Stuff
Having some easy fun with Easy Weapons!

What is Bloody Mess: Positional Data and Dismemberment?
Bloody Mess is a position damage (think headshot, armshot, etc), event, and character dismemberment system that is designed to replace your enemy or player damage handler with a highly extendable, robust and realistic one.

Why Bloody Mess?
In addition to being an advanced positional damage handler Bloody Mess also comes with an integrated event and performance friendly dismemberment system. All three of these things work together to give you a powerful, and fully extendable, way to carry out whatever action you want on whatever body part you want. Including integration into 3rd party assets to increase their uses! The Full Release version of Bloody Mess (which beta buyers get to upgrade to for free) will include some advanced game frameworks to integrate immediately into your project. One of these frameworks will be a Turned Based or Action Point Based system that will function similar to VATS in the fallout game series.

The Positional Damage System gives separate heath to different body parts with their own damage modifiers that effect the total health of the enemy or player. No longer will foot shots cause as much damage as head shots!!! When a body part’s heath runs out it can be automatically dismembered and then effected by your owns scripts via the Event System. Since all damage calculation is done by Bloody Mess all you have to make a small (generally cut and paste) edit to your gun or melee script and you are ready to go.

The Damage Event System allows you to call functions and pass positional data from Bloody Mess into your own scripts. This will allow you to do things like update Achievements, use custom or 3rd party effects on hit limbs or dismembered limbs, send data to the animator for advanced animation states, add positional forces to hit limbs or dismembered limbs, and much more! Right now Bloody Mess allows you to call four functions in your own scripts:

OnLimbDeath(int limbID, GameObject spawnedLimb) : This is for applying effects or otherwise modifying spawned dismembered limbs.

OnLimbHit(int limbID) : This is for applying effects or other modifications to body part positions based on a raycast hit by whatever gun asset or raycaster you are using.

OnDeath(Transform ragdoll) : This is for applying effects or other modifications to the ragdoll upon character death.

Examples of things you can use the system for are setting up a hit based achievement system, headshot combo system, using ik and collision data to make an enemy react appropriately to where they are shot, exploding an enemies head after removing all its health, exploding a character after it hits a land mine, allowing enemies to change animation states based on positional hit data (zombies lose legs and crawl, headshots stun, etc) and whatever else you can think of.

The Healing Event System is designed to let you link any type of healing mechanism into Bloody Mess. This includes things like heal guns, health pickups, GUI Inventory Healing and more. Furthermore you will be able to heal Total Health, All Limbs, or Individuals Limbs separately. This makes Bloody Mess a one stop shop for both enemy and player character damage handeling/healing.

The Dismemberment System comes in two varieties, full body or head only. Furthermore you can turn off dismemberment entirely and just use the positional damage and event systems. While in use the dismemberment system will hide portions of the body (and any related triggers) and spawn a clone in the exact same place as the original. This effect fools the player into thinking they have actually cut or shot off a limb and, combined with the event system and 3rd party effects, can have dramatic results (exploding limbs with Exploder anyone?)

For examples of all of these systems see the below video!

The below video shows the beta Web Demo.

Don’t have a cut up mesh for dismemberment? Do it yourself using your favorite Unity Asset store models and a little 3d modeling work!

Bloody Mess is currently in Beta.

Current Beta Features (price: $15):

  1. positional damage (and damage modifiers) for individual body parts
  2. body part dismemberment based on a pre cut mesh system
  3. ragdolls that retain the body dismemberment settings of their parents
  4. Mecanim ready demo character designed specifically for dismemberment in our system
  5. Clear instructions on how to integrate into RFPS (UFPS and Easy Weapons coming soon)
  6. Clean and clear documentation
  7. Use with event system to trigger 3rd party effects
  8. Free upgrade to full release version.

Full Release Features (price: $30)

  1. All features from beta
  2. High quality, Mecanim ready, zombie character designed for excellent dismemberment
  3. Full tutorial series on how to set up custom character models with the Bloody Mess system
  4. High quality blood FX and Sound FX for included zombie character
  5. Example mecanim graph for having zombies go from walking to crawling with leg removal
  6. Walk, crawl and attack animations for the zombie
  7. Blood FX that spawn at the point of dismemberment
  8. Examples of how to use with the event system to integrate other fracturing or disfigurement assets
  9. Turn Based Damage Framework (think VATS from the fallout series)

Future Plans

  1. Instructions on the integration into more shooting systems
  2. high precision melee dismemberment
  3. PBR Next Gen Male and Female zombies
  4. attack both arms, attack missing arm, attack missing both arms animations and example mecanim graph for implementing them
  5. blood splatters for walls and ground
  6. more gameplay frameworks

Bloody Mess is written in, clear, c# code which should be dead simple to modify or extend. Out of the box Bloody Mess will support head, right hand, left hand, right leg, left leg, right forearm, left forearm, right upper arm, left upper arm, upper body, lower body, critical, extra 1, extra 2, extra 3 and extra 4 damage zones (total of 17).

Boody Mess: Positional Data and Dismemberment System is a product of Heavy Diesel Softworks, LLC.

Quick tut on how to integrate Bloody Mess with shooting assets:
(this is a generic solution and may not work out of the box, see specific tutorials for better instructions)
Go to the assets weapon script and add this variable to the scripts variables.

public int weaponType = 0;

weaponType is how you tell the Bloody Mess system wether or not a weapon is able to dismember (In case you don’t want certain weapons to dismember). Even if you are not using dismemberment you still need to pass the weaponType so still add it (you can keep it at 0 in that case).

Next you need to find where the asset sends damage and add.

//call the ApplyDamage() function on the enenmy CharacterSetup script
                if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Limb")){
                    Vector3 direction = hit.collider.transform.position - transform.position;

                    if(hit.collider.gameObject.GetComponent<Limb>()){
                        GameObject parent = hit.collider.gameObject.GetComponent<Limb>().parent;
                        CharacterSetup character = parent.GetComponent<CharacterSetup>();
                        character.ApplyDamage(damage, hit.collider.gameObject, weaponType, direction, camera.main.transform.position);
                    }
                  
                  
                }

If your asset calculates its own attack direction then remove the Vector3 direction = hit.collider.transform.position - transform.position; line.

Now change the character.ApplyDamage(); call to this.

character.ApplyDamage(“Weapon Damage Float”, hit.collider.gameObject, weaponType, “Asset Direction Calculation”, Camera.main.transform.position);

After that make sure that Limb is added to any hit layer mask and enemy isnt.

Just want to let yall know that i should have the easy weapons and Shooter AI tutorials up on Friday. After that I will be doing UFPS (trying to get it working with networking) and one of the pooling assets (which one should I do a tutorial of?).

Congratulations! Just bought it.

If you have Dark Tonic’s Pool Boss (or Core GameKit, which includes it), that’s a pooling solution that a lot of people have.

Seems like a lot of fun

Just bought the asset looking forward to use it :slight_smile: great stuff

ha i say UFPS :o)

Today I was about to start prototyping just this sort of system and this being released today just seemed like serendipity so I bought it immediately, already saved me at least one day’s work.

Pool Boss it is then. I am going to try and have at least one new tutorial out a week (most times more) until I can cover as many of the popular assets I can (or that I can afford lol).

Other coming tutorials (not in any order):
Biped
Dialogue System
Easy Save
Exploder
Fracturing and Destruction
TPSA
Third Person Controller
Advanced Event system Tutorial
Healing Ray and Healing grenade tutorial
other ones people ask for

BTW, I saw the finished mesh of our zombie model and it is looking great! We have a couple neat things planned for it like:

Examples on how to shoot off and set up non bone body sections (like blowing off a torso chunk).
Examples of changing animation states based on missing limbs.
Example of how to use animation on a dismembered limb.

2 Likes

Also here is a general tutorial on how to get shooting assets working with Bloody Mess. I will cover as many as I can with video tutorials but it will take me a while because I cannot afford them all right now.

Anyways here goes the tut.

Go to the assets weapon script and add this variable to the scripts variables.

public int weaponType = 0;

weaponType is how you tell the Bloody Mess system wether or not a weapon is able to dismember (In case you don’t want certain weapons to dismember). Even if you are not using dismemberment you still need to pass the weaponType so still add it (you can keep it at 0 in that case).

Next you need to find where the asset sends damage and add.

//call the ApplyDamage() function on the enenmy CharacterSetup script
                if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Limb")){
                    Vector3 direction = hit.collider.transform.position - transform.position;

                    if(hit.collider.gameObject.GetComponent<Limb>()){
                        GameObject parent = hit.collider.gameObject.GetComponent<Limb>().parent;
                        CharacterSetup character = parent.GetComponent<CharacterSetup>();
                        character.ApplyDamage(damage, hit.collider.gameObject, weaponType, direction, camera.main.transform.position);
                    }
                 
                 
                }

If your asset calculates its own attack direction then remove the Vector3 direction = hit.collider.transform.position - transform.position; line.

Now change the character.ApplyDamage(); call to this.

character.ApplyDamage(“Weapon Damage Float”, hit.collider.gameObject, weaponType, “Asset Direction Calculation”, Camera.main.transform.position);

After that make sure that Limb is added to any hit layer mask and enemy isnt.

This is getting added to the documentation for the first update as well.

Just a quick announcement, Bloody Mess support is coming to Easy Weapons natively in the near future (which means no coding on your part!). Some of you may know that Easy Weapons is already integrated with Shooter AI which, coincidentally, I have a tutorial coming for tomorrow.

That means all three assets (Easy Weapons, Shooter AI and Bloody Mess) will work together to give you FPS Shooting, great AI and positional damage and dismemberment). Which to me seems like a great start to any FPS project!

If you don’t have either of these wonderful assets get them here, I fully endorse both!

Easy Weapons
Shooter AI

Just so yall know ragdolls/limbs are not destroying themselves in the current build. The next update contain the fix but if you need it right now here is how to quick fix it.

In RagdollLogic.cs

under void Start() the first 6 lines should look like this

void Start() {
    if(parent.rightLegOff || parent.leftLegOff) legOff = true;
    if(!usePooling) {
        if(parent.destroyRagdolls) {
             StartCoroutine(DestroyRagdolls());
        }
        if (!isSoloMesh)

so you are adding the if (parent.destroyRagdolls) { StartCoroutine(DestroyRagdolls()); }

Fun with easy weapons!

Just a heads up, the shooter ai tutorial should be up tomorrow. I ran into some technical difficulties today. Also since bloody mess is getting native integration into easy weapons I will wait to put out that tutorial until easy weapons gets that update.

great :o)

Here is the tutorial for shooter ai.

I’m in talks with the shooter ai devs to fix a couple of the bugs and small issues found in the tutorial. It integrates 100% though so the stuff that would change would mostly be bug fixes. I plan to do an updated tutorial in the future to cover any changes as well.

Also, I am pleased to announce that very soon shooter AI’s soldier and zombie characters will come in split up versions so you can use them with dismemberment straight out of the box with Bloody Mess!

1 Like

woot woot :smile:

I just submitted the first update.

Change Log:
Added: Blood Fx
Updated: Documentation updates
Fixed: Ragdolls not self Destroying when asked to

I should have the UFPS tutorial up on Friday or Saturday along with a non-human character setup tutorial.

1 Like

Just a heads up, Bloody Mess is getting some native love with the next major release of Shooter AI! We are working together to make sure set up between the two is seamless and fast!

Furthermore, the Bloody Mess native integration with Easy Weapons is LIVE! I will have a short tutorial tomorrow to give yall the 1 minute setup guide!

Also, a bit a news I am glad to share, I am currently working on a way to automate this process of setting up characters. This is likely something that would be released AFTER the full release of bloody mess as I am not sure how long it will take me and I am going to do VPADS first.

Also, tomorrow is UFPS tutorial Friday!!!

1 Like

Support for third person controller would be awesome!

I will contact the author and get the process started!