Game Development Community

Plan for Jeff Gran

by Jeff Gran · 07/17/2005 (7:28 am) · 15 comments

jboy.menlofarms.net/stuff/mayaSoldier.jpg
What you're looking at is the soldier (which uses a TorqueSkeleton) from the upcoming Soldier Pack by Ben "Djaggernaut" Chavigner (model and texture) and me (rig and animation), as exported from Maya, playing a dsq which was animated in and exported from 3DStudio Max. Exciting, isn't it? Well, it is to me at least.

I just updated the TorqueSkeleton Generator page with the latest version of the script for Maya 6.5. It now works correctly with the units set as Meters (which is what Danny Ngan suggests and is the best way to keep your scaling accurate), and works with the Z-up coordinate system that both 3DS Max and TGE use (it's an option in Maya but not the default).

There is also a newer version of the MAX script with a few bug fixes.

I now have a solid pipeline for taking Torque characters which use my skeleton system back and forth between MAX and Maya. This is cool because now the scripts are fully compatible with each other.

The process is: I get the character all set up with the skeleton in one app. I export the mesh to FBX (because FBX meshes come with the vertices ordered correctly), then import the mesh to the other. I use my skeleton script and the previously saved Marker Locations file to generate an identical skeleton in the 2nd app. I bind the skin, and use another script to import the skin weights from the first app. There is a very cool 3DS Max script out there called SkinOrDie which lets you import and export skin weighting information in a very simply structured text file. So I wrote a compatible importer/exporter for Maya. It needs a GUI and error-checking and stuff, but it works.

So now I can get the mesh and the weighting information across very easily once it is set up in one program. And the bones and rig is already there waiting for me, with the correct proportions based on the locations file. Are you excited yet?

The next step is to write an importer/exporter for animation keys based on my skeleton rig. I've already looked into it and it doesn't look like it will be too hard. The hardest part will be writing the GUI so it's all nice and user friendly.

jboy.menlofarms.net/stuff/maria_run.jpg
What you're looking at now is a character in the (as yet) secret game project I'm working on, which (...duh) uses my skeleton system. She's playing the same exact .dsq file that the soldier is playing above. Pretty cool, huh? So, say her left hand doesn't exactly line up with the gun when it's mounted in her right (it doesn't). Import the animation (into whatever app you're using) with my upcoming animation file format, and move all the keys for that IK handle down a little bit, re-export, and BAM! She's gunning folks down. Then again, say you don't care all that much that her hand isn't aligned perfectly, and you don't have a 3D application handy or don't know how to use one that well. It works pretty well anyway!

Add to all this the fact that I can write versions of all these scripts for any app with scripting abilities, and the possibilities are endless. I've already started working on a version of the skeleton script for Blender 3D, and the instant that the upcoming XSI exporter hits the market I'll be there working on a version for that.

Are you excited yet?! We can have a bank of animations that all work for all the characters that use this system, and will all be editable and tweakable in any application that the system supports. Once I get the system set up for Blender, my next plan is to do a set of animations, including but not limited to: crouching (with forward, back, and side), prone (with forward, back and side), swimming (with forward, back side, up and down), and whatever else I get requests for, and release it as an animation content pack. I may need a collaborator to help get the character's movements set up in game, but the principle is there, and the animations will be usable by anyone. If there is likewise a bank of character packs that use the system (starting with this Soldier Pack), it will be like a mix and match character buffet. "I'll take the old woman character..... and the... karate -no wait... the jujitsu animations, please." Mo-cap, anyone?

I know I'm excited. I'm all giddy inside from the thought of it.

#1
07/17/2005 (8:02 am)
Nice work Jeff, and a bright idea to boot! I'll have to follow the development, I'm interested in the Blender stuff as well. Keep up the awesome work!

B--
#2
07/17/2005 (9:01 am)
You're doing some exceptional work Jeff. For all the models I've seen over the last few years for Torque, the number of characters have been few and far between. Anything that makes their creation easier is pure gold.
#3
07/17/2005 (10:06 am)
Oooh, Blender! This is really cool. Outstanding work!
#4
07/17/2005 (12:03 pm)
You really know how to move people...err, models!

Nice job!

- Ronixus
#5
07/17/2005 (12:06 pm)
Yep, looks interesting. I've promised before to use this for my next project, but currently I'm just too tied up in biped (I have a million characters to make all sharing more or less the same animations so switching now isn't really an option).

One thing though; make sure it's a simple task to apply a whole set of animations to a new skeleton. The characters I'm working on right now all share the same animations but their skeletons are slightly different most of the time (different enough for the DSQs to cause problems unless reapplied to the new skeleton). A lot of my time is spend reapplying the animation to my new skeletons, I've written several scripts that help me make this process at more or less "the click of a button" (minus any needed adjustments of course).

My most important script runs a batch on a folder of max files with animations and puts each animation on the currently loaded skeleton while saving out each of the sequences to new max files with the same name as the source animations in a different folder. It has to be as simple as that (or at least everything have to be exposed in maxscript so I can write the batch scripts myself), I don't want to have to manually click through and load each sequence.
#6
07/17/2005 (2:12 pm)
Really exciting stuff Jeff! Just what I needed for my project to speed up development. Keep it up.

Nick
#7
07/18/2005 (3:36 am)
Thanks for the comments.

Magnus: I totally understand! I actually had my characters in bipeds before I came up with the idea for this thing, and I just went through the process of converting. I only had 4 characters and a few animations, so I didn't lose THAT much time, but I did have to re-animate everything I had done already in biped. But had to go back and optimize the characters for framerate issues, so I had to do the whole skin weights thing again anyway, so I figured I might as well support my own thing.

I'm glad to hear your opinions on how to make the workflow as smooth as possible; that was the original idea after all, to make it easy to use. Maybe when I get to the point where I have the animation transfer working I'll contact you about borrowing some of your script code? No need to reinvent the wheel, right? Of course it's up to you... I already have made use of your batch-export script.. maybe I could include that as well? I'm envisioning the finished product as a single entity that has all the tools you need to work with your characters in one handy window with rollouts and buttons and all... maybe popup windows for specific things, like the skeleton generator window would popup out of the base "character tools" window.

To everyone: I'm open to any and all ideas and feedback on this. I want to make it the One Toolset to rule them all.
#8
07/18/2005 (4:04 am)
I'm excited! I'm excited!

This, along with the canned ragdoll and direct damage animation packs, cover most of what I'd need for my planned project. AFAICS I'd just need custom animations for weapon handling.

I'm looking forward to the Blender scripts in particular - Maya and 3DSMax are out of my price range.

Jeff, I think you're causing quality indie and non commercial games to be much quicker, easier and cheaper to make. Nice one!
#9
07/18/2005 (4:48 am)
Jeff,

Looks great. If you get it working in GameSpace, that would very cool too. :)

Aaron E.
#10
07/18/2005 (6:18 am)
@Jeff: I have some 15 characters (or, well, depends how you count... most of them have a couple of variations too) using biped and over 200 sequences, so... well. Not going to happen this time =)

And of course, if there's anything I can do to help just let me know.
#11
07/19/2005 (9:11 am)
very very good
#12
07/24/2005 (5:37 pm)
Possible for for a Gamespace version?
#13
07/25/2005 (3:08 am)
Aaron and Mark - I hope so. I want it to be fully cross-platform/cross-application. Gamespace is low on the priority list for right now though, since I don't know the first thing about it, don't have access to it, and don't think it's very widely used.... That said, if you or anyone you know is interested in helping me by adapting my script for Gamespace, I'd be happy to help in whatever way I can.
#14
10/17/2005 (11:30 am)
i liked this idea the first time i saw it...

i didnt use it in the end because of the the bones rotating oddly due to the models i was rigging having a weird root pose.. the bones kept doubling back n stuff when i tried to get the skeleton to fit.. i was only really starting animation seriously then though, hence didnt know what i was doing..

its definitely a good idea.. i think true crossplatform compatible would definitely help its popularity.. indies arent know for using commercial tools (max maya etc)..

i think the main thing about this is ease of use.. if someones downloading a script for rigging they either want to save themselves time or money, or both.. and probably arent veteran commercial entities.. a visual thing to show what the markers are doing b4 u hit create skeleton would help a lot of those "how do i?" questions.. maybe a skeleton made out of balls/boxes linked to the marker dummies??

im not knocking all the great work you have done.. and i do mean great.. i just thought u might invite some constructive criticism..

keep it up.. and thx for the effort so far..
#15
10/17/2005 (1:02 pm)
TenRhook: Yes, there is a limitation in the script that it only works for characters in the standard T pose. If you try to conform it to a different pose it will be wonky (in fact I did my best to make it impossible to change the angles..). I have some ideas on how to make it work for any pose much like the CS biped does, but for now you have to use the T pose.

Thanks for your comments.