[x3d-public] What is H-Anim?

Joe D Williams joedwil at earthlink.net
Thu Oct 13 21:04:37 PDT 2016


> > This may not be easy to read.

then my contribution to understanding what is specified currently in 
HAnim must be impossible to read.

> X3D needs to support deformable skin at the basic animation level

Well, maybe a basic animation level you are considering is simply no 
skeleton and just posing some mesh to make keyframes. Then to 
playback, either swap entire geometry for each each frame or use 
coordinate interpolators to move the mesh from keyframe to keyframe.

Standard X3D does that just fine without HAnim. If you want to build 
the skin informatively referenced by HAnim, then you base your final 
dimensions on the Site locations given as CAESAR internationally 
recognized typical dimensions given in Annex A. The locations of 
surface features are given as located on a human skin suface when 
standing facing +z,. +y up, +x to left with 0 0 0 between the feet. Yu 
can adjust the dimensions to fit your model of, well, yourself, for 
instance.

Lots of fine stuff has been done at this very basic level but only a 
skin with no skeleton does not do much. HAnim specifically skips this 
sort of beginner step and does character animation by directly 
animating the skeleton. After all, if somebody steps up to some full 
character modeling system like the ones from BS or Autodesk or others, 
and wants to do humanoid character animation, the tool would probably 
tell you to push the Humanoid button. Then they would give you, as a 
starting point, something very close, still varies slightly between 
vendors, but they would give you an HAnim LOA2 skeleton.

With small tuning, animations developed using their typical realstic 
default skeleton will work with the default HAnim skeleton. I mean, 
remember that top toolmakers designed HAnim as best practices for 
building this stuff. I still believe VRML and X3D were specifally 
invented to do HAnim and the rest is just for scenery and effects. .

The default names may be different but the functionality of a 
forward-reverse kinimatics model which is the normative part of HAnim 
is there standing and ready for eyes to look at you.

The skeleton is made up of a hierarchy of Joint, Segment, and Site 
nodes. HAnim gives the CAESAR dimensions for Joint centers, so you can 
use this data as a guide and build the skeleton in 'human' space with 
changes to match the skeleton dimensions to some target character, 
such as yourself.

So, let's start HAnim from what is known to work for both short and 
long term. The very highest goal of HAnim is the opportunity to build 
a 'standard' character that can use 'standard' animations created for 
another 'standard' character. Likewise, animations created for your 
character can be shared with others. There are many limitations to 
this but the main ones are matching the skeleton hierarchies and the 
initial pose, the pose before animation is applied.

LEVEL1 BASIC ANIMATION
The Basic beginning animation level for X3D is that you get a skeleton 
and you hang geometery on the segments and sites. Now you rotate the 
joints in the realistic skeleton hierarchy like real life, and 
position the humanoid root relative to the 0 0 0 between the feet 
initial position. You can do a lot with this. Whatever you have bound 
to parts of the skeleton will move as the skeleton moves. Artifacts of 
this basic level of animation show creases or gaps where segment 
geometry of one segment does not match up with segment geometry of 
adjacent segments.  You can pose the character at keyframes then use 
time-based interpolation between frames to get realistic continious 
motion.

The basic mechanical parallel of this is what they called armatures, a 
'realistic' hardware model built so they could manipulatate a 
collection of possibly jointed appendages to different positions for 
each frame, then display the frames in a sequence of to make it  seem 
continious. The film example of this is work by great stop-motion 
creators to make fantasical figures for film and even tv. When we make 
this thing with a computer, then we can use interpolators and playback 
at any speed, including realtime.

LEVEL 2 BASIC ANIMATION
The next most significant basic animation level is where you make a 
continious mesh skin geometery then bind the skin to the skeleton 
joints. Still you move the skelton as described above and the skin 
mesh is moved according to joint rotations, but in addition individual 
skin vertices are displaced according to a weighted value computed by 
the influence of bound joint rotations. This produces a continious 
mesh with realistic defomation at the joints. You can also attach 
segment geometry like rings, at Site locations.

So, the two basic levels of animation styles provided in the HAnim 
model cover the most important basic parts: segment geometry, and 
deformable skin. More basic general animation techniques are provided 
by the standard capabilities of X3D. with HAnim you can build a 
'standard' skeleton and skin according to your measurements and 
animate it via the keybaoard or by importing 'standard' animations.

This is well proven with several important examples. All you gotta do 
is find a good X3D browser and a text edtor.

http://www.hypermultimedia.com/x3d/hanim/HAnimCollection20130818/HAnimCollection20130818.zip

http://www.hypermultimedia.com/x3d/hanim/HAnimCollection20130818/0MainStageScene0818.x3dv

There are both level 1 and level 2 examples in there.

Thanks and Best,
Joe

----- Original Message ----- 
From: "Leonard Daly" <Leonard.Daly at realism.com>
To: <x3d-public at web3d.org>
Sent: Thursday, October 13, 2016 5:49 PM
Subject: Re: [x3d-public] What is H-Anim?


> This may not be easy to read. The important part is X3D needs to 
> support
> deformable skin at the basic animation level (or don't bother to 
> support
> animated models). If X3D has that capability, what should be in the
> H-Anim spec.
>
>
>
>>
>> ----- Original Message ----- From: "Leonard Daly"
>> <Leonard.Daly at realism.com>
>> To: "X3D Public" <x3d-public at web3d.org>
>> Sent: Thursday, October 13, 2016 10:39 AM
>> Subject: [x3d-public] What is H-Anim?
>>
>>
>>> From reading H-Anim in detail (especially Part 1), it appears to 
>>> me
>>> that it is primarily doing two things
>>
>> Where would you get the idea that HAnim does not do deformable 
>> skin?
>
> Where did you get the idea that I said it doesn't? In fact, I 
> explicitly
> state that it does do that.
>
>
>>
>>>
>>> 1) Defining animation with deformable skin
>>>
>>
>> I would say it is defining a 'standard' skeleton with a 'standard'
>> pose that can use geometry as children of segments or a deformable
>> skin that is a child of the humanoid. Either or both segment 
>> geometry
>> and/or skin geometry can be used. The segment geometry is animated
>> when the segments move by animating the rotation of joints in the
>> skeleton hierarchy. Skin is animated by weighted displacement of
>> individual mesh vertices according to individual or multiple joint
>> rotations.
>
> Animation of deformable skin is industry standard operation. It is 
> not
> unique to 3D humans or humanoids.
>
>
>
>>
>>>
>>> 2) Define bone definition and naming for humanoids.
>>>
>>
>> Yes we have standardized names and example 'human' space dimensions
>> for Joints, Segments, and Sites
>> We don't call it a bone, we call the bone a segment.
>>
>>>
>>>  I noted that
>>> humanoids (as defined in the spec 4.2.1) are not required to have 
>>> the
>>> normal human-like appendages (1 head, 2 arms, 2 legs)
>>
>> tha spec humanoid is one of 5 defined LOAs. All LOA choices include
>> site locations for all appendages but may not include the complete
>> skeketon
>
> It may be a complete skeleton, just with 4 arms, 3 legs, and 2 
> heads.
> That is allowed in the spec.
>
>
>
>
>>
>>> [http://www.web3d.org/documents/specifications/19774-
>>> 1/V2.0/HAnim/concepts.html#HAnimFiguresOverview]
>>>
>>
>> That is just an isolated paragraph about the versatility of the 
>> basic
>> hierarchal joint model. Besides, your comment is based on a 
>> paragraph
>> that has had no vetting this round. To study the HAnim, you should
>> base it on V1.0 and figure that the CD V2.0 for Part 1 is a bit
>> scrambled and incomplete at this point relative to V1.0.
>
> V1 is over 10 years old. I don't think you want to be comparing 
> current
> industry standards to something that was done isolated from industry 
> 10
> years ago.
>
>
>>
>> All other information is clear that the target is a humanoid figure
>> with a level of articulation that depends upon the number and
>> hierarchy of the joints.
>>
>>>
>>> If X3D were to included deformable skin animation as an intrinsic 
>>> part
>>> of the X3D specification, ...
>>
>> it already does
>
> Only if the H-Anim component is used. I stated an "intrinsic" 
> meaning at
> the base level of animations.
>
>
>>
>>>  ... would #1 be required?
>>>
>>
>> Not sure what you mean. Animation of a continious mesh deformable 
>> skin
>> according to joint rotation is one feature of HAnim. Another tool 
>> for
>> deformable geometry is the DIsplacer node. All big time authoring
>> tools do these, although for many the skin animation binding target 
>> is
>> illustrated as a bone. No difference.
>
>
> I mean for all objects, not just those declared H-Anim.
>
>
>
>
>> .
>>>
>>> If not, that leaves #2. It seems to me that this section is 
>>> optional
>>>
>>
>> Hey, a general concept: To have deformable skin, you use a 
>> skeleton.
>> If not, then that technology is not avaliable to X3D. Or else you 
>> are
>> mistaking calling the dragging lumps of 'skin' geometry not 
>> connected
>> to a skeleton around from keyframe to keyframe as skin animation. 
>> That
>> is not the 'standard' sort of skin animation we do.
>
>
> Skeletons and bones do not imply a humanoid. They can be used for 
> all
> animation, including trees, animals (even octopus).
>
>
>
>>
>>> based on references in the document to "are common", "generally
>>> categorize", "may have", "model specific". It seems that if one is
>>> modeling a human (not humanoid), then this structure should be 
>>> used; but
>>> if not a human, the the variations are endless.
>>>
>>
>> True, the variations are endless, like real life except for life 
>> there
>> is an end. However, we are aiming at a 'standard' humanoid 
>> dimensioned
>> in 'human' space having a realistic skelton that can use 'standard'
>> animations.
>
> So are you saying that this is just a specification for defining how
> humanoids are rigged and animated?
>
>
>
>>
>> The actual geometry used to produce surface features of the model
>> includes any sort of X3D geomentry. For skin we seem to do best 
>> with
>> an indexed geometry since for deformable skin animation we need to
>> know the order of appearance in the user code of each vertex of the
>> skin field.
>
> Not really, that's just the way the implementation did it. The 
> important
> part is to know how much weight each bone exerts on a skin vertex. 
> How
> that is done is really implementation dependent. The spec may state 
> a
> certain manner because it is easier to handle, but it is not a
> requirement of the algorithms.
>
>
>>
>>>
>>> I think the document needs an improved focus
>>>
>>
>> True in part. Mostly it needs consolidation of important skeleton
>> realtionships and some better examples.
>>
>>>
>>> and close work with X3D WG
>>> to determine if deformable skin animation is to be included in a 
>>> future
>>> version of X3D.
>>>
>>
>> Too late, the horse is out of the barn. We do it the way everyone 
>> does
>> it. It already is included. The document is much at fault for you 
>> to
>> miss that. Look at the skinCoordIndex and skinCoordWeight fields of
>> the Joint and their descriptions.
>>
>> Why not actually look at user code of some examples and actually 
>> look
>> at some examples of this humanoid really running?
>
> Because I am looking at a much bigger picture than a particular
> implementation or example. It is important to get the big picture 
> right
> or everything else underneath it will be a kludge. The document does 
> not
> use industry standard terminology and notation. It makes general
> statements about what is required. Perhaps that is the fault of this
> version of the document; but it is very important to get the big 
> picture
> right.
>
>
>
>
>
>> See attached. Please look at the user code also. Runs best in BS
>> Contact free.
>> Sorry, as far as I know X3DOM don't do skin yet.
>> Please tell me what you think.
>>
>> I agree with your recommendation that the X3D working group should
>> look at the standard, but since deformable skin animation is 
>> included
>> in V1.0 and demonstrated by multiple X3D browsers, please pick 
>> another
>> item upon which we should make a detailed determination.
>>
>> My comment along these lines is that HAnim seems to need at least 
>> two
>> support levels:
>> 1 is just segment geometry and
>> 2 is add skin geometry.
>> because implementing 2 seems to be a large step up for some 
>> browsers
>
> That's the fault of the browsers and the spec for not pushing them.
> Blender does it, Maya does it, Unity does it, Unreal does it, (I 
> could
> add other examples here). Deformable skin needs to be part of X3D 
> V4. If
> it's not; there probably is not much purpose in supporting anything 
> but
> static models. Life is flexible. if X3D is going to model that, it 
> needs
> to be flexible too.
>
>
> Leonard Daly
>
>
>>
>> Thanks,
>> Joe
>>
>> Can't wait to see your comments on Part 2.
>>
>>
>>>
>>>
>>> -- 
>>> *Leonard Daly*
>>> 3D Systems & Cloud Consultant
>>> LA ACM SIGGRAPH Chair
>>> President, Daly Realism - /Creating the Future/
>>>
>>
>
>
> -- 
> *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