Jump to content

[Concept] Armor


Recommended Posts

DISCLAIMER: These numbers and descriptions may not fit lore or represent the final implementation. Unlike my damage type concept these have little previous basis on older concepts such as the lost Running and Gunning manual.

These are purely my initial thoughts on how armor could be implemented

 

Original concept art by @@Resuru

https://jkhub.org/images/ZcahlMF.jpg

 

Armor in terms of stats makes health 1% more effective for every point of armor.

It will only protect the body part it is attached to, a helmet only protecting the head, a breastplate only protecting the chest etc.

It also protects against certain status effects, such as making flamethrowers less likely to catch you on fire or preventing or reducing bleed duration.

 

In terms of actual damage reduced take (100 / (100+Armor)) Examples:

  • 25 armor → x0.8 incoming damage (20% reduction, +25% effective health)

  • 50 armor → x0.67 incoming damage (33.33% reduction, + 50% effective health)

  • 100 armor → x0.5 incoming damage (50% reduction, +100% effective health)

  • 1337 armor → x0.07 incoming damage (93.04% reduction, +1337% effective health)

If you take a 100 damage blaster shot to the chest where you have 100 armor you would take 100, multiply it by the blaster's damage against armor aka hitpoint modifier (110% or 1.1 is the current working number), multiply that by the limb damage modifier, then multiply that by the armor damage multiplier (100 armor = 0.5x damage)

 

((Initial Damage x Hitpoint modifier) x Limb damage modifier) x (100 / 100 + Armor Value) = Final Damage

((100 x 1.1) x 1.0) x (100 / 100 + 100) = 55 damage

 

A headshot results in a 1.8x damage multiplier (we're using a 100 armor helmet in this scenario):

((100 x 1.1) x 1.8) x (100 / 100 + 100) = 99 damage

 

Keep in mind most weaponry does not deal 100 damage in a single shot and armor may not necessarily provide 100 armor either.

 

Generic Armor types

Kelsh

  • Basic protection

  • Barely reduces movement speed

Tricopper

  • Offers moderate protection

  • Has a noticeable reduction in movement speed

Durasteel

  • High amounts of armor

  • Drastically reduces movement speed

Smoo, Exmirai, Futuza and 2 others like this
Link to comment
  • 4 weeks later...
  • 9 months later...

This system has, by and large, been implemented, but I feel it needs a few extra explanations:

 

First off, I lied, there is mesh based projectile collision in the game, and which mesh counts towards which body part is based on what the surface on the mesh is named:

Anything that starts with:

  • hips : Can be waists or legs, depending on where it hits
  • torso : Can be waists, arm, chest, head, or back, depending on where it hits
  • head : Always head
  • r_arm : arm or hand, depending on where it hits
  • l_arm : arm or hand, depending on where it hits
  • r_leg : leg or foot, depending on where it hits
  • l_leg : leg or foot, depending on where it hits
  • r_hand : hand
  • l_hand : hand

These values then translate into the following limb damage multiplier, and subtract from the following armor slots:

  • foot: 0.5 limb damage; boot slot
  • leg: 0.7 limb damage; leg slot
  • waist: 1.0 limb damage, leg slot
  • chest, back: 1.0 limb damage, torso slot
  • arm: 0.85 limb damage, shoulder slot
  • hand: 0.6 limb damage, gloves slot
  • head: 1.3 limb damage*, head slot

* most likely incorrect

 

To recap, there are the following slots:

  • Head slot: Helmets; may in the future affect the HUD
  • Neck slot: Amulets, things of that nature (might not be physically represented on the player)
  • Torso slot: Chest armor
  • Robe slot: Jedi robes that are worn over armor. They don't provide any protection at all.
  • Leg slot: Leg armor
  • Glove slot: Gloves
  • Boot slot: Boots, may in the future affect footstep sounds
  • Shoulder slot: Shoulder pads and pauldrons
  • Implant slot: Not visible, they are special implants that you may receive.

 

For developers, the .armour files have been removed and replaced entirely with new .arm files. The following benefits of this new system include:

  • Improved performance. Using a new Ghoul2 lookup table, it will copy one instance onto your player instance, instead of having 5 different instances being animated at the same time. To put it in perspective, if there are 5 players with full armor before, it would have to have 25 different Ghoul2 instances before...and all of them are gone now (they've been put onto the player)
  • Improved networking/less bugs. The armor networks through the playerState/entityState instead of being reliable commands for equipping and unequipping, reducing the network overhead and reducing the possibility for bugs to creep in. Also it extends the capability of features that we can have with armor.
  • More robust files. It uses JSON arrays instead of splitting strings by commas, for starters.

Here's a sample of a new .arm file:

 

 

{
    /////////////////////////////////////////
    //
    // Jedi Knight Galaxies - Armor File
    // Template (Stormtrooper Body Armor)
    //
    /////////////////////////////////////////

    "ref":        "sttorso",        // The reference that links this to the .itm file
    "slot":        "torso",        // Which slot this goes in
    "ehp":        50,            // Effective hit points - "Armor" in the GUI
    "movemodifier":    0.8,            // How much to modify the movement speed by

    // Visuals - all done on the client
    "visuals": {
        // To specify a skin, use a * and the skin name. Here, it uses model_default.skin.
        // modelGroup specifies which model group this armor belongs to - it won't load the same model twice.
        "model":    "models/players/stormtrooper/model.glm*default",
        "modelGroup":    "stormtrooper",

        // armorOnSurfaces tells which surfaces we should -only- show on the armor.
        "armorOnSurfaces": [
            "torso",
            "torso_body",
            "r_arm_shoulder",
            "r_arm",
            "r_arm_sleeve",
            "l_arm",
            "l_arm_shoulder",
            "l_arm_sleeve",
            "torso_augment",
            "torso_body_augment",
            "torso_waist"
        ],

        // bodyOffSurfaces says which surfaces to turn off on the player.
        "bodyOffSurfaces": [
            "torso",
            "torso_holster",
            "torso_strap",
            "torso_bandolier",
            "r_arm_shoulder",
            "r_arm",
            "r_arm_sleeve",
            "l_arm",
            "l_arm_shoulder",
            "l_arm_sleeve",
            "torso_body",
            "l_arm_a",
            "l_arm_b",
            "l_arm_c",
            "r_arm_a",
            "r_arm_b",
            "r_arm_c",
            "torso_l_shoulder",
            "torso_r_shoulder",
            "torso_vest",
            "torso_armor",
            "torso_cowelbase"
        ]
    }
}
DarthDementous and Smoo like this
Link to comment

that's really awesome Pande. I don't know how compatible it'd be with every model, but maybe try taking a page out of SWG and allow for bits of Clone armour to be worn? most preferably parts from AshuraDX's model. I think Mandalorian armour would be quite viable as well, considering how the multitude of reskins out there mean there could be a lot of variation.

Link to comment

I've still got the bounty hunter, the rest is lost. Bounty hunter needs weighting because all I had to work with at the time was converted .xsi files or something like that. He's currently set up in Blender but I don't think attached to the bones yet.

Smoo likes this
Link to comment

In Phase 3 we will be focusing more on getting proper character models for all the races and basing the armor off of it. Right now it's a bit tricky because models don't use standard proportions and things can clip into one another.

 

That being said, the basic functionality of the armor is there, and I don't think it's going to change very much between now and then. We can still make armor, but we should try and make a basic standard for proportions so things don't look awkward/funky later on.

Smoo likes this
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...