HeroEngine Forums
Welcome, Guest. Please login or Register for HeroCloud Account.

Author Topic: Different races setup without using facegen  (Read 1169 times)

keeperofstars

  • General Accounts
  • *
  • Posts: 998
    • View Profile
    • StarKeeper Online
Different races setup without using facegen
« on: Dec 14, 13, 11:51:16 PM »

So been digging through on how to do different races.

in the character Creation System CCS it has you setting the default characterSpecification

Code: [Select]
method HE_CCSUseCharacterSpecificationForVisibleCharacter( character as NodeRef of Class character_class, characterSpecification references String ) as Boolean
// Used by $CHARACTERCREATIONSYSTEM
//
//
  characterSpecification = "GameSpecificCharacterSpecificationName"
  return true
.

But what if you had multiple different Character Specifications or races to be used.

So that is mentioned in the next section
for requesting a new characterType to change the appearance to.

Code: [Select]
$CHARACTERCREATIONSYSTEM._CCSRequestSetCharacterType( "GameSpecificCharacterType", me )
But not that is changing the character type, not the specification.

So I figured I would load up HJ_ref and slug through it, even though it's a nightmare to reverse engineer.

From what I'm seeing is they all start with the HumanFemale specification and then just use morph targets, to adjust the knobs to create a different race. So basically just morphing the skeleton and model, changing the texturebanks, and calling it a new race.

Two challenges that poses for me.

1.) My game is not going to utilize facegen, it offers little game play elements and adds a bunch to character rendering, that leaves us without having morph targets to adjust to.

2.) If you are stuck with utilizing a single character spec for the system. that leaves you making empty or non-used bones just laying around for no reason, if you wanted to have say a race with a tail vs one without a tail. Or a centaur race vs human race. You see this happening in both HJRef and the default female character in Heroblade in our worlds. Seems like a waste of bone space.

So to resolve both issues, the logical thing would be to provide a way to change up the default character specification based on Race Selection, along with possibly changing the prototype used by the race as well.

Question is what is best way to handle the decision making? So the logic aspect and getting it passed into the 3 methods, needed to create a character? I know there are a billion ways, so I'm just looking for thoughts / experience with it before I go digging deep into something when there is a pretty simple aspect to it.
Logged
[img]http://screencast.com/t/x7btcSSyp3h0[\img]

Amanda_Brooks

  • General Accounts
  • *
  • Posts: 514
    • View Profile
    • Heroes and Villains
Re: Different races setup without using facegen
« Reply #1 on: Dec 15, 13, 02:03:12 PM »

If you are stuck with utilizing a single character spec for the system. that leaves you making empty or non-used bones just laying around for no reason, if you wanted to have say a race with a tail vs one without a tail. Or a centaur race vs human race. You see this happening in both HJRef and the default female character in Heroblade in our worlds. Seems like a waste of bone space.

As far as I know, bones only have a performance impact if they're in use, so having a single rig with all the extra race/creature features on it shouldn't make any difference.
Logged
"Heroes and Villains" - www.heroes-and-villains.com
Facebook: https://www.facebook.com/HeroesAndVillainsMMORPG
Twitter: @Plan_Z_Studios

keeperofstars

  • General Accounts
  • *
  • Posts: 998
    • View Profile
    • StarKeeper Online
Re: Different races setup without using facegen
« Reply #2 on: Dec 15, 13, 04:18:00 PM »

I'm going on a limb here but I'm pretty sure if the bone tracker is seeing it as part of the skeleton it's being managed by the engine to some level.
Even if skin isn't weighted to it.
Logged
[img]http://screencast.com/t/x7btcSSyp3h0[\img]

HE-BENNETT

  • HeroEngine
  • *****
  • Posts: 559
    • View Profile
Re: Different races setup without using facegen
« Reply #3 on: Dec 16, 13, 10:38:31 AM »

You are not stuck using a single character spec, you can assign it during character creation.  I've been working with some new character specs and controllers and had one of our engineers script a similar ability into one of our test worlds. I don't know the specifics, but it is a trivial issue.  I'll see what he has to say about it.

Yes, extra bones, even when not weighted, have to be handled by the engine.  However, the load is mostly negligible.  If you're talking about a few more bones, even several dozen, I wouldn't be concerned about load from the "wasted" bones. 

In any case, if you use multiple character specs, you don't have to worry about it at all.  What you do need to consider is the increased amount of work for animating, modeling, skinning, etc assets for each character.  If you haven't, consider looking into the processes for retargeting animations. That can considerably reduce animation time by allowing you to approximately transfer an animation between similar rigs.
Logged

keeperofstars

  • General Accounts
  • *
  • Posts: 998
    • View Profile
    • StarKeeper Online
Re: Different races setup without using facegen
« Reply #4 on: Dec 16, 13, 11:35:24 AM »

Thanks for the reply. I was figuring I could just override the method to pass in something else, or set the value at the character level etc. Just have to figure it out. If you guy doesn't mind sharing a snippet, I would be super thankful.

I wasn't so much worried with bone "rendering" costs as I was bone number cap. If I have a tentacle guy that pushes bone counts, but wears minimal armor, I don't want to be running close to cap when I need the bones for robes / capes on other guys.

I'll pass the suggestion on the retargeting piece to my animators. I think though for our different races to be forced to use a different character spec I'll make the animations different, named and managed the same way, but unique per race. If it's just a reskin race type I'll have them utilize the same characterSpec
Logged
[img]http://screencast.com/t/x7btcSSyp3h0[\img]