Jump to content
  • Advertisement
Sign in to follow this  
littlepig

Arms Movement and Avatar movements

This topic is 2862 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi there to alllllllllll

I'm new in this forum. I started wondering on doing some programming work for software programs (as I've finished my physics course), and I wonder how are normally made the animations (for instance for a mmog) of a walking, running, attacking with a sword, etc. in a character. How do you model it so that there are no funny arms positions for instance?

I'm making a model of a character, but I figure out that the best thing to start is ask the professionals... :p

Thanks all for the help!!

Share this post


Link to post
Share on other sites
Advertisement
You should be really more specific. This is like asking "How do I draw stuff so it's awesome?". What kind of funny positions? What have you tried? Maybe you could include a screenshot of the actual skinned mesh. We can not help or redirect you if we don't know what your problem specifically is.

Share this post


Link to post
Share on other sites
Quote:
Original post by Ratslayer
You should be really more specific. This is like asking "How do I draw stuff so it's awesome?". What kind of funny positions? What have you tried? Maybe you could include a screenshot of the actual skinned mesh. We can not help or redirect you if we don't know what your problem specifically is.



Ok, sorry, you're right.

I know that, for mmogs, normally it is not advisable to construct a character (i.e. animated person) that moves according to the laws of physics. That's because the calculations are too many, and normally this leads to numerical errors that make the character funny. I'm trying to understand what it is done in games development to bypass this.

For instance, in the game star wars: Jedi outcast, the characters do a lot of different sword movements. What I'm asking is how those kind of movements are normally programmed for a mmog. Do you design an articulated character and then animate it in a way that it makes the movements. How do you do that animation? (For me, animation is a sequence of pre-defined frames that are made to start after a given trigger is activated, for instance, before Ragdoll effects, dead simulation was made by animations).

That's because I've fully designed an arm, with 4 nodes (shoulder-joint, elbow-joint, Wrist and finger tip), that is moved only by 7 parameters (angles). Now, I want to animate the arm, in order to simulate movements.

Video of the arm:


My point is that i'm just "re-invented the wheel", and I don't know if this is the normal approach for this kind of problems. Im asking what is the basic approach for this kind of problems.

Very Thanks

[Edited by - littlepig on August 24, 2010 3:19:01 AM]

Share this post


Link to post
Share on other sites
I see. Well, to start off, MMOs are not any kind of special games, from a graphical point of view, that require a COMPLETELY different approach. They are often much more simplistic in those fields (correct me if I'm wrong, but I actually don't remember any MMOs even trying to implement an actual physics engine), because MMOs are much more work to be done in general, so many of other fields that would be polished in normal single player/multiplayer games are often overlooked or simplified.

I can personally identify 2 types of animations: frame based animation and physics driven animation.

Frame based animation is when the skeleton is represented by a sequence of positions, called frames. At every rendering frame, the skeleton position is changed to the skeleton frame, and then the mesh is drawn. This simulates a moving image an therefor the mesh will be moving. An Alternative is key-frame animation: here, instead of storing every single frame, you store only those that are the most important, and then you linearly interpolate the skeleton movements between them.

Physics driven animation is when your skeleton is represented by an actually physical body (most likely a rag doll) and is moved according to laws of physics. This means that your animation frames are stored (if stored at all. You could have a falling body that does not need any precomputed animation) not as position/orientation changes, but as motors(force generating joints) and linear/angular velocity changes. This way, if your body collides with a physical entity (like a table or a wall), it will be able to react appropriately (or not), whether frame based animation won't. However, this means that there is a lot more freedom for the limbs to fly around as they please, thus you will have to implement joint limits that will restrict their movements to the more natural ones. For instance, your leg bones must always be aligned or a plane and the angle between the femur and the tibia must not exceed 180 degrees.

I prefer a hybrid system, where I have a key-frame animation that is then translated into physical movement (with angular and linear velocities) and, after all the interactions between the rag doll and the physical world, applied to the mesh.

The advantage of the frame based animation is that you will never have those funny positions, as you will be drawing those animations by hand in a 3D Graphic Editor, thus you will be visually scanning and removing "funny" movements. As far as I know, most of the games nowadays (including pretty much all of the MMOs) use frame based animations and, maybe, rag dolls to simulate dead bodies. The problem with physics driven animation is not the amount of errors (errors are there, but they are not that much of a problem anymore), but the increased amount of work that is associated with it. With frame based animation, you drew it once and you forgot about it: you have your animation. However, if you want to use physics driven animation, you have to account for many other factors, which is why many games (even some AAA games) tend to dismiss this feature. You will probably see the physics driven animation mostly in shooters, as they are the ones often pushing the boundaries of realism.

I can not really identify what you are doing in the video and what you are actually trying to do, but here is a quick rundown of how the animation drawing is normally handled:

- Draw the mesh, skeleton and animation in an already existing 3D Editing Software like Maya, 3DS Max or any other (those guys were at it for more than a decade, so their software is the way to go when it comes to drawing stuff).

- Export it to a file using some predefined format or (even better) use your own.

- Load it into your graphical engine and render it.

I'm not sure if I answered all your questions (or any, for that matter), but I hope I did.

Share this post


Link to post
Share on other sites
Thank You for that post!!!

Well, actually what I did in the movie I posted on yt was made on Mathematica® (basically I programmed the arm where each movement was just a slider that I had to change the several angles, the movie is only me changing each angle, one at the time).

I'm not concern with the mesh and all that problems that can be solved for a specific character in an appropriate software. My point is that the arm movement is a 7 degree freedom problem (without fingers), with 4 nodes, so I actually not worried about the rest.

With that model, I already made a frame based animation: I picked up 3 points that I wanted to make an animation with and I interpolated them (so I assume I used "key-frame animation" to make the "frame based animation"). So, the program I made did the interpolation and them created a list of all the frames. (not shown in the movie)

However, I had 2 problems using key-frame animation to create a framed animation: synchronization and triggers.

Synchronization:
Suppose there is a movement that uses 2 arms to grab a double handed sword. I want that the relative position of the two hands are the same at every frame. I can't do that using Key-frame animation because I had to be very lucky so that the interpolation passes trough the exact points where the relative position is the held fixed. So, it couldn't be just a polynomial fit using a simple interpolator: the interpolation had to have the constrain condition that the relative position of the hands should be fixed during the animation. The immediate solution seems to be adding more points so that the polynomial could be better adjusted for this particular problem, but this adds to the programmer addition time for making a particular movement, and I wonder if someone already found some kind of "constrained interpolation" to this problem.

Triggers:
During an animation (of a sword fight for instance), there are triggers: if the avatar 1 is hit during his own attack, at time t, his "attack animation" must change for a "hit animation". As t can be anytime of the "attack animation" (it can be just in the beginning, in the middle, or even just before the avatar 1 strikes too), the "hit animation" must be made "on site", according to the end of the attack animation. If understood you right, this can only be made with key-frame animation.

Are you aware of anyone that solved this problems? Is there any place where people like you discuss this kind of problems?

Once more thank you very much for your time and patience,
littlepig

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!