[x3d-public] Purpose of X3Dng -- Animation

Joe D Williams joedwil at earthlink.net
Fri Oct 21 17:06:18 PDT 2016


> It would be fantastic if e.g. Blender armature animation was 
> exported
> to X3D. It is already possible, as H-Anim supports the necessary
> features --- what is miss is the actual code on the side of Blender
> (Python) exporter to X3D.

Good idea, perhaps if the Blender animation data exists so it can be 
made to work in interpolators.
Sometimes the export of animation intended for rendering to film or 
video is just a list of completely rendered frames rather than an 
actual realtime animation style.

If the data exists to export keyframe keys and keyvalues, then the 
rotations and translations should be easy to get. In an 'old style' 
armature they were not interested in joint rotation but depended upon 
bone orientation. That is OK because the purpose was to pose the 
artatmure for the next frame, not to worry about interpolation since 
they knew the target frame intervals. That is OK, bone orientation and 
joint rotation is the same.

Another detail is that the joint animation data may be in unit 
quaternions, which is actually most likely since it is the preferred 
form in collada and glTF.  Or, the data may use euler-type angles 
(x-y-z) that need to be converted to x3d axis-angle which can be 
straightforward.

That is what Part 2 of new HAnim is about, how to import mocap and 
other types of animation data. First you consider the capture 
skeleton, then you model it to a model of an HAnim 'standard' playback 
skeleton, convert the keyvalues as required, create the positon and 
orientation interpolators, then run the thing. Everyone's comments on 
this Part 2 is also appreciated.

I don't think we want to also cover the idea of no interps, just itty 
through the mocap keyvalues for video or film fixed frame interval 
rendering and capture. X3D's target is realtime or anytime and 
everytime. Of course you also make video or film using X3D. Same for 
'general' coverage of this anmation technology. Of course you can do 
anything you want. You don't need study HAnim very long until you 
learn that yes, you can define your own joint hierarchy, use any names 
you wish, and attach any kind of geometry and sensors you wish. If you 
want to do different shaped skin, then fine. Finally, if you 
understand the skelton setup, you can just fly them joints around to 
achieve most any animations possible with your model. You can easily 
adjust animations with a keyboard, a text editor, and an X3D player.

Whatever you do, there are the same rules. Similar skeletons with 
similar initial pose can exchange skeletal animations. That is the 
most important point of this entire effort. Exchange skins when 
skeleton joint hierarchy, skin vertex count, order of appearance in 
the user code, and feature point relationships are the same. Sure we 
could tell that story in a series of tutorials but this is a spec. 
Maybe not this example, but the spec does not always need to spell out 
the history or details that would be obvious to an expert in the 
field, just the bare implementation requirements.

Again, capabilities in this spec can describe any skelton but I think 
we want to target something concrete. Something that can have a set of 
reference inputs and a set of reference outputs. Finally, we want a 
'standard' set of example animations that work with each of the 
'standard' LOA definitions.

For this spec effort, the most important thing is that Implementors 
get it right. If the implementation can deliver a 'standard' humanoid 
that uses 'standard' animations, then we have something. If the 
implemetation gets it right, then the users can get most anything out 
of it they want. So that is why the HAnim spec targets the 'standard' 
animatable humanoid.

When we discuss general X3D animation facilities, of which there are 
many, then that is the job of a set of tutorials. Please recall that 
the spec is addressing Implementors, and technicallly-oriented users, 
not the general user. Usually the spec will fail when it wanders into 
general tutorials aimed at general users.

Still, the idea of bringing something like the HAnim DIsplacer up into 
the same bag of tools as other styles and types of interpolators would 
be a fine idea. I think that might be what Leonard was mentioning when 
he said there are other more basic tools than joint-actuated mesh 
deformation. It is easy to recognize the Displacer as a basic mesh 
animation tool that would be encountered in early animation lessons.

Thanks and Best,
Joe


----- Original Message ----- 
From: "Michalis Kamburelis" <michalis.kambi at gmail.com>
To: "Leonard Daly" <Leonard.Daly at realism.com>
Cc: "Joe D Williams" <joedwil at earthlink.net>; "X3D Public" 
<x3d-public at web3d.org>
Sent: Thursday, October 20, 2016 10:34 PM
Subject: Re: [x3d-public] Purpose of X3Dng -- Animation


> 2016-10-21 6:23 GMT+02:00 Leonard Daly <Leonard.Daly at realism.com>:
>> In all your writings you appear to be making the assumption that 
>> joint-based
>> animation with deformable skin is H-Anim. That is not true.
>
> Hi,
>
> From my point of view, I see H-Anim as "the way to do animation 
> using
> skeletons, bones and (optional) skins in X3D". I can easily do
> skeletal animation of anything (humans, pipes, animals) with H-Anim. 
> I
> actually implemented it in view3dscene, and really there's nothing
> limiting this system to "humanoids". You just transform the bones, 
> and
> optionally deform a mesh following the per-vertex weights.
>
> Maybe we could solve the issues raised here by simply changing the
> wording (and some node names), to de-emphasize the "humanoid" part 
> in
> the H-Anim specifications. (The X3D component
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/hanim.html
> and the H-Anim spec on
> http://h-anim.org/Specifications/H-Anim200x/ISO_IEC_FCD_19774/ ).
>
> Such change would more accurately reflect H-Anim's capabilities (in 
> my view).
>
> How about we would simply rename H-Anim component in X3D to 
> "Skeletal
> Animation"? Some additional renames would be nice, like removing the
> "HAnim*" prefix from nodes, and the main "HAnimHumanoid" node could 
> be
> something simpler like just a "Skeleton" (with the primary field 
> being
> "skeleton").
>
> The fact that the H-Anim standard defines also a standard "Structure
> of a humanoid" is just "an extra" for me. I mean, it is valuable!, 
> but
> it can also be simply ignored if you don't model a humanoid (or 
> don't
> care about standardizing your names, to transfer the animations
> between other humanoids).
>
> Also, adding such "Skeletal Animation" component to the "Immersive"
> (or even earlier) profile would be a nice touch. It is a major
> animation method. Putting it inside a component other than "Full" is 
> a
> way of encouraging implementations of it. Especially since it seems 
> we
> do have a lot of implementations of it.
>
> It would be fantastic if e.g. Blender armature animation was 
> exported
> to X3D. It is already possible, as H-Anim supports the necessary
> features --- what is miss is the actual code on the side of Blender
> (Python) exporter to X3D.
>
> I hope that this opinion helps:)
>
> Best regards,
> Michalis 




More information about the x3d-public mailing list