> So you're suggesting to simply replace the RagdollBone() call
> with my own data transformations?

yes

> When you are editing the matrix given back from
> GetBoneToWrite( boneIndex ), what is the scope of this
> matrix?

It's just giving you a pointer to a matrix inside pBoneToWorld.  So the
scope is the same as that data.

> Is it in local space covering only it's position and
> orientation from it's parent bone, or is it global space
> after concatenating all parents?  Basically, what does this
> matrix use for it's origin?

It's a bone space to world space transform as the name implies.
Concatenating a any parent transform is up to you.  Look at the code for
BuildTransformations() and you can see this being done in the case of
animation.  Ragdolls don't really have hierarchy so they just get the
data directly from the physics simulation.

> I was looking through all the ragdoll code, and I was
> wondering since I need collision to occur in my model of the
> hand if I needed any other ragdoll code?

For what it's worth, I probably wouldn't bother with collisions until
you've got the other part working.  Anyway, that will make the problem a
lot more complicated.

If you want the physics system to solve the collisions, then you need to
create physics objects for the various parts of the hand, yes.  The
ragdoll code is probably the easiest way to do this provided you also
want the constraints between the pieces.  It sounds like you don't - but
I can't tell well enough from your description.

The ragdoll system does not currently do all of the things you want.  I
think you should probably use ragdolls plus what the bone followers use
(shadow control), but since there is no code that currently does both I
can't really say what problems you'll encounter.  You could also instead
turn your user input into forces (basically what the vphysics shadow
controllers do) in your own code as well.

> built and loaded with it's own collision data, but I'm not
> sure how well collision data will update if I manually move
> bone orientations around.

You can do this, but instead of collisions you'll often get
penetrations.  Better to push the bones in the direction of the desired
position.

> I was searching and I couldn't
> even find how the physics told the ragdolls how to move in
> the first place.  Is it updated via the physics.dll behind
> the scenes completely?

Look for physenv-> in the client DLL.  The objects are created using
that interface (physenv->CreatePolyObject()).  Then physenv->Simulate()
gets called to advance time in the physics solver.  Then each object
gets updated by reading through the interface returned by the create.

> I may even be going the wrong way with this.  Somebody else
> suggested I try using Bone Followers, but the Bone Follower
> update doesn't appear to do anything but update a shadow.  In
> fact, the Bone Follower code doesn't appear to do much at all.

Hopefully you understand how that works a little better now.

> Also, related question but not of major importance as of yet.
>  If I wanted to pick things up with this modeled hand, would
> the physics system be good enough?  Give friction and mass to
> all the fingers, then surround an object with the fingers,
> and lifting;  would that actually pick the object up, or
> would it need to be done some other way?

I think it would basically work, but there will be a bunch of problems -
oscillation/bouncing/shifting kinds of problems.  But then I've never
tried it, so I can't say how serious those problems will be and I don't
know what's acceptable to you.

Jay

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to