<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:732238858;
        mso-list-type:hybrid;
        mso-list-template-ids:-146264602 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0D8;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-fareast-font-family:"Times New Roman";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hi Leonard, </p><p class=MsoNormal>What do you mean when you say:</p><p class=MsoNormal>“Are you working on an understanding and implementation of H-Anim skinned animation in X3D or the more general animation of skinned surfaces that is done in Maya/Blender/+ in most every other application/use?”<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Why don’t you attempt to describe this ‘more general animation of skinned surfaces” </p><p class=MsoNormal> </p><p class=MsoNormal>Sure we could define a more general case and define some nodes outside HAnim but the technique is the same as the binding technique used for hanim. You could define nodes that duplicate the Displacer and the Joint or Segment vertex bindings and weights, and call them different names, but the functionality is not different, it is the same. </p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>If you are doing the more general case would it make more sense to get a good understanding of the process and work-flow that is used in those applications and practices?</li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Please contribute what you know  about the process and work-flow that is different. The author will define a system of joints and segments, and a mesh surface, bind each vertex to one of more actuators (Joints in case of HAnim) and assign a weight for each actuator. Of course the Displacer is different in that it can control vertices of a surface independent but additively to skeleton actuators. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What makes you think x3d V4 for hanim is really any different than hanim V1 or V2. It is all the same. If you want some new general purpose animation nodes outside of the specialized hanim case, please describe. So, there is no reason to expect any difference in hanim between hanim V1 and V2 and what will be found in X3D V4. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So, I request, please bring forward some knowledge rather than what seems to me to be an attempt to confuse rather than explain. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks and Best, </p><p class=MsoNormal>Joe</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:Leonard.Daly@realism.com">Leonard Daly</a><br><b>Sent: </b>Wednesday, November 28, 2018 4:35 PM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject: </b>Re: [x3d-public] HAnim and glTF skins</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Andreas,<br><br>I have read all of the messages with this subject. I am responding to the first one because I think that is best where my question arises.<br><br>Are you working on an understanding and implementation of H-Anim skinned animation in X3D or the more general animation of skinned surfaces that is done in Maya/Blender/+ in most every other application/use?<br><br>If you are doing the more general case would it make more sense to get a good understanding of the process and work-flow that is used in those applications and practices? <br><br>If the intent is to use H-Anim with X3D, you will need to resolve the differences between X3D V3.3/H-Anim V1.0 and X3D V4 (not yet in existence)/H-Anim V2.0 (perhaps); as you have noted in one of the other messages in this chain.<br><br><br>Leonard Daly<br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>I am collecting information on these skinning systems here:</pre><pre><o:p> </o:p></pre><pre><a href="https://github.com/andreasplesch/x3dom/wiki/HAnim-and-glTF-skins">https://github.com/andreasplesch/x3dom/wiki/HAnim-and-glTF-skins</a></pre><pre><o:p> </o:p></pre><pre>[This is a editable wiki if anybody wants to add to it]</pre><pre><o:p> </o:p></pre><pre>It looks like the less well known</pre><pre><o:p> </o:p></pre><pre>jointBindingPositions/Rotations/Scales and skinBindingCoords/Normals</pre><pre><o:p> </o:p></pre><pre>fields used for non-humanoid skeletons may be useful but I am not</pre><pre>certain how to interprete those fields. Castle may not implement those</pre><pre>as a search did not find a match ?</pre><pre><o:p> </o:p></pre><pre>My understanding is that the transformation matrix defined by these</pre><pre>fields needs to applied before joint trafos are applied. But to which</pre><pre>vertices ? The ones listed in skinBindingCoords for sure (if they are</pre><pre>indexed by skinIndex field in the joint) but how does</pre><pre>skinBindingCoords and skinCoords field interact ? Does the</pre><pre>skinBindingCoords field take precedence ? But why then have both</pre><pre>fields in the first place ?</pre><pre><o:p> </o:p></pre><pre>Could the jointBinding fields equivalently be replaced by a sub-Joint</pre><pre>node under the joint the fields map to ?</pre><pre><o:p> </o:p></pre><pre>Is there an example using these fields ?</pre><pre><o:p> </o:p></pre><pre>Thanks,</pre><pre><o:p> </o:p></pre><pre>-Andreas</pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre></blockquote><p><o:p> </o:p></p><p class=MsoNormal>-- <br><b><span style='font-size:13.5pt;color:#333366'>Leonard Daly</span></b><span style='color:#333366'><br>3D Systems & Cloud Consultant<br>LA ACM SIGGRAPH Past Chair<br>President, Daly Realism - <i>Creating the Future</i> </span><o:p></o:p></p><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p></div></body></html>