New DLLs sat or sunday

Topics: User Forum
Coordinator
Feb 10, 2007 at 9:03 AM
Edited Feb 10, 2007 at 9:06 AM
They will offer the ability to manipulate animations at a per bone level and split up animations in the processor.
Also, I added a basic FSM for dealing with animation.

I just checked in the source code for this, but given the huge amount of changes to the code base and the time spent on design, I want to spend more time before I create an example.

Finally, I could use some ideas for the demo. Any want to use the library for their game and want to do something, but do not know how? Right now I'm planning on using a dwarf model to show realistic walking (unlike the bear), additive blending with him shaking his head while walking, non-additive blending like in the diloph example, animation sequencing, and perhaps how to use your own transforms for the bones.
Coordinator
Feb 10, 2007 at 9:35 AM
Also tomorrow I'll take a hack at collision detection, because after that, I don't see me adding any new features in the core library :)

If anyone can point me to examples of a processor that takes an input of skeletons and vertices and spits out bounding boxes for the bones in the bind pose, it would save me a few hours of hacking. But, since almost noone has created skeletal animation, I doubt there is one floating around.
Feb 10, 2007 at 5:28 PM
Hey

Does "the ability to manipulate animations at a per bone level" mean there will be the possibility to transform bones independentely of the current animation? E.g. I would like to have a model with a regular 'walk' animation and be able to move his arm based on the gamepad's thumbstick position or something like that.

Fantastic work, BTW :)

Thanks

jnogueira

Coordinator
Feb 10, 2007 at 6:06 PM
Yes.
Coordinator
Feb 11, 2007 at 4:14 AM
Here is a video on youtube of what the next sample will be (I think):
http://www.youtube.com/watch?v=jD9DrHr8jwU

I just uploaded it so it may take a little bit to be available.

Let me know what you think if possible before I release the demo. Is this the type of thing people want? I do both additive blending (he nods his head during walk/run/and idle) and show how to realistically move him around.
Feb 11, 2007 at 4:29 AM
Very impressive, good work man !!!
Feb 11, 2007 at 1:42 PM
Nice demo! This is exactly what I want.
I have some thoughts about collision detection and bounding boxes. I read that bounding boxes in XNA deforms strangely. Take a look at Sharky's blog, http://sharky.bluecog.co.nz/?page_id=113. He suggest using bounding spheres instead. And your idea about creating boxes from the bones and the meshes, wouldn't it have problem with detail? E.g. A hand would have alot of bones resulting in alot of bounding boxes. Why not let the rigger/modeler/animator create bounding boxes/spheres as meshes and bind them to the skeleton in the 3d package. And have the custom processor look for them and create bounding boxes/sphere from them.

Alfons the Newbie

Feb 11, 2007 at 7:40 PM
Very Nice!

A sample that shows hot to do a bone override, while playing an animation would be nice (if you haven't done it already.) For example, have the dwarf always look at some object, like a box in the middle of the platform. That way as he runs around, you override his head to look at the box.

--
Mike
{Eagerly awaiting the ability to models w/o built-in anims)
Coordinator
Feb 11, 2007 at 8:43 PM
Edited Feb 11, 2007 at 8:44 PM
Hmm.. could do that. I don't have a reference pose for turning sideways to work with (not built in anim), but it should look alright as long as the box is relatively in front of the dwarf. I.E., just the head will be turning, not the whole body like they do in some games. Halflife, for example has a few skeletal poses that it uses for turning right/left/up, and then moves the head in that pose for finer details.

But yeah, I'll definitely show how to do manual override. And in this version the model is loaded in the bind pose so you can load them without built in animations.

I'm gonna make this tutorial into a series of wikies I think rather than just one project because that would be a bit overwhelming.
Feb 12, 2007 at 12:44 AM
That's what I was thinking. Just turn the head, and pick a spot to be "max turn" -- or something. Wouldn't look too wacky at +/- 45 degrees.

--
Mike
Feb 12, 2007 at 12:49 AM
Another nice tutorial/wiki/sample would be something like a standing relaxed, point, relax again. Basically have the dwarf standing relaxed, and in the sample allow user to move a box around. Any time the box moves in front of him, he points at it, until the box moves out of his view.

A more complex version of this sample, would be to draw a weapon, aim, and then holster it (if the target leaves their "view.")

Same sample where the character is moving, and points/targets when target is in view. This would be more blending -- walking, drawing, aiming, holstering...

Just tossing out thoughts...
--
Mike
Coordinator
Feb 12, 2007 at 2:13 AM
I posted the dlls and am in the process of building the tutorial. You can get to the tutorial home by clicking on the link on the front page.
Feb 12, 2007 at 8:23 PM
dastle, you didn't comment on my thoughts about collision detection. Did you miss them or are they stupid?
Coordinator
Feb 12, 2007 at 10:18 PM
Edited Feb 12, 2007 at 10:20 PM

dastle wrote:
dastle, you didn't comment on my thoughts about collision detection. Did you miss them or are they stupid?


I was actually planning on trying that collision system for the bones (the one on Sharkie's blog), but I'm taking one thing at a time and want to get the current tutorial out of the way first. Unfortunately, it's another killer day for me so I can't really work on the tutorial today.

The problem with having the modeling program create bounding boxes as meshes is that there are only a few that can do this and even fewer that can export to the .X format.

Just as deciding on the design for how to do per-bone animation took a while and a few drafts, deciding how to make universal collision detection will take a lot of thought. My best idea so far is to find the bounding box/sphere in the bind pose for each bone, and when the user requests one for the current transform, it will multiply the center of the box/sphere by the bone's current transform matrix.