[x3d-public] Wrong type for default HAnimMotion.channels
Joseph D Williams
joedwil at earthlink.net
Mon Jun 22 15:42:29 PDT 2020
Sorry I missed so much of this conversation.
But, the joint names must match in both places for this to work and so Humanoid joints and Humanoid Jotion joints strings must match and so they should look the same, and enumerated MF strings if you want to import ‘standard’ capture data.
Just like if you were matching typical Route data from timer-interpolater code, you gotta get the Joint DEF names right, in this, you gotta get the joint names to match.
Thanks Again,
Joe
Sent from Mail for Windows 10
From: John Carlson
Sent: Saturday, June 20, 2020 1:30 PM
To: Don Brutzman
Cc: X3D Graphics public mailing list; Humanoid Animation (HAnim) Working Group
Subject: Re: [x3d-public] Wrong type for default HAnimMotion.channels
Don, also change examples in HAnim 2 standard, if there are any.
Thanks,
John
On Sat, Jun 20, 2020 at 12:47 PM Don Brutzman <brutzman at nps.edu> wrote:
[added: HAnim working group]
Hmmm, I think the comparison reveals a potential flaw in the specifications.
On 6/18/2020 11:19 PM, J. Scheurich wrote:> HAnimMotion : X3DChildNode
SFString [in,out] channels []
>
> Shouldnt it be
> HAnimMotion : X3DChildNode
> SFString [in,out] channels ""
Default value [] corresponds to MFString, default value "" corresponds to SFString. You've found a mismatch.
Investigating further:
===================================================================
[1] HAnim Part 2: Humanoid animation (HAnim) motion data animation
6 HAnim motion data animation using Motion objects
6.3 Data structure of Motion object
https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObject
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 [] (-∞,∞)
}
"The channels field consists of a list, for each joint, of the number of channels for transformation, followed by the transformation type of each channel of data for that joint. Each value shall be separated by a comma and/or one or more spaces. Channels within a given Motion object are enabled by default, unless otherwise indicated by the corresponding Boolean entry in the channelsEnabled field."
===================================================================
[2] X3D4 Part 1: Architecture and base components
26 Humanoid Animation (HAnimH-Anim) component
26.3.4 HAnimMotion
HAnimMotion : X3DChildNode {
SFString [in,out] channels []
MFBool [in,out] channelsEnabled []
SFTime [out] cycleTime
SFString [in,out] description ""
SFTime [out] elapsedTime (0,∞)
SFBool [in,out] enabled TRUE
SFInt32 [out] frameCount [0,∞)
SFTime [in,out] frameDuration 0.1 (0,∞)
SFInt32 [in,out] frameIncrement 1 (-∞,∞)
SFInt32 [in,out] frameIndex 0 (0,∞)
MFString [in,out] joints []
SFInt32 [in,out] loa -1 [-1,4]
SFBool [in,out] loop false
SFNode [in,out] metadata NULL [X3DMetadataObject]
SFBool [in] next
SFBool [in] previous
MFFloat [in,out] values [] (-∞,∞)
}
===================================================================
The HAnim2 specification is the governing reference.
It appears crystal clear that the channels field is a list.
Therefore you have found an important error - great work! As remedy, we should have the following interface definitions:
HAnim2 change:
string channels ""
to
sequence<string> channels ""
and corresponding X3D4 change:
SFString [in,out] channels []
to
MFString [in,out] channels []
Meanwhile it looks like the corresponding channelsEnabled field is properly defined, and having both fields (channels and channelsEnabled) as matching list/MF array types simplifies implementation considerably.
Looking forward to review and confirmation, improvement and resolution. Have entered a pair of Mantis issues needed to correct each specification:
[3] Mantis 1311: Incorrect type defined for HAnimMotion channels field in HAnim2
https://www.web3d.org/member-only/mantis/view.php?id=1311
[4] Mantis 1312: Mismatched type defined for HAnimMotion channels field in X3D4
https://www.web3d.org/member-only/mantis/view.php?id=1312
As ever, we continue review discussion of issues on mailing lists, and the specification editors use Mantis issue to track consensus and resolution of changes.
Thanks for reporting this problem. Good luck with further implementation/evaluation efforts (of cool content!) to confirm/improve the HAnim2 and X3D4 specifications.
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 http://faculty.nps.edu/brutzman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200622/69ac228b/attachment.html>
More information about the x3d-public
mailing list