[x3d-public] [h-anim] Basic Animataion data

Joe D Williams joedwil at earthlink.net
Fri Nov 11 12:31:33 PST 2016

----- Original Message ----- 
From: "Leonard Daly" <Leonard.Daly at realism.com>
To: <x3d-public at web3d.org>
Sent: Friday, November 11, 2016 9:46 AM
Subject: Re: [x3d-public] [h-anim] Basic Animataion data

> On 11/11/2016 7:40 AM, doug sanden wrote:
>> ...
>> Would like to see more goodies in HAnim / Anim.
>> When implementing hanim in freewrl I was shocked by how little work 
>> the web3d browser does, and how much work is left for the content 
>> developer to do. For example IK. Q. Should we have a general IK 
>> solver node? Or other nodes to lighten the burden on content 
>> developers? Joe mentioned something about assigning joint weights 
>> automatically. Is that a node, or option in node?
> Um, why?
> X3D is not an animation application. It is a format and a run-time.

Now I see what you are thinking.
Hey, X3D just happens to be a runtime that runs a great form of common 
documentation for building and animating a Humanoid character.

At one time we had a thought that ahuman-readable form is needed to 
document a 'standard' meically-oriented humanoid and its anmation.

> There are already a number of animation applications that handle 
> forward
> and reverse kinematics.

ANd we all need the same thing. How to document and archive the 
humanoid and its animations

> X3D browsers (for the most part) cannot handle
> deformable skin.

All can do the basic skeleton and animations.

As you go forward in your experiments then you will find out why there 
is a barrier. It gets hard when the browser has to deform a skin from 
frame to frame, Computing and applying the vertex animations is 
hard.especially when you really must consider adding Displacer-style 
mesh animations in with the joint-driven mesh animations.

But, that is what it takes to document common skeleton and mesh-based 
structures and animations.

> There may be some more advanced applications where it
> would be really nice to have IK, but right now X3D can't take baby
> steps.

As I said, IK is important to document simulations and rersults, just 
that so far, the fields have not been done.

> Content developers (from the art side) want to control the
> animation, it's programmers who want a node that says "walk" so they
> don't have to figure out how to do that animation.

Yes, and I think if they want a walk. and they want a better walk, 
then sooner or later they need to see the user code, If they can 
export to X3D HAnim, then they can read it and edit it..

> Okay, so the above is a bit of a generalization; but there is so 
> much to
> do with animation that we need to focus on getting a great 
> foundation
> for the basics first.

Hey, the basics are that you create a container for you humanoid, put 
the skeleton and skin in there, and match it up with some animations. 
The skeleton is a 'standard' skeleton made up of Joint-Segment-site 
hierarchies. The skin is a continious mesh, or vertices nominnated 
from a set of individual geometries.

X3D HAnim has fields for all the data used anywhare for skelton-based 
animation, and continious-mesh deformable skin, and independent 
continious or partial mesh animation.

That is the same data use everywhere for this stuff.

If you wanted to use X3D HAnim to create a charactrer editing tool, 
then the IK and automatic skin binding could be added without changing 
the HAnim spec at all, just getting some fields implemented.

>> ...
>> I'm not sure I understand the difference between maya and blender 
>> when it comes to root nodes. Isn't that something an exporter could 
>> add, if missing?
>> ...
> When rigging a model in Maya, you start with a single joint - a 
> naked
> joint. You add another joint (making a "virtual" bone). This is the 
> root
> structure of the model. You move the first joint and the entire 
> model moves.
> In Blender you start with a pair of joints and build from there.

HAnim documents that structure exactly. Maya is more like HAnim, since 
they contributed more to the spec. Again, the maya default humanoid, 
or biped is very close to HAnim LOA2.

> I haven't worked enough with either of these packages to form an 
> opinion
> on this. A joint always defines movement in relation to its parent; 
> so a
> single joint can't define anything -- it's just a point.

No, it is a Joint, not a point. You can hang stuff from a joint.
For example, the HAnim LOA0 only has one Joint and one Segment, and 
then a bunch of Site nodes. You animate this by position and rotation 
of the joint. The root is how you move the thing.

A joint's movement is defined in relation to its parent.

> OTOH, it is
> symmetric to have everything go down to a single point. It's sort of
> like the fill-in squares game. Blender requires you to draw a line, 
> Maya
> allows you to first pick a point.

Yes, maya exposes the concept of a hierarchy of joints. 
Blender exposes the concept of a hierarchy of bones.
Of course whether you pick joints or bones, the thing is animated by 
joint rotations.

> Another thing I don't understand is scale. Given two points (joints)
> there is a line connecting them. This is the 0 rotation. Moving one
> point defines a rotation from the 0 to the current position. The
> distance between the points can also change.

No, the distance between adjacent the points (Joint(s)) cannot change.
Well, wth the simple joint model we use now. In real life, there are 
joints where the joint center moveswhen the joint is rotated, We know 
the model(s) but nobody has implemented.

Please look back at my earier detailed review of you node concepts for 
information that will help answer this question.
Hint: if you can figure this out using any tool, even X3D HAnim or 
just plain old X3D, it is the same answer.

> So where does scale come
> in? You can't scale-up/down a point. You can't scale the 
> perpendicular
> size of the connecting line. You can only scale the distance, but 
> that
> is the same a changing the translation. Alternatively, perhaps 
> rotation
> and (distance)-scale should be kept and translation tossed. There 
> are
> not as many degrees of freedom as there are quantities trying to 
> specify
> the details.

Yes, very interesting, conceptually. In the last paragraph of the 
HAnim group intorl the sentence is something like if you take the time 
to learn the basics using HAnim then ...

All Best,

> -- 
> *Leonard Daly*
> 3D Systems & Cloud Consultant
> President, Daly Realism - /Creating the Future/


> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org

More information about the x3d-public mailing list