Jump to content
The Dark Mod Forums

A new idea for character sizes


Springheel

Recommended Posts

Continuing from this idea:

http://forums.thedarkmod.com/index.php?s=&am...st&p=155603

 

Hmm, it strikes me that this might also be a very easy way to add variety to large groups of AI. It would be extremely easy to have a "tall" "medium" and "short version" of just about every AI we have.

 

In fact, rather than every character needing animations exported separately, why not establish a series of default sizes for AI? We could have something like:

 

Very Tall (6' 3")

 

Tall ( 6')

 

Average (5' 9")

 

Short (5" 6")

 

Instead of having unique md5anim files for each AI, we just make one animation set for each of those heights, and then create separate AI defs that point to each one.

 

That means we could have, for example, 4 different heights of the same townsfolk model without any extra work. It might not always be appropriate for every AI (a Short elite guard would look weird, as would a Very Tall forger), but it gives a lot of extra variety (and saves a lot of exporting and nearly duplicate md5anims).

 

The only downside I can think of is that you wouldn't be able to have a 5'11" or a 6'2" character--but since character heads are all slightly different sizes, I really don't think anyone would notice that AI come in only 4 different heights.

 

Squill, any reason you can think of why that wouldn't work?

Link to comment
Share on other sites

The only downside I can think of is that you wouldn't be able to have a 5'11" or a 6'2" character--but since character heads are all slightly different sizes, I really don't think anyone would notice that AI come in only 4 different heights.

 

I don't think this is a disadvantage, because 4 different sizes still beat one size-fits-all :)

 

The only downsize I can think of would be different sitting heights, or something like when they press a button (each size would have to move the hand to the same height, or it'd look weird).

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

The only downsize I can think of would be different sitting heights,

 

That could be an issue, but since our existing AI are already different heights from each other, it would have to be dealt with regardless of which method we use.

Link to comment
Share on other sites

Pretty good idea.

 

As far as things like button push heights... Most of us grew up on Thief II, the AI would push buttons ONLY if the author made a conversation to do so. Slightly complicated so only maybe half of the FM's even go to this trouble. And even then the best you could get was a 'jab' somewhere within the proximity of a button.

 

If our AI are going to kow to press buttons before using an elevator, etc... I think a slightly mis-aligned poke is a very small concern. Maybe a larger conern is getting authors to actually put buttons at consistant heights :)

Dark is the sway that mows like a harvest

Link to comment
Share on other sites

Ok, since no one has brought up any reasons not to, I guess I'll go ahead with this and see what happens.

Link to comment
Share on other sites

Ok, since no one has brought up any reasons not to, I guess I'll go ahead with this and see what happens.

 

I don't want to sound to negative here, the idea is certainly nice.

 

But I'd still like to ask, is having different character sizes on the list of "essential for v1.0" release? This isn't a personal attack, I am just asking, because the date and the release talk get me worried that we venture off another side road which will us not get closer to v1.0.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

The animations have to be exported anyway, and this method will actually decrease the number of times it has to be done.

Link to comment
Share on other sites

The animations have to be exported anyway, and this method will actually decrease the number of times it has to be done.

 

Ah ok. Do we need new entity definitions for the new sizes or can these set with a spawnarg?

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

The animations have to be exported anyway, and this method will actually decrease the number of times it has to be done.

 

i like the idea, although i think we first need to apply the anim sets properly on the characters we want. I just have let these thoughts sink into my brain again to get me back to where i was :mellow:

 

Before last week we were looking at the thief model and you mentioned it was taller(same size as the citywatch) with the latest exported animations. So the scale option in the def file dictates the size of the character model?

 

now you're thinking about creating sets with a particular size and copy or link these to any character with the same skeleton like citywatch -> thief, builder guard, priest , beggar etc.

Link to comment
Share on other sites

Before last week we were looking at the thief model and you mentioned it was taller(same size as the citywatch) with the latest exported animations. So the scale option in the def file dictates the size of the character model?

 

Yes, basically. The scale option determines the size of the animation, and the animation dictates the size of the AI *when playing that animation*. It appears that D3 takes the animation data and applies it relative to the origin point, not relative to each individual joint. So if a neck joint is 84 units high in the exported animation file, then that's how high it will be when the animation is played, regardless of how high that joint is in the md5mesh file.

 

Animations don't *have* to be exported to suit a particular AI (as I used to believe). There's no reason why the .def files of all our AI (those using the same skeleton, anyway) couldn't point directly to a single set of md5anim files. The only consequence would be that all our AI would then be the same size.

 

What I'm proposing is a slightly more flexible version of that. Instead of making individual exports for each AI, we make 4 sets of exported animations, each at a slightly different size. We have four folders--"Very Tall", "Tall", "Average", and "Short", and each folder has a full set of exported animation files, using different scale options (eventually I'd like to do the same, separately, for the female characters, when we get that far).

 

Then, we make individual entitydefs for each AI that point to the different folders. We'd have a tdm_ai_citywatch_verytall, tdm_ai_citywatch_short, etc.

 

This way new animations only need to be exported 4 times, rather than once per character. Each character would need 2 or 3 md5mesh files, rather than just 1, but compared to the number of animation files we'd be saving, that's nothing. Additionally, the entire part of the def file that points to animations can be copied and pasted to new AI with no fuss.

 

I'll create a testcase...if it doesn't work for some reason we won't have lost anything. The only difficult part is deciding exactly what scale value results in the right size AI.

 

On that note, can you confirm that all the raw animation files in the citywatch_mb folder are the same scale? In other words, are your new maya animations the same size as the 'old' maya/motionbuilder animations?

Link to comment
Share on other sites

Yes, basically. The scale option determines the size of the animation, and the animation dictates the size of the AI *when playing that animation*. It appears that D3 takes the animation data and applies it relative to the origin point, not relative to each individual joint. So if a neck joint is 84 units high in the exported animation file, then that's how high it will be when the animation is played, regardless of how high that joint is in the md5mesh file.

 

ah ok so it doesn't matter if you scale the skeleton in maya because it will always take the size data from the md5anim. The more reason to make sure every character uses the same skeleton.

 

On that note, can you confirm that all the raw animation files in the citywatch_mb folder are the same scale? In other words, are your new maya animations the same size as the 'old' maya/motionbuilder animations?

 

I haven't seen any scale issues other then some slight different positions of the neck and head joint between the last and old maya skeleton which are in fact the same. I don't think that's going to be a problem.. at least we haven't seen any animation issues which the current citywatch skeleton.

Link to comment
Share on other sites

ah ok so it doesn't matter if you scale the skeleton in maya because it will always take the size data from the md5anim. The more reason to make sure every character uses the same skeleton.

 

Agreed. :)

Link to comment
Share on other sites

Hmmm, one potential snag I've run into is the whole 'different number of joints' thing. When the animations are exported, there are "-keep" keywords that tell the animation to keep specific joints. But these joints differ from character to character--the citywatch has 10 extra joints that the Thief does not. Currently the Thief can't share the same animations as the citywatch unless they are exported separately with a different "keep" list.

 

I'll have to look into this--I'm not entirely sure why all AI using the same skeleton don't "keep" the same joints.

Link to comment
Share on other sites

As far as I can tell, the "keep" option is only necessary when the rigging between two characters differs. However, the Thief is supposed to be using the same rig as the citywatch, isn't he? I'm not sure then why the "keep" option is needed at all. I'll try a few more expriments.

Link to comment
Share on other sites

This is turning out to be more confusing that I thought it would be.

 

The builder priest is using the new citywatch rig, correct? Yet when I try and get the priest to use the exported citywatch animations, I get an error saying that the names of the joints don't match. How is that possible?

 

Checking over the md5mesh files, it appears that the builder priest DOES have different joints from the citywatch, even though the total (67) is the same. The builder priest has a "head_end" joint, for example and the citywatch has a right and left "toe_end" joints.

 

I don't understand how the models can be using the same skeleton, but have different joints. Squill, can you shed any light on this?

Link to comment
Share on other sites

Hmmm, I tried exporting the thief model using the same "keep" options as the citywatch, and then played the citywatch animations. They worked, so I know that I successfully gave the thief the same joints, in number and name, as the citywatch. Yet when I play the animations, there are some obvious rigging problems, which suggests that the thief model is not *rigged* to the same joints the citywatch is. :huh:

 

I don't think I can proceed with this anytime soon without some assistance from an animator. I don't understand why models that are supposedly using the same skeleton and same animation rig don't have the same number of joints with the same names. I thought that's what "using the same rig" *meant*.

 

If they did have the same joints, then this method would be no problem at all. But at this point I'm not sure if the characters actually SHOULD have the same number of joints, or whether there's actually a good reason why they don't.

Link to comment
Share on other sites

Looks like this idea is not new...Ascottk suggested it a while ago, back when I really had no idea what he was talking about.

 

You might ask why we weren't using the same md5anims in the first place. As I explained in other threads, rigging is tricky & often times Doom 3 imports the md5anims with joints I did not want. Thus one AI's md5anim may not be compatible with another's md5mesh because the joint numbers or names won't match.

 

http://forums.thedarkmod.com/index.php?showtopic=5269

There was never any followup on the idea, as far as I can see.

Link to comment
Share on other sites

  • 4 weeks later...

Well, this idea isn't dead. I'm slowly converting characters to use the citywatch skeleton (as I understand the phrase, that means the same skeleton with the same joints). The builder guard and shortly, the commoner/beggar, will be using it. All three of those characters (and any future ones) could then share animations of varying size.

Link to comment
Share on other sites

Yeah, I'm actually a little suprised that one base skeleton wasn't used to begin with. But I don't know the details of who/how many people were working on this stuff all along.

 

Then there's always the 'hindsight equation' which usually bites me in the ass no matter how hard I tried to figure things out in advance.

 

I do think it would be best to use this method for all characters (where reasonable, obviously children would be an exception). And deffinately should be a V1.0 thing if it's gonna be done. Would be very messing trying to clean up after release, as seen with Thief's Den it can be hard to clean up minor stuff within the team for one small mission release. Would be really hard after public release, I can see bad lingering effects forever.

 

It's probably a monumental task to re-rig all characters to a standard skeleton but if it were to be done now would be that time.

I can import/export FBX, I know how to weight verts and all that. If we did want to go that route I'd be willing to help. I could probably rerig 2 AI per month. Not at home so I can't check how many AI we are talking about...

If so the best thing to do would be to chart one AI with skeleton showing and vert wieghts painted in roughly so the process would be easier and fairly pain free for all other AI to follow. Then minor weight adjusts could be made on a per AI basis.

Dark is the sway that mows like a harvest

Link to comment
Share on other sites

Yeah, I'm actually a little suprised that one base skeleton wasn't used to begin with. But I don't know the details of who/how many people were working on this stuff all along.

 

Yeah, I remember different people proposing it over time...myself included, but it seemed to get shot down for one technical reason or another. I just couldn't understand why if it worked for TDS, that it couldn't work for us with some tweaking.

Link to comment
Share on other sites

I don't entirely understand either, at least for characters with the same proportions. Even when characters supposedly were rigged to the citywatch skeleton (like the Thief), they still didn't have the same joints for some reason. It's possible there's still some roadblock I'll run into down the road, but the builder guard worked perfectly, and the commoner is coming along fine as well.

 

Anyway, I'll slowly convert the characters as I go. Using the Lightwave exporter it doesn't require reweighting them entirely, just modifying the weightmaps manually.

 

I've made pretty good progress with the Commoner today. I also tracked down what was causing those black "shadows" on the citywatch tunic, so I'll be able to fix those. There's really only one issue that still causes me some headaches with this rigging method, and it's more of a uv-map issue than anything else.

Link to comment
Share on other sites

Squill, what file are you using for your animation export list? I copied the one from the citywatch, but it is missing many of the animations, like walk_cautious. I think you said something about keeping a separate file and cutting and pasting?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • Ansome

      Finally got my PC back from the shop after my SSD got corrupted a week ago and damaged my motherboard. Scary stuff, but thank goodness it happened right after two months of FM development instead of wiping all my work before I could release it. New SSD, repaired Motherboard and BIOS, and we're ready to start working on my second FM with some added version control in the cloud just to be safe!
      · 1 reply
    • Petike the Taffer  »  DeTeEff

      I've updated the articles for your FMs and your author category at the wiki. Your newer nickname (DeTeEff) now comes first, and the one in parentheses is your older nickname (Fieldmedic). Just to avoid confusing people who played your FMs years ago and remember your older nickname. I've added a wiki article for your latest FM, Who Watches the Watcher?, as part of my current updating efforts. Unless I overlooked something, you have five different FMs so far.
      · 0 replies
    • Petike the Taffer

      I've finally managed to log in to The Dark Mod Wiki. I'm back in the saddle and before the holidays start in full, I'll be adding a few new FM articles and doing other updates. Written in Stone is already done.
      · 4 replies
    • nbohr1more

      TDM 15th Anniversary Contest is now active! Please declare your participation: https://forums.thedarkmod.com/index.php?/topic/22413-the-dark-mod-15th-anniversary-contest-entry-thread/
       
      · 0 replies
    • JackFarmer

      @TheUnbeholden
      You cannot receive PMs. Could you please be so kind and check your mailbox if it is full (or maybe you switched off the function)?
      · 1 reply
×
×
  • Create New...