[x3d-public] Mantis 1415: HAnimMotion issues: skeletalConfiguration, totalNumberFrames

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Wed Dec 28 17:43:05 PST 2022


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.



1.	First, looking at our example BVH source, right after “MOTION” it
definitely says “Frames: 482” in the specification example.



*	HAnim2, volume 2, Annex A.2 Motion data example with 18 joints
*	https://www.web3d.org/documents/specifications/19774/V2.0/MotionData
Animation/MocapExample.html#MotionExample18Joints



Found similar entries in our other BVH exemplars as well.  So the value can
be expected in any BVH file.



*	https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionA
nimation/1.bvh
*	https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionA
nimation/Pirouette.bvh



2. Next, carefully checking node signatures:  looks like X3D4 misaligned
frameCount field, which matches what I thought was missing.





19774 HAnim2 Volume 2, Motion data animation

19775-1 X3D4 Architecture



6.3 Data structure of Motion object
<https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimati
on/MotionNodes.html#MotionObject>

26.3.4 HAnimMotion
<https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01
/components/hanim.html#HAnimMotion>


interface Motion {

 string             description      ""

  string             channels         ""

  sequence<Boolean>  channelsEnabled  []

 double             cycleTime

 double             elapsedTime

  Boolean            enabled          false

  int                frameCount       0     [0, ∞)

  float              frameDuration    0.1   (0, ∞)

 int                frameIncrement   1     (-∞, ∞)

 int                frameIndex       0     [0, ∞)

 string             joints           ""

  integer            loa              -1    [-1,4]

  Boolean            loop             false

 Boolean            next

  Boolean            previous

  sequence<float>    values           []   (-∞,∞)

}

HAnimMotion : X3DChildNode {

SFBool   [in]     next

SFBool   [in]     previous

SFString [in,out] channels         ""

MFBool   [in,out] channelsEnabled  []

SFString [in,out] description      ""

SFBool   [in,out] enabled          TRUE

SFInt32  [in,out] endFrame         0      [0,∞)

SFTime   [in,out] frameDuration    0.1    (0,∞)

SFInt32  [in,out] frameIncrement   1      (-∞,∞)

SFInt32  [in,out] frameIndex       0      [0,∞)

SFString [in,out] joints           ""

SFInt32  [in,out] loa              -1     [-1,4]

SFBool   [in,out] loop             false

SFNode   [in,out] metadata         NULL

                              [X3DMetadataObject]

SFInt32  [in,out] startFrame       0      [0,∞)

MFFloat  [in,out] values           []     (-∞,∞)

SFTime   [out]    cycleTime

SFTime   [out]    elapsedTime             (0,∞)

SFInt32  [out]    frameCount              [0,∞)

}




[…]



The frameCount field indicates the number of frames present in the
animation, equaling the number of sets of channel data present in the values
array.

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.

Each field is described in ISO/IEC 19774
<https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01
/references.html#I19774> .





So… the frameCount 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.



Knowing the value for frameCount field lets the values 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).



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.



Have fun implementing + evaluating X3D4 + HAnim2!  8)



all the best, Don

--

Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu

Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149

X3D graphics, virtual worlds, Navy robotics https://
faculty.nps.edu/brutzman



From: Joseph D Williams <joedwil at earthlink.net>
Sent: Wednesday, December 28, 2022 12:36 PM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; X3D Public Mailing List
(x3d-public at web3d.org) <x3d-public at web3d.org>; h-anim at web3d.org
Subject: RE: [x3d-public] Mantis 1415: HAnimMotion issues:
skeletalConfiguration,totalNumberFrames

From: Brutzman, Donald (Don) (CIV) <mailto:brutzman at nps.edu>
Sent: Monday, December 26, 2022 6:19 PM
To: X3D Public Mailing List (x3d-public at web3d.org) <mailto:x3d-public at web3d.
org> ; h-anim at web3d.org <mailto:h-anim at web3d.org>
Subject: [x3d-public] Mantis 1415: HAnimMotion issues:
skeletalConfiguration,totalNumberFrames



Comment requested.



*	https://www.web3d.org/member-only/mantis/view.php?id=1415



1. HAnimMotion should have a skeletalConfiguration field similar to
HAnimHumanoid to facilitate interoperability.

SFString [in out] skeletalConfiguration "BASIC"

* HAnim2 vol. 1, 4.8 Modelling of humanoids
*
<https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/conc
epts.html#ModellingOfHumanoids>
https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/conce
pts.html#ModellingOfHumanoids

* X3D Architecture, 26.3.2 HAnimHumanoid
*
<https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01
/components/hanim.html#HAnimHumanoid>
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/
components/hanim.html#HAnimHumanoid

----

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:

SFInt32 [in out] totalNumberFrames [0, +infinity)

* HAnim2 vol. 2, 6.3 Data structure of Motion object
*
<https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimati
on/MotionNodes.html#MotionObject>
https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimatio
n/MotionNodes.html#MotionObject

* X3D Architecture, 26.3.4 HAnimMotion
*
<https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01
/components/hanim.html#HAnimMotion>
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/
components/hanim.html#HAnimMotion

----

3. If accepted, each of these needs a corresponding Mantis comment for
future revision of HAnim2.



all the best, Don

--

Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu
<mailto:brutzman at nps.edu>

Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149

X3D graphics, virtual worlds, Navy robotics https://
faculty.nps.edu/brutzman





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20221229/ee2ed6a9/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5353 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20221229/ee2ed6a9/attachment-0001.p7s>


More information about the x3d-public mailing list