Hi,
I’m trying to animate different part of a human body in the same time.
I mean, play a “run” animation on the legs of the body, while the upper part and arms are firing a gun. the torso, of course could be pointed to a different axis that the legs while aiming…
I’ve managed to use the keyframecontroller to play different animation on my character, but I’m feeling like I’m doing it the wrong way…
Instead of playing an entire animation on the all thing, I should be able to play an animation on the upper part, and an other one on the legs.
I’m thinking about spliting my model into MD3 parts that each can be animated.
Is it a good idea ?
Does it exist a MD3 manager in Jme to assembly model part ?
Or can I simply manage the three part of my model (head, torso, legs)
with X, Y, Z coordonnates that put together the parts on the display ??
I’m waiting for your precious answers…
"I’m thinking about spliting my model into MD3 parts that each can be animated. "
please…don’t.
is way too ugly…id used a melting by code…but…the artist loose control there…
use x.Please. Access bones by code…(called “FRAME” in the ascii file.) For that would be nice if you counted with th ms sdk dx8, or so… If dx9 version can load dx8 -which I am not sure- that’d be way better, as is way more powerful format. But the key here is keep compatible with existing art tools…as is the main advantage, like being a very powerfulk format.
I can perfectly understand your artist point of view, snaga.
But for now I’m trying to use the tools that Jme offers.
Is it a way, as we are speaking, to do what you say with Jme ?
I mean :
- Create a model with 3DS max, for example,
- Animate model with bones
- Export to X format,
- Convert X to Jme with bone keeping
- Animate directly bones from Jme ?
If one of those steps is not possible, I must find another method to do the job…(sorry for the artist etiquette)
By the way, having myself an more “artistic” view, I 'd prefer doing it your way…
If it’s possible, could you explain to me how you do it ?
Thanks !
There is no manager to assymble the body parts. I was thinking about adding something when time permits. You can do it yourself though pretty easy. Just use a KeyframeController for the arms… and another for the legs… ect ect and move them all around with a SpatialTransformer. But yea, MD3 is in but I don’t have any support for multiple MD3s just yet for what you ask.
No problem,
As you say, it shouldn’t be difficult to do it
But I remember seeing a post on a first person shooter with a concept of linking the weapon to the camera…
Could it be possible to apply the same schema, for the model parts linked together ? (in order to manage only one spacial…)
Anyway, thanks, I’m going to try the three body parts with three keyframecontroller and move them together with SpacialTransform
I’ll post feedback…
I see…
You all must know I am only an artist, and I often don’t know what my ideas would mean in code…so , often I say things that aren’t clver to implement in code.
hehe, md3…is like going to the past…was a nice moment for fps.
there were TAG editors.I think.
A tag is a polygon that you make actually in MAX. you for example attach(or weld?) a tag at the base of the head. and that would serve for making the substitute of a joint. I don’t remember…I think you then have to set some special attributes in max to that polygon to be recognized later…and write an ascii file with tags info…
I never edited md3 files. Was to complex fo rthe artist, and I didn’t like to model my humans chunked in pieces…too ugly.
Nope. You don’t need to convert to x. Indeed, is not the way.Also, the only reason to use x is for compatibility and for it has bones AND weights (as HL1 smd file had bones, but no weights, ugly , too.It hadnt as for then was to computer performance expensive, but was from the old times :bones are …OLD. )
I’ll point you then to a very good, maybe the best, md3 export plugin for max AND gmax Works perfect, I have tested it. max version at job, gmax at home. In gmax is a bit slower importing md2 and md3 files , making the import of a file of 200 keyframes almost impossible in gmax, while possible and non hanging in max. but you doubtfully will use that much high number as you probably will separate per actions (and keyframes<>frames )
both plugins are here…GRAB THEM!
http://mojo.gmaxsupport.com/
is just direct export from max, that’s all.
I’d never do a chunk pieces md3, for artist paranoias, though
Anyway, quake 3 engine did a nice job in welding by code the chunks.
And what you want, today, is done in modern engines with the use of bones, weights, even applying ragdoll physics to the bones. Quite cool stuff.
good luck!
I agree this is not the best way to do it, but for the moment,
It’s the only one (I think).
I don’t want to put pressure on jME developpers to implement different animations mixing together on bones, as they have already a
hard time…
I’ll seek improvements of the engine, but if I can reproduce some feature of quake3 engine, just with my MD3 assembly, I 'll more than happy
I believe what your seeking will be imposed on us when we will be implementing ragdoll. Whereby when a bones moves the mesh has to follow suit.
But I dont think that is going to happen soon as the physics has to be started before complex things such as rag doll are to be implemented.
My 2 pence, DP
Well, I disagree slightly simply because what nicesun wants is basically a fully functioning MD3 loader. i.e. one that loads the three parts of the MD3 mesh, head, torso and legs. Then he can select animations seperately for those three sections.
Rag Doll (actually IK) are great for dynamically generated “animations”. No artist is required to build the animations before using them. But this is limited in that doing things like firing a rifle using IK is tricky business, but making the model put it’s foot at a specific spot work very well.
There is a whole IK section in the Eberly book… I just skipped over it because it was hard.
don’t forget th emany other advantages of bones in comparison with vertex animation…(indeed, game engines don’t add it initially for ragdolls)
With bones and weights, is a matter of storing just the changes in rotation/location of only the joints. Not store a ful model mesh (today is not like before. we’re speaking in the low end about 1500 tris, and 3000 in the today engines (fps games).Well, “today” games like doom3 have 4.500, 5000 tris, and loaded a tga of the normal maps of a “baked” several millions tris model. ) per keyframe.
Now, try to think on storing a mesh even of 2k (quite a standard even in low performance engines with today PCs) per every keyframe.Yep you can minimize the load, but only loosing a lot of keyframes, leaving a lot to interpolation which leads to: bad result, and usually few animations , with few complexity each.
of course, I’d say for…a RTS game with loads of units(200-500tris each) and long distance camera (an md2 has certain problems with the quality it shows) then it’d be ideal, or even md3.(for some reason, in the engines I have seen, md3 eats more performance than md2)
Other advantages are collision per bone (I’m told is much faster than per poly)
handle the bones -in the way that nicesun wants to do with chunks of vertices- by code so to reuse animated parts and mix them…
But preserving bones and weights, so it will be see nicer as the artist here is taking control on how joints deformation happen. Not a coding algorythm.
Ok, I don’t want to sound as an scratched disk. I know I give it a lot of importance.
mojo, have you looked at Agency9? If you haven’t il tell you what happens.
Basically, they control bones rather than the mesh, and the mesh relies on the position of the bones.
They have this demo whereby you can move the upperbody to any rotation you like, because it has an IK chain attached to the mesh. If we can implement this, it would be even more powerful than MD3 in my opinion.
Just out of interest, how many chapters has jME implemented from elberly’s book? percentage wise…
DP
Right, DP, and that’s not a traditional animation structure with predefined animations (run, jump, shoot), that’s an IK system. There is a difference. Nicesun needs a traditional animation structure with connected meshes, so he can animated the torso shooting and the legs running.
oh right, fair enough…learning something new everday…
Actually thinking about it, i need that in my game too, connected meshes. I want the dude to run and do stuff with his torso at the same time…
I tackeled the problem with having two seperate meshes, completely seperate, but they originate from one mesh. I animate this one mesh and cut it into two in a place where the torso does’t affect the legs ( near the waist somewhere ) and export them as seperate .jme files. Thats how I done it in 3ds, but another solution is more than welcome as this seems to me more like a way around rather than a solution.
DP
"Actually thinking about it, i need that in my game too, connected meshes. I want the dude to run and do stuff with his torso at the same time… "
i have seen it done many times by code.
I animated the torso, indeed I made the traditional thing, exported in bones format. the coder then could just “call” each bone.
Don’t know how, I am not a coder…
he didnt need ik. He actually did not move it. He just loaded only a part of the animated body bones, and mixed with the joint changes of the other animation file. Dunno how.
You know, the artist just does what is told to…
I’m interested in this too, and i made this post some time ago:
http://www.mojomonkeycoding.com/jmeforum/viewtopic.php?t=281
Hello,
i am totally new to the whole 3d thing, but it’s fun to play with.
Talking about the different posibility to control animations within the software, i’d like to see this from the reverse angle:
If you are an artist, what are the common ways to mold a 3d model? In which software do you create and animate your stuff?
What is state of the art in modelling?
Please excuse my bad English - school is years ago…
Ben
Ben: I’m sure you could find a profesional artist that swears by every modeling software out there. It’s really just a choice of what you’re comfortale with. I see mostly Milkshape and 3d max for modeling software, with the free people using blender, but like I said there are tons of software out there.
Hey Cep21!
I see, it’s like with any other software…
Intense of my question was a little bit different (my fault), so here we go again:
I thought about the model loader and keep my self asking, what ist the “least common denominator” in modelling. Want to say: What features must a model loader be able to import (bones, KI, animations, seperate parts of the model (to animate each independently), LOD)?
These features won’t be the same in each different software , won’t they?
Next question: Thinking about a strategy game like C&C, imaging you have to model 50 different soldiers on foot and want to make the animations for walking.
With bones, you could use the same animation stuff to animate all of your soldieres. If each model had is own set of animations, that would require a lot of memory…
Inspired by another thread in this forum:
Imagine you want to animate a walking and fireing soldier, you could create an animation for 1) Walking 2) Firering 3) Walking and Firering or “melt” 1 and 2 together. This would be less work for the artist…
What, if you want to make weapons replaceable? Like in any FPS, same model with different weapons in hand.
Among all those thoughts, there is one question: What internal representation of a model is necessary, to support at least the most important features?
I hope i could make myself clear… If i made to many mistakes, feel free to drop a private message. I am willing to brush up my English…
Ben
Packages to be used are many.
with md3 output -as jMe now supports it- there’s Max, Gmax, Maya, Lightwave…all with free plugins that must be installed. All those export to x too via plugins.
Blender now exports x files. SO maybe in a future. It also exports md2, and well.
3d canvas exports md2 and x.
Stuff to be exported…ideally bones and weights. But if not, vertex animation with interpolation like md3.
of course, UVs, geometry, textures, materials settings, smoothing info. In some cases, vertex colors (mainly x files, supporting this last one)
about sharing skeletons…
there’s a problem. It’s needed the rigging.Asigning the verts and weights to the mesh for that skeleton. This must be done by hand by the artist…
well, I mean…you can share animations…but to put to share an skeleton, you need to do the rig thing…
That is: if the format allows to share what is only the info contained in the change of rotations/locations of the joints (providing skeleton bone names keep and standad same naming) , then it is possible. You can share those animation files between several RIGGED characters (each with an skeleton assigned.)
If is used the same skeleton, same mesh (maybe different texture) perhaps you could try and do something in code to copy the weights from one mesh to another, but I’d see it more logical in the artist workflow, not ingame…indeed, Character STudio allows directly to exchange bip files…(animation files) …or fig files (skeleton scale and shape info)…or PHY files (weighting info only)…or all of them…but max costs 3.500$ plus what may cost Character Studio addon…well, I know in other engines the characters can even be cloned , by code, and with their animations, just adding some random factors it looks like really different characters.
But I dunno, I’m not a coder.