<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
<html xmlns:v="urn:schemas-microsoft-com:vml" 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 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;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle22
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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:269515581;
        mso-list-type:hybrid;
        mso-list-template-ids:1232214140 -1 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:279070972;
        mso-list-type:hybrid;
        mso-list-template-ids:979421302 -149280232 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:26;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:9.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Courier New";
        color:black;}
@list l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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;}
@list l2
        {mso-list-id:885533990;
        mso-list-type:hybrid;
        mso-list-template-ids:2048180830 -1668926436 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
        {mso-level-start-at:16;
        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;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l2: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 l2: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 l2: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 l2: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 l2: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 l2: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 l2: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 l2: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;}
@list l3
        {mso-list-id:1081875706;
        mso-list-type:hybrid;
        mso-list-template-ids:1430408814 -83749796 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l3:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.25in;
        text-indent:-.25in;
        mso-ansi-font-size:11.0pt;
        font-family:"Times New Roman",serif;
        mso-ascii-font-family:Calibri;
        mso-hansi-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";
        color:windowtext;}
@list l3:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;}
@list l3:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:1.25in;
        text-indent:-9.0pt;}
@list l3:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.75in;
        text-indent:-.25in;}
@list l3:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.25in;}
@list l3:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:2.75in;
        text-indent:-9.0pt;}
@list l3:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.25in;
        text-indent:-.25in;}
@list l3:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.75in;
        text-indent:-.25in;}
@list l3:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:4.25in;
        text-indent:-9.0pt;}
@list l4
        {mso-list-id:1735396607;
        mso-list-template-ids:2133219618;}
@list l4:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l5
        {mso-list-id:1864635620;
        mso-list-template-ids:1310466454;}
@list l5:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Joe, thanks 1M for further sleuthing to figure out whether all of the fields in the Motion node of the HAnim2 spec are captured in the HAnimMotion node of the X3D4 spec.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ol style='margin-top:0in' start=1 type=1><li class=MsoListParagraph style='color:black;margin-left:-.25in;mso-list:l3 level1 lfo8'><span style='color:windowtext'>First, looking at our example BVH source, right after “</span><span style='font-size:10.0pt;font-family:"Courier New";color:windowtext'>MOTION</span><span style='color:windowtext'>” it definitely says “</span><span style='font-size:9.0pt;font-family:"Courier New";background:white'>Frames: 482”</span><span style='font-size:9.0pt;background:white'> </span><span style='background:white'>in the specification example</span><span style='font-size:9.0pt;background:white'>.</span><span style='font-size:9.0pt;font-family:"Courier New";background:white'><o:p></o:p></span></li></ol><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New";color:black;background:white'><o:p> </o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo7'>HAnim2, volume 2, Annex A.2 Motion data example with 18 joints<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo7'>https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MocapExample.html#MotionExample18Joints<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Found similar entries in our other BVH exemplars as well.  So the value can be expected in any BVH file.<o:p></o:p></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:l1 level1 lfo7'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/1.bvh<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo7'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/Pirouette.bvh<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>2. Next, carefully checking node signatures:  looks like X3D4 misaligned <span style='font-size:10.0pt;font-family:"Courier New"'>frameCount</span> field, which matches what I thought was missing.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 style='margin-left:-5.55pt;border-collapse:collapse;border:none'><tr><td style='border:none;padding:0in 0in 0in 0in' width=7><p class='MsoNormal'> </td><td width=342 valign=top style='width:256.35pt;border:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>19774 HAnim2 Volume 2, Motion data animation<o:p></o:p></p></td><td width=366 valign=top style='width:274.5pt;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>19775-1 X3D4 Architecture<o:p></o:p></p></td></tr><tr><td style='border:none;border-bottom:solid windowtext 1.0pt' width=7><p class='MsoNormal'> </td><td width=342 valign=top style='width:256.35pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><a href="https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObject">6.3 Data structure of Motion object</a><o:p></o:p></p></td><td width=366 valign=top style='width:274.5pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimMotion">26.3.4 HAnimMotion</a><o:p></o:p></p></td></tr><tr><td width=349 colspan=2 valign=top style='width:261.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><b><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>interface Motion {</span></b><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  string             description      ""<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  string             channels         ""<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  sequence<Boolean>  channelsEnabled  []<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  double             cycleTime<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  double             elapsedTime<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  Boolean            enabled          false<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  int                <span style='background:yellow;mso-highlight:yellow'>frameCount</span>       0     [0, ∞)   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  float              frameDuration    0.1   (0, ∞)   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  int                frameIncrement   1     (-∞, ∞)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  int                frameIndex       0     [0, ∞)   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  string             joints           ""<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  integer            loa              -1    [-1,4]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  Boolean            loop             false<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  Boolean            next<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  Boolean            previous<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>  sequence<float>    values           []   (-∞,∞)   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black;background:white'>}</span><span style='font-size:8.0pt'><o:p></o:p></span></p></td><td width=366 valign=top style='width:274.5pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black'>HAnimMotion : X3DChildNode {<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFBool   [in]     next<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFBool   [in]     previous<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFString [in,out] channels         ""<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>MFBool   [in,out] channelsEnabled  []<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFString [in,out] description      ""<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFBool   [in,out] enabled          TRUE<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFInt32  [in,out] endFrame         0      [0,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFTime   [in,out] frameDuration    0.1    (0,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFInt32  [in,out] frameIncrement   1      (-∞,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFInt32  [in,out] frameIndex       0      [0,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFString [in,out] joints           ""                  <o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFInt32  [in,out] loa              -1     [-1,4]<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFBool   [in,out] loop             false<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFNode   [in,out] metadata         NULL<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>                              [X3DMetadataObject]<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFInt32  [in,out] startFrame       0      [0,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>MFFloat  [in,out] values           []     (-∞,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFTime   [out]    cycleTime<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFTime   [out]    elapsedTime             (0,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:18.75pt'><span style='font-size:8.0pt;font-family:"Courier New";color:black'>SFInt32  [out]    <span style='background:yellow;mso-highlight:yellow'>frameCount</span>              [0,∞)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New";color:black'>}<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt'><o:p> </o:p></span></p></td></tr><tr><td width=349 colspan=2 valign=top style='width:261.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white'>[…]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white'>The <i>frameCount</i> field indicates the number of frames present in the animation, equaling the number of sets of channel data present in the values array.</span><b><span style='font-size:9.0pt;font-family:"Courier New";color:black;background:white'><o:p></o:p></span></b></p></td><td width=366 valign=top style='width:274.5pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:9.0pt;font-family:"Verdana",sans-serif;color:black'>HAnimMotion is used for motion animation of Humanoid characters. Raw motion data, for example, motion capture data, details the number of frames, the frame display time, and the parameter values for the motion from each channel at each frame.<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:9.0pt;font-family:"Verdana",sans-serif;color:black'>Each field is described in <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/references.html#I19774">ISO/IEC 19774</a>.</span><span style='font-size:12.0pt;font-family:"Verdana",sans-serif;color:black'><o:p></o:p></span></p></td></tr><tr height=0><td width=2 style='border:none'></td><td width=139 style='border:none'></td><td width=161 style='border:none'></td></tr></table><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So… the <span style='font-size:10.0pt;font-family:"Courier New"'>frameCount</span> field should be accessType [in out], meaning that it is a settable parameter for node initialization, and changeable if the values array is changed too.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Knowing the value for <span style='font-size:10.0pt;font-family:"Courier New"'>frameCount</span> field lets the <span style='font-size:10.0pt;font-family:"Courier New"'>values</span> table to get set up and initialized with correct dimensions.  This is also a useful property for authors setting up frame-animation widgets (such as DVD-style controls).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Excellent improvement, and a necessary correction.  No changes (and great foresight) in HAnim2.  I will update Mantis 1415, X3D XML Schema and DTD, X3DUOM, X3D Tooltips and X3D-Edit accordingly.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Have fun implementing + evaluating X3D4 + HAnim2!  8)<o:p></o:p></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'>faculty.nps.edu/brutzman<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> Joseph D Williams <joedwil@earthlink.net> <br><b>Sent:</b> Wednesday, December 28, 2022 12:36 PM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu>; X3D Public Mailing List (x3d-public@web3d.org) <x3d-public@web3d.org>; h-anim@web3d.org<br><b>Subject:</b> RE: [x3d-public] Mantis 1415: HAnimMotion issues: skeletalConfiguration,totalNumberFrames<o:p></o:p></p></div></div><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Sent: </b>Monday, December 26, 2022 6:19 PM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Public Mailing List (x3d-public@web3d.org)</a>; <a href="mailto:h-anim@web3d.org">h-anim@web3d.org</a><br><b>Subject: </b>[x3d-public] Mantis 1415: HAnimMotion issues: skeletalConfiguration,totalNumberFrames<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Comment requested.<o:p></o:p></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:l2 level1 lfo6'><a href="https://www.web3d.org/member-only/mantis/view.php?id=1415">https://www.web3d.org/member-only/mantis/view.php?id=1415</a><o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#EBEBEB'>1. HAnimMotion should have a skeletalConfiguration field similar to HAnimHumanoid to facilitate interoperability.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#EBEBEB'>SFString [in out] skeletalConfiguration "BASIC"</span><br clear=all><br clear=all><span style='background:#EBEBEB'>* HAnim2 vol. 1, 4.8 Modelling of humanoids</span><br clear=all><span style='background:#EBEBEB'>* </span></span><a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#ModellingOfHumanoids"><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:royalblue;background:#EBEBEB;text-decoration:none'>https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#ModellingOfHumanoids</span></a><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#EBEBEB'>* X3D Architecture, 26.3.2 HAnimHumanoid</span><br clear=all><span style='background:#EBEBEB'>* </span></span><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid"><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:royalblue;background:#EBEBEB;text-decoration:none'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid</span></a><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#EBEBEB'>----</span><br clear=all><br clear=all><span style='background:#EBEBEB'>2. Need a field describing number of rows in a motion value array, otherwise (if no channelsEnabled array is provided) there is no unambiguous way to determine the correct value. Suggested:</span><br clear=all><br clear=all><span style='background:#EBEBEB'>SFInt32 [in out] totalNumberFrames [0, +infinity)</span><br clear=all><br clear=all><span style='background:#EBEBEB'>* HAnim2 vol. 2, 6.3 Data structure of Motion object</span><br clear=all><span style='background:#EBEBEB'>* </span></span><a href="https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObject"><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:royalblue;background:#EBEBEB;text-decoration:none'>https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObject</span></a><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#EBEBEB'>* X3D Architecture, 26.3.4 HAnimMotion</span><br clear=all><span style='background:#EBEBEB'>* </span></span><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimMotion"><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:royalblue;background:#EBEBEB;text-decoration:none'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimMotion</span></a><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#EBEBEB'>----</span><br clear=all><br clear=all><span style='background:#EBEBEB'>3. If accepted, each of these needs a corresponding Mantis comment for future revision of HAnim2.</span></span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'>faculty.nps.edu/brutzman<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>