[x3d-public] Purpose of X3Dng -- Animation

Joe D Williams joedwil at earthlink.net
Thu Oct 20 12:32:21 PDT 2016


I suggested asking a question about X3D in relation to the material in 
the blog here is one.

How do they do that in X3D?

In your blog you actually did respond to one of my comments about your 
claim of missing features in X3D HAnim. You showed the images of a set 
of joints and segments apparently controlling a deformable skin.

http://realism.com/sites/default/files/styles/right_border/public/%5Btitle%5D/Objects_bent_initial.jpg?itok=cFqLawrk

that is, the last image in that blog post.

So for now let's just think of the 'skin' as being a continious-mesh 
geometry that is shaped like a humanoid and we want to animate it. X3D 
thinks you will have more fun if this skin is connected, or bound, to 
a skeleton in ways that result in realistic movement of surface 
features. Then, when you want to control the skin you can move the 
skeleton, which can be very much like real life. There are other ways 
to deform a mesh, but here we are discussing a way that provides a 
directly link movement of the skelton to deformation of the skin.

A main point here is that every vertex of the skin mesh is bound 
directly to the humanoid skeleton. Each vertex of this skin is set to 
respond to animation of the skeleton by displacement from its initial 
skin-space coordinate position prior to animation, to a new skin-space 
position that is computed using certain author-defined relationships 
between the skeleton initial pose prior to animation and the current 
skeleton pose.

So, skin geometry can be realistically deformed for 'seamless' 
animation as the skeleton moves. This helps produce more realistic 
surface features as the skeleton is animated. It is up to the author 
to define the bindings between each vertex of the skin mesh and one or 
more parts of the skeleton, and the scale, or weight, by which 
skeleton movement produces an effect upon the vertex.

That is the way they all do it. Every characater authoring system will 
have helpers to aid in setting the bindings and weight values. Some 
authoring systems, the worthy ones, will export these bindings and 
weights if you know the secret words - Export VRML or X3D. Again, that 
is the way they all do it.

That is how skin is animated "seamlessly" so the next question is:

How exactly does X3D do that?

Well, we start with the idea of a humanoid character. Of course the 
technique is good for any sort of skeleton-based character, but to 
keep things in certain bounds, X3D considers the humanoid as the core 
of the basic lesson plan.

The Humanoid of X3D HAnim includes two important concepts:

* skeleton, the hard parts,
and
* skin, the soft parts.

X3D defines the skelton in natural joint hierarchies then animates the 
skeleton by appying rotations to appropriate joints. The skin is 
animated by displacing individual skin vertices according to bindings 
and weights assigned to specific joints. Again, the basic idea is 
moving the skeleton realistically which results in the skin responding 
and deformining realistically.

How does X3D do that?

X3D does that by carefully documenting each connection between the 
skeleton and the skin. For each Joint of the skeleton, either none, or 
one or more vertices of the skin are nominated for control by that 
Joint. This vertex is also assigned a scale factor, or weight, that 
defines the actual effect upon the vertex as the Joint is rotated. 
More than one joint may have an effect on a vertex. The sum of 
displacements from each related joint are applied to the vertex.

Now the tough parts. With an understanding of best practices for 
skeleton-skin animations how would you document the bindings and 
weights? How would you nominate an individual vertex as being 
controlled by one or more skeleton parts and specify the weighting? 
Are you interested in exactly how X3D does it?

Thanks and Best,
Joe

----- Original Message ----- 
From: "Joe D Williams" <joedwil at earthlink.net>
To: "X3D Public" <x3d-public at web3d.org>; "Leonard Daly" 
<Leonard.Daly at realism.com>
Sent: Thursday, October 20, 2016 8:00 AM
Subject: Re: [x3d-public] Purpose of X3Dng -- Animation


> Hi Leonard,
>
> http://realism.com/blog/purpose-x3d-animation.
>
> There are a few nuggets of some important general stuff mixed in 
> with a poor and uninformed view of the industry and what X3D HAnim 
> can do. My opinion is you are not even close to understanding what 
> it is and about what is really going on with data used to build and 
> animate a humanoid or any other skeletal creation.
>
> How about actually using an X3D browser that does HAnim, the best is 
> BSContact (it used to be that Flux was as good as BSContact) or 
> instant, or any browser using the prototypes we have, and extend 
> yourself to read some of the example code for Segment geometry and 
> skin geometry examples and the actual rigging and animation steps 
> before you write in an authoritative manner. You're understanding is 
> very incomplete and even wrong about details in the article.
>
> Try the X3D features, read the spec, and actually try some example 
> and you will see X3D is not as incomplete as you think.
>
> HAnim is not that easy to understand, as you have shown in your 
> article. However, X3D HAnim is logical and completely the way it is 
> done everywhere. So, quit making remarks about what X3D doesn't do 
> at least until you actually do something with what we have.
>
> The only thing you showed in this article is that you haven't read 
> the HAnim spec, you have not used the X3D HAnim to build a 
> character, have not looked at any X3D HAnim examples, have not even 
> tried to build anything close to an operating HAnim yourself, have 
> not really understood how those animation authoring systems work, 
> and finally you haven't even asked anyone any meaningful questions 
> about the basic technology.
>
> Of course I am open to discussing what is HAnim and how we do it. 
> Just ask.
>
> All Best,
> Joe
>
>
> ----- Original Message ----- 
> From: "Leonard Daly" <Leonard.Daly at realism.com>
> To: "X3D Public" <x3d-public at web3d.org>
> Sent: Wednesday, October 19, 2016 8:04 AM
> Subject: [x3d-public] Purpose of X3Dng -- Animation
>
>
>> My next post on the topic is up at
>> http://realism.com/blog/purpose-x3d-animation. This is an 
>> explanation of
>> how animation is done using rigged models and why it is important 
>> to
>> include it standard X3D. It does not include node proposals - that 
>> will
>> take further research and discussion.
>>
>>
>> -- 
>> *Leonard Daly*
>> 3D Systems & Cloud Consultant
>> LA ACM SIGGRAPH Chair
>> President, Daly Realism - /Creating the Future/
>>
>
>
> --------------------------------------------------------------------------------
>
>
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>
>
> _______________________________________________
> 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