[x3d-public] Purpose of X3Dng -- Animation

Joe D Williams joedwil at earthlink.net
Thu Oct 20 16:17:27 PDT 2016


>> HAnim is *NOT* the way it is done everywhere. It's only the way it 
>> is
>> done in X3D,

Wel maybe you mean that your example authoring systems don't worry 
about knowing the coord point index of the mesh, I just put a 3D 
marker around the mesh and the system takes care of it.
So true, X3D does not provide a single way of automating the task. If 
you look, there are ways to do that author helper tool in X3D, but in 
the meantime all we are interested in is the actual data the whateever 
authoring tool uses to designate the verts and the weights to which 
skeleton element. Another authoring tool may not even mention joints 
as an interface in the default UI, Doesn;t matter, the application 
binds the mesh to some set of actuators that move the mesh. All X3D 
needs in the same binding info, skin to skeleton, that the authoring 
tools use to produce the industry standard effect.

The industry standard effect is that when the hierachy of joints is 
moved, we get continious deformation of the skin geometry that 
simulates the natural movements of model surface features. Whatever 
your favorite commercial or free character modeling tool exposes the 
interfaces to the user, under the covers it has to produce the data so 
that the desired result is that every point of the skin mesh is bound 
to one or more devices, called joints here, where the skin is 
animated, or defomed, according to the cululative effects of skeleton 
movement.

>> and even that does not follow the same principles as the
>> industry work.
>>

Principles is the focus? I thought it might be easy and just be that 
maybe the object names or ui controls used different names, or exposed 
only a part of the character's structure and geometry. But we want to 
talk about principles here. Where has X3D gone wrong? How about the 
priciples used by BSStudio or viz, or other X3D-centric tools. How 
about the modeling tools you referenced in you blog? What about tools 
like max and maya?

The basic principles of advanced character animation are fairly well 
established.

It is generaly considered that a base for character animation is a 
hierarchal skelton having a root parent and a natural arrangement of 
hierarchies of child joints to compose the spine, arms, legs neck, and 
head. The character is animated considering the joints as the primary 
structural elements of the skeleton. Application of a rotation to a 
joint produces a change in the skeleton pose. The hierarchy responds 
to animation of individual joints by moving the children as expected. 
In a properly designed skeleton you have an initial animation binding 
pose prior to application of any animations. This pose becomes the 
reference pose for any animations applied to the skeleton.

The Joints have onjects that connect to another Joint or an 
end-effector site. Some call it a bone while X3D calls it a Segment. 
Each of these Segment objects can parent various geometries. When the 
Segment is animated by movement of a parent joint, then the geometry 
moves as expected. Some tools may use quaternions to deciribe 
animation keyvalues while X3D remains archaic, well post-archaic, 
using axis-angle. This is a minor consideration because the conversion 
is easy and precise.

The skeleton can also parent a mesh used as deformable skin. We have 
discussed this, but the general industry best practice is to produce 
the effect of continous natural skin animated by movements of the 
skeleton. In order to do this certain data is produced that identifies 
the mesh points that are animated according by scaling certain 
movements of the skeleton. That certain data is the same data used by 
X3D.

Besides adopting something like a general purpose mesh animator like 
HAnim Displacer into the general set of keyframe interpolator-based 
general mesh animation tools, a great advance in transporting X3D 
animations in the style of Collada and glTF is to push X3D to adopt 
unit quaternions in all fields where axis-angle SFRotation and 
MFRotation are accepeted.

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 1:33 PM
Subject: Re: [x3d-public] Purpose of X3Dng -- Animation


>> I also had
>> tutoring on the specifics from some animators currently working in 
>> the
>> industry, and the post was reviewed by an industry person prior to
>> publication.
>>
>> So I might be wrong, but I don't really think so.
>>
>
> when you say the following, then you are wrong.
>
>
>> HAnim is *NOT* the way it is done everywhere. It's only the way it 
>> is
>> done in X3D, and even that does not follow the same principles as 
>> the
>> industry work.
>>
>
> Good Luck in backing up either of those twp sentences..
>
> For a general mesh animation tool that functions like most mesh 
> animation authoring tools carry, study the HAnim Displacer node. It 
> abstracts the most basic mesh deformation technique, 
> CoordinateInterpolators and a scale or weight factor.
>
>> P.S. Right now (X3D V3.3) the biggest problem with H-Anim is that 
>> X3D
>> does not support rigged deformable skin animation of joints. It is
>> included in a separate component.
>
> The first sentence is misleading and incorrect so stop saying that. 
> HAnim does Absolutely support rigged deformable skin animation by 
> animating the joints. The joints are what gets animated and 
> deformation of the skin is the result. The stuff is in a different 
> component because it is is a complex structure and computationally 
> intensive.
> Even in HAnim there is a line between the X3D browsers that can do 
> skin and ones that can only do the simple Segment geometry.
>
> If you want to do mesh animations using standard nodes, try 
> CoordinateInterpolators. if you wish to deform a mesh using inputs 
> that are dependent upon other events than skeletal joint rotation, 
> the look at HAnim Displacer.
>
>> Because my point is not H-Anim.
>
> Then quit talking about skeletons and joints and skin as used in 
> HAnim like you actually understand HAnim. Whatever it is you are 
> calling "rigged deformable skin animation of joints" may be real to 
> you but to me is a nonsense phrase. The skin gets animated as a 
> result of animation of joints. If this is a different thing, then 
> quit using terms found in and reserved for HAnim, like joint and 
> skin. You can discover something different and call it actuator(s) 
> and mesh, for instance, but not Joint(s) and skin.
>
> All Best intentions, i'm sure.
> Joe
>
>
>
> ----- Original Message ----- 
> From: "Leonard Daly" <Leonard.Daly at realism.com>
> To: "Joe D Williams" <joedwil at earthlink.net>; "X3D Public" 
> <x3d-public at web3d.org>
> Sent: Thursday, October 20, 2016 10:00 AM
> Subject: Re: [x3d-public] Purpose of X3Dng -- Animation
>
>
>> Joe,
>>
>>> 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.
>>
>> There is absolutely nothing in my post about H-Anim. There is no 
>> use of
>> "H-Anim", "HAnim", or "Human" (all case insensitive).
>> That was an explicit choice.
>>
>> It is likely that I am far more informed of standard industry 
>> practices
>> for character animation than any other active participant in the
>> Consortium. I am Chair (4th year) of LA ACM SIGGRAPH -- supporting
>> professional in the industry and location where character animation 
>> was
>> developed and where its capabilities are pushed to its limits. The
>> Chapter regularly discusses and has presentations from the top 
>> modelers,
>> riggers, and animators in the (entertainment) industry. I also had
>> tutoring on the specifics from some animators currently working in 
>> the
>> industry, and the post was reviewed by an industry person prior to
>> publication.
>>
>> So I might be wrong, but I don't really think so.
>>
>>
>>
>>> 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.
>>
>> Because my point is not H-Anim. Rigged joint animation is not 
>> H-Anim. As
>> the article describes rigged joint animation can just as easily be 
>> used
>> for non-humans, non-animals (e.g., trees), or even non-living 
>> (e.g.,
>> machines) models.
>>
>>
>>>
>>> Try the X3D features, read the spec, and actually try some example 
>>> and
>>> you will see X3D is not as incomplete as you think.
>>
>> Rigged skin animation is not available for Immersive. This type of
>> animation needs to be available at what amounts to Interchange. X3D 
>> is
>> incomplete with regards to this.
>>
>>
>>
>>>
>>> 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.
>>
>> HAnim is *NOT* the way it is done everywhere. It's only the way it 
>> is
>> done in X3D, and even that does not follow the same principles as 
>> the
>> industry work.
>>
>>
>>>
>>> The only thing you showed in this article is that you haven't read 
>>> the
>>> HAnim spec,
>>
>> Because it is NOT about H-Anim -- it is about rigged skin 
>> animation.
>> There is absolutely no assumption about the model being rigged.
>>
>>
>>> 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.
>>
>> ^^^^^ All irrelevant to my post.
>>
>>
>> Leonard Daly
>>
>>
>> P.S. Right now (X3D V3.3) the biggest problem with H-Anim is that 
>> X3D
>> does not support rigged deformable skin animation of joints. It is
>> included in a separate component. My post is showing that this 
>> animation
>> capability needs to be included in a standard "profile" (in V3
>> terminology) of future X3D. That helps H-Anim by providing an easy 
>> and
>> existing means to do the animation.
>>
>>
>>
>>
>>>
>>> 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 




More information about the x3d-public mailing list