[x3d-public] glTF - HAnim conversion

Joseph D Williams joedwil at earthlink.net
Fri Dec 21 10:26:26 PST 2018


Can’t help but adding, when thinking about Joint objects, please notice hanim only actually supports one joint type or model.
Hanim joint model is not realistic because, except for root, it only provides rotation about a fixed center. We find that this is not really a realistic structure and we need several other models. Either new joint names or new joints type enumerations? 
For example, how to model the joint where the center of rotation changes in 3D for different poses. (or different stresses) Then, the joint maybe does not move, only the center of rotation changes over a given allowed range. Or a situation where a joint interface mainly sort of slides as well as sort of rotates. 

Also, in realistic structures where the relative movement of one joint is actually dependent upon the relative movements of more than one joint? 
Right now, since adding some fidelity to the skeleton, this is actually needed immediately for accurate hands and feet models, especially if active and actually doing something. 
I think I have seen some scripts that simulate other, more realistic, joint operations but we have never had a base implementation to somehow validate the various models. And of course there are also hints in web3d physics models. 

Anyway, I think this is the main way hanim joint model needs to be improved. 
I may recall NIST through Sandy R. used to maintain a fine list of all the different kind of human joints and descriptions of the actual relative motions of related structures. 

http://andreasplesch.github.io/Library/Models/HAnim/x3d/InlineViewer.html

Thanks again for the fine showing of the examples. 
I have some more – maybe a hi fi moving skeleton?
Best Respects, 
Joe



From: Joseph D Williams
Sent: Tuesday, December 18, 2018 3:18 PM
To: Andreas Plesch
Cc: X3D Graphics public mailing list; Michalis Kamburelis; Humanoid Animation (H-Anim) Working Group
Subject: RE: [x3d-public] glTF - HAnim conversion

http://andreasplesch.github.io/Library/Models/HAnim/x3d/InlineViewer.html

I just looked at this again and remain very much impressed and enthused. 
Thanks a bunch for your investigations and insights into this hanim stuff. It is complex yet straightforward, and the basic reason that x3d/vrml was invented. HAnim continues to demonstrate the wisdom and deep understanding of x3d scenegraph operation. 

Another word of two on the data names, maybe consider that the data might represent endpoints of a bone or segment rather than a joint center? In the old days of mechanical armatures, the folks were more interested in the  ‘bone’ endpoints and bone or segment 3D orientation than thinking about a joint rotation.  The ‘joint’ is actually an advanced device and in hanim depends upon certain intrinsic truths that reveal themselves when you deal with complex structures. 
All this stuff, even latest gltf goes way back to early simulations of mechanical setups and constant attempts to transport very precious data between very proprietary and rapidly evolving authoring and capture.

Thanks again for the fine showing of the examples. 
Joe  

From: Andreas Plesch
Sent: Friday, December 14, 2018 3:38 PM
To: Joe D Williams
Cc: X3D Graphics public mailing list; Michalis Kamburelis; Humanoid Animation (H-Anim) Working Group
Subject: Re: [x3d-public] glTF - HAnim conversion

Joe, the issue is that for automatic glTF conversion purposes center unfortunately is not available since glTF does not have it.

It will be interesting to see how center would need to be treated for a conversion from HAnim to glTF. It will likely need embedded transforms/joints.

-Andreas

---on the phone---

On Fri, Dec 14, 2018, 11:57 AM Joseph D Williams <joedwil at earthlink.net wrote:
• I agree that HAnim is easier to mentally model and is better defined.
 
Hi Andreas, 
Fine work. When you get the translation vs center thing, you will be even more impressed. Think that you really want to stay in the same space as root, for all joints. Look at what happens to the simple rig when you use center rather than translate and how that would evolve when you have more than a couple of joints in a row that have to be positioned exactly. 
Thanks Again, 
Joe. 
 
From: Andreas Plesch
Sent: Thursday, December 13, 2018 4:43 PM
To: Joe D Williams
Cc: X3D Graphics public mailing list; Michalis Kamburelis; Humanoid Animation (H-Anim) Working Group
Subject: Re: [x3d-public] glTF - HAnim conversion
 
On Thu, Dec 13, 2018, 5:48 PM Joseph D Williams <joedwil at earthlink.net wrote:
• … about not accepting that for implementation purposes  Such a choice does not affect authoring meaning
 
OK, my overreaction just as you said, x3d implement must live with the syntax or structure of the ‘standard’ model presented by the x3d hanim standard (or else start a big project. Anything can be done under your covers and lots has changed under the covers over the last years but so far the overall best practice way of constructing and verifying the user code, using skin and/or segment geometry, and animating the thing for realtime interactivity has not changed. I think you are going through basics and learning well. What if there was no gltf or collada? That was true not so long ago.
Since I looked at HAnim first in order to give it a try with x3dom, I may be biased but after trying to then figure out glTF skins, I agree that HAnim is easier to mentally model and is better defined.
 
• I still wish there was a simple two joint with minimal skin HAnim example.
 
Please, go for at least a root and two more, making a total of at least three joints.
Makes sense. Will take a look at a finger.
I’m lazy now and must say that if you take the path of coding in gltf, then deriving the x3d, then maybe the web3D x3d use case is really that you make your model in x3d, which to me is much easier, then export to one or more gltf files. That could also lead to a friendlier set of gltf interfaces to x3d/vrm, making it even easier to transport setups and animations between similar humanoids.
The angle was how to integrate glTF in general, as Inline content. It is unclear if animation and skinning in the glTF should be supported and how they would be controlled by the X3D runtime. HAnim support in a player could be leveraged to also do glTF skinning. But what you are suggestion is also valid. If there is no HAnim support, a glTF playing module could then be leveraged to add such support if it is possible to convert HAnim to glTF.
 
Best, Andreas
 
In that last .x3d example I sent, take apart a hand and work with one finger, maybe. 
Just attach the root to the first finger joint of your choice. The joints and vertices are clearly marked in the user code, and I think there is a viewpoint in there aimed at the right hand. 
 
All Best, 
Joe
 
 
 
From: Andreas Plesch
Sent: Thursday, December 13, 2018 1:04 PM
To: Joe D Williams
Cc: X3D Graphics public mailing list; Michalis Kamburelis; Humanoid Animation (H-Anim) Working Group
Subject: Re: [x3d-public] glTF - HAnim conversion
 
Thanks. Well, I do believe in baby steps and so I want to get a very simple example right and fully understand it before moving to more fully developed examples.
 
Let me also try to be very specific since a few of the responses below are based on my descriptions being too concise ('rotated vertices' vs 'vertex locations being translated according to a rotation about a center').
 
I still wish there was a simple two joint with minimal skin HAnim example.
 
I did not understand your response about not accepting that for implementation purposes it may be convenient to have a weighted joint per vertex rather than vertex per weighted joint data structure. Such a choice does not affect authoring meaning I am not suggesting changes to HAnim.
 
More if there is some progress, -Andreas
 
 
 
 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20181221/eeafbde5/attachment-0001.html>


More information about the x3d-public mailing list