<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;">The x y z order and intention of these euler angle forms can vary.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">From references and from the pov of the model (you looking at you),</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">usual set is +z up, +x is forward (default model gaze direction), </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">and +y increases towards model left (viewer right).</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">This compares with the x3d (same as default webgl) model</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">coordinate system with +x increase toward model left, </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">+y up, and model gaze toward +z.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">From pov of model, Right-hand rule for + and - axis direction</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">of rotation. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">If you are positioned on the default Transform facing +z, </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">the x y z is pitch, yaw, roll. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">What is the reliable transformation between these</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">from what is found in the BVH if confirmed to be</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">a set of properly labelled x and y and z angles </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">for each keyframe? </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Incidentally, this borders on another interoperability</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">opportunity when it is desired <span style="font-size: 12pt;">to produce </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="font-size: 12pt;">conversion of a model drawn and </span>animated in</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">the +z up system that is intended <span style="font-size: 12pt;">for use in </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="font-size: 12pt;">the +</span>y<span style="font-size: 12pt;"> up system. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="font-size: 12pt;">And, it turns out, commonly </span> from +y up to +z up. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Please remember, we need to consider all of </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">models, animations, and viewpoints. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">First, at least the BVH will tell us what </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">data the file defines as x and y and z axis.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">So it if comes in as z and y and x, or other,</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">then we sort to x and y and z order.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">The next question is if the Joint centers are</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">given as relative to each other, or to 0 0 0.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">If the DCC did not include 'center' as a standard</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Transform parameter, then the joint nodes xyz may</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">be located relative to the first joint node, which</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">may be set <span style="font-size: 12pt;">relative to 0 0 0. Then, child nodes </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="font-size: 12pt;">translation is relative to its </span>parent in the hierarchy. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">We can mostly tell whether the joint center of rotation</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">value is set by absolute center relative to 0 0 0, or</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">relative to each other by looking at animation data.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">If the effective joint center value is given as relative</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">to its parent, then the skeleton is really only useful</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">at authortime. The skeleton can be posed and the </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">DCC records the each joint translation and rotation</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">for the keyframe. The animation data for delivery then</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">consists of translation and rotation data for each</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">joint for each frame. At runtime the skeleton is</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">not really treated as a hierarchy, but just a</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">set of nodes that get positioned and rotated,</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">actually <span style="font-size: 12pt;">independently of each other for each frame.</span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">So, if you find animation data for both translation</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">and rotation for each joint for each frame, then</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">the skeleton joint data must mostly certainly </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">be processed by accumulating the relative</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">values according to given hierarchy to find the</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">actual joint centers for the skeleton. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">On the other hand, if the data consists only of</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">rotation data for each Joint, then the runtime is</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">using the hierarchy to do the work of positioning</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">child joints according to rotation of parent hierarchy.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">For all to see, this points at the skill and wisdom</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">of the people, mainly animators, that determined</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">our Transform shall include a center value.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">They saw that animating a hierarchy with a center </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">value that is relative to the translation value gave</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">power that extended both authortime and runtime</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">control capabilities.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Thanks and Always More Fun with Transform center</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Joe </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>Sent: Oct 25, 2025 11:36 AM<br>To: Don Brutzman <don.brutzman@gmail.com>, Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>Cc: Bergstrom, Aaron <aaron.bergstrom@und.edu><br>Subject: Re: [x3d-public] Maya/RawKee first HAnimMotion export test</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div class="WordSection1">
<p class="MsoNormal">Don,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">To be honest, I’m surprised the HAnimMotion export actually worked as I made some educated guesses at some things based on the what I could gather from the spec and the “KoreanCharacterMotionAnnexD01Jin.x3d” example… and Holger’s related email.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The Advanced Skeleton character rigs like Conan aren’t good use-cases when it comes to standardized HAnim skeletons above LOA 0. Other than the root node, the Conan character’s pseudo “drawlabel” Maya attributes (which correspond to the HAnimJoint node’s “name” fields) aren’t filled in.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">If the Maya joint’s “drawlabel” pseudo attribute is empty at export time, I have RawKee populate it using the HAnimJoint’s DEF value. This then exports the HAnimJoint’s “name” field with the same value as it’s DEF. I’m doing this just so there can be matching “name/joints” values between the joint and motion nodes for export testing the. But this only happens if “drawlabel” is empty.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Next week, Ariann (our DREAM Lab artist) will begin making original Maya characters whose joint nodes will have “drawlabel” pseudo attributes set to the proper HAnimJoint “name” values. When these characters are exported, their motion nodes will be using the standard LOA HAnimJoint “name” field values.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">After sleeping on it, I decided that there is a simple technical way to setup the HAnimMotion node export with a ZXY rotation order (or any rotation order).</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">It will require me to change a bunch of GUI and scenegraph traversal code. So it’s simple in that it’s technically simple in Maya if I had programmed it that way in the first place, but not so simple since I have to change a bunch of code.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">But it doesn’t require any real brain power on my part. It’ll just require me to grind out the coding changes. The nice-to-have features from others’ feedback on RawKee’s HAnim export are starting to stack up, so I’m going to put in the effort to make all of these changes.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">And I need to make some major GUI changes anyway… the GUI changes are the tedious time-consuming part.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I hope to have those revisions completed by the end of Nov… maybe sooner, but maybe more like the end of the year depending how much time I devote to the USD-to-X3D file translator.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Aaron</p>
<p class="MsoNormal"> </p>
<div style="border: none; border-top: solid #E1E1E1 1.0pt; padding: 3.0pt 0in 0in 0in;">
<p class="MsoNormal"><strong>From:</strong> Don Brutzman <don.brutzman@gmail.com> <br><strong>Sent:</strong> Saturday, October 25, 2025 11:47 AM<br><strong>To:</strong> Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br><strong>Cc:</strong> Bergstrom, Aaron <aaron.bergstrom@und.edu><br><strong>Subject:</strong> Re: [x3d-public] Maya/RawKee first HAnimMotion export test</p>
</div>
<p class="MsoNormal"> </p>
<div>
<div>
<p class="MsoNormal">Wow Aaron this is so great! LOL! <span style="font-family: 'Segoe UI Emoji',sans-serif;">😄</span> <span style="font-family: 'Segoe UI Emoji',sans-serif;">👍</span></p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Observations:</p>
</div>
<div>
<ul type="disc">
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1;">We have seen many variations in XYZ rotation ordering over the years, and should not expect to define the "right" ordering. Rather we do have to map inconsistencies to a common approach if we want repeatable animation.</li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1;">There is a very easy, simple technique to avoid mathematical manipulations when shifting coordinate frames. Simply have three nested Transform nodes for Roll Pitch Yaw (or whatever they are being called) and set values on each individually.</li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1;">These are computationally very efficient. Browsers likely do that automatically when computing the transformation matrix.</li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1;">X3D-Edit Transform node includes a "rotation calculator" that let's an author do that at modeling time, if you want to go further and look for example code.</li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1;">The three-nested-Transform-nodes approach is described in X3D for Web Authors book chapter, slideset, and examples.</li>
</ul>
<div>
<p class="MsoNormal">and</p>
</div>
</div>
<div>
<ul type="disc">
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2;">HAnimMotion node carefully includes most of the structural animation found in a BVH file for the same very-good reasons</li>
</ul>
<ul type="disc">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo2;">the <em>joints </em>field lists names what HAnimHumanoid joints are being animated, in order</li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo2;">the <em>channels </em>field lists has corresponding information for each joint, describing how many values are found in a row/frame and what axis they correspond to</li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo2;">thus there is no ambiguity when parsing the <em>values</em> array of frame-by-frame data regarding exactly which rotations go where</li>
</ul>
</ul>
<ul type="disc">
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2;">Example from KoreanCharacterMotionAnnexD01Jin.x3d</li>
</ul>
<ul type="disc">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo2;"><HAnimMotion DEF='hanim_motion_animation' containerField='motions'</li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo2;">description='BVH-derived dance movement' enabled='true' </li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo2;">channels='6 Xposition Yposition Zposition Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation 3 Zrotation Xrotation Yrotation' </li>
<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo2;">joints='HumanoidRoot l_hip l_knee l_talocrural r_hip r_knee r_talocrural vl5 IGNORED l_shoulder l_elbow l_radiocarpal IGNORED r_shoulder r_elbow r_radiocarpal IGNORED skullbase' loop='true' name='motion_animation' </li>
</ul>
</ul>
</div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-family: 'Arial',sans-serif; color: #222222;">Appreciate your careful diligence with these twists and turns. Such things are never easy to get exactly correct, but when we align with a shared common standard then we only have to succeed once!</span></p>
</div>
<div>
<p class="MsoNormal"><span style="color: #222222;"> </span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: 'Arial',sans-serif; color: #222222;">p.s. endless improvement department: gee when designing HAnimMotion node, i wish we had called the <em>names</em> field <em>jointNames </em>instead for correctness.</span></p>
</div>
<div>
<p class="MsoNormal"><span style="color: #222222;"> </span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: 'Courier New'; color: #222222;">all the best, Don</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: 'Courier New'; color: #222222;">-- </span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: 'Courier New'; color: #222222;">X3D Graphics, Maritime Robotics, Distributed Simulation</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: 'Courier New'; color: #222222;">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank" rel="noopener">https://RelativeMotion.info</a></span></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"> </p>
</div>
<p class="MsoNormal"> </p>
<div>
<div>
<p class="MsoNormal">On Fri, Oct 24, 2025 at 8:03 PM Bergstrom, Aaron via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>> wrote:</p>
</div>
<blockquote style="border: none; border-left: solid #CCCCCC 1.0pt; padding: 0in 0in 0in 6.0pt; margin-left: 4.8pt; margin-right: 0in;">
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">I successfully implemented HAnimMotion node export from Maya using RawKee.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">You can see a video of the result running in Sunrize</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><a href="https://drive.google.com/file/d/1JBe6kO1UnbsXvfpMKfI-75DhpDdzng-L/view?usp=sharing" target="_blank" rel="noopener">https://drive.google.com/file/d/1JBe6kO1UnbsXvfpMKfI-75DhpDdzng-L/view?usp=sharing</a></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">If you look closely, you will notice that the rotation values are in the following order:</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">Xrotation Yrotation Zrotation</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">This is different from the recommend rotation order of:</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">Zrotation Xrotation Yrotation</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">Here is my justification.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">I’m guessing that mocap systems that use BVH to record data have a rotation order of ZXY.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">However, characters in Maya, at least the ones that I have worked with, have a joint rotation order of XYZ.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">Maya allows the artist to choose the rotation order of its joints. So I wrote the exporter so that it would export HAnimMotion nodes based on the joint rotation order chosen by the artist.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">The Conan character’s joint rotation order in Maya is XYZ.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">From what I can tell, this is allowed by the spec, even though it might not be the recommended practice.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">It’s just not worth effort for me to do all the math required to force the animator to use an ZXY joint rotation order. Because that would completely mess up the animation within Maya.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">The animation in the video looks slightly different than the TimeSensor/Interpolator version of the same animation, because the HAnimMotion version doesn’t export all the joint “translation” animations used by the Advanced Skelton tool.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">This is actually not a problem, as I only told it to export the joint position of the root joint node, but all the rotation values for the entire skeleton. I could have just as easily had RawKee export all the Position and Rotation information for all the joint nodes.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">We can debate whether or not I should allow anything other than ZXY joint rotation order, and we can debate whether I should allow position data to be exported for all joints, but it’s essentially working</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">RawKee can now export HAnimMotion nodes.</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"> </p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;">I’ll make a new release available once I’ve cleaned up a couple GUI issues and I enable AudioClip and MovieTexture support.</p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank" rel="noopener">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></p>
</div>
</blockquote>
</div>
</div>
</div>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>