[Korea-chapter] [h-anim] composable behaviors, animations, sequencers
Joe D Williams
joedwil at earthlink.net
Tue Jul 9 10:24:17 PDT 2013
> Any other categories or use cases?
The main item seems to be that the HAnimHumanoid is in the parent
environment space and the HumanoidRoot is in skeleton space. In the
Roll animation, notice that the skeleton is moved by translating the
HumanoidRoot. If I would change this animation to instead move the
hanim_humanoid, then the visual effect is the same but I know that it
must be different because I know I want to animate the skelton in
skeleton space.
It is up to the humanoid parent environment to define where humanoid
space is located in the parent space and up to the humanoidroot to
define where skelton space is within the humanoid space.
One thing I know for sure is that for the Stop animation, I want to
set add the following to initialize both the HumanoidRoot and the the
hanim_humanoid:
...
<PositionInterpolator DEF='Stop_hanim_humanoidTransInterp'
key='0 0.5 1' keyValue='0 0 0 0 0 0 0 0 0'/>
<OrientationInterpolator DEF='Stop_hanim_humanoidRotInterp'
key='0 0.5 1' keyValue='0 0 1 0 0 0 1 0 0 0 1 0'/>
...
<ROUTE fromField='fraction_changed' fromNode='StopTimer'
toField='set_fraction' toNode='Stop_hanim_humanoidTransInterp'/>
<ROUTE fromField='fraction_changed' fromNode='StopTimer'
toField='set_fraction' toNode='Stop_hanim_humanoidRotInterp'/>
...
<ROUTE fromField='value_changed'
fromNode='Stop_hanim_humanoidTransInterp'
toField='translation' toNode='hanim_humanoid'/>
<ROUTE fromField='value_changed'
fromNode='Stop_hanim_humanoidRotInterp'
toField='rotation' toNode='hanim_humanoid'/>
That way, at least we know that the humanoid and skeleton spaces are
initially the same in those parameters. I guess it goes without saying
that others like scale would be defaults. If not, it gets more
interesting, but still ...
As shown in the following
...
<HAnimHumanoid DEF='hanim_humanoid' info=...>
<HAnimJoint DEF='hanim_HumanoidRoot' center='0 0.824 0.0277'
containerField='skeleton'... >
...
HAnimHumanoid is a slightly crippled Group node with some special
container fields and the 'hanim_HumanoidRoot' and other Joint nodes
are more like an enhanced Transform node.
Both have translation and rotation parameters.
The 'hanim_humanoid' defines humanoid space and thus where the
skeleton appears within the humanoid space with respect to the default
common 0 0 0 and 0 0 1 0 initial values.
The 'hanim_HumanoidRoot' moves around in skeleton space which by
default is the same as humanoid space, but can't really produce an
effect upon humanoid space. Changing the actual skeleton 0 0 0 can't
actually drag humanoid space 0 0 0 around.
So, at this point it still seems to me that skeleton animations need
to remain within the skeleton (animate the root).
I move the skelton around in skeleton space relative to skeleton 0 0 0
within humanoid space which in this example is also relative to the
same 0 0 0 and I don't change humanoid space.
It seems like I would want to know more about the humanoid's parent
environment before I move the humanoid and thus the skeleton root.
Another example is here:
http://www.hypermultimedia.com/x3d/hanim/JoeH-AnimKick1a.x3dv
Please note the multiple coordinate axes geometry, one of which (the
moving one) is set in skeleton dimensions relative to skeleton 0 0 0
(child of the root) and the second is fixed in the view as part of the
stage is in humanoid space relative to 0 0 0 which here is the same as
containing scene space 0 0 0. So, prior to animation, the skeleton,
humanoid, and containing scene 0 0 0 locations are all the same. As I
move the root, then the axes part of teh skeleton moves with the
skeleton.
I guess a question is: "Does animation of the skeleton 0 0 0 result in
change to its humanoid container 0 0 0?"
I think we found some interesting points when we thought of how to
configure Viewpoint locations which (1) may be user-defined Site
locations in the 'viewpoints' container in the humanoid space, and/or
(2) user-defined Site children of a Segment in skeleton space. For all
of these viewpoints, please note the hanim spec guidance to leave the
default Viewpoint position and orientation alone and instead aim it by
setting translation and rotation of the containing Site.
Thanks Again and Best Regards,
Joe
----- Original Message -----
From: "Don Brutzman" <brutzman at nps.edu>
To: "Joe D Williams" <joedwil at earthlink.net>; "Myeong Won Lee"
<mwlee at suwon.ac.kr>
Cc: <h-anim at web3d.org>; <korea-chapter at web3d.org>
Sent: Tuesday, July 09, 2013 7:45 AM
Subject: Re: [h-anim] composable behaviors, animations, sequencers
> Joe, thanks for your note, makes sense.
>
> Based on last night's work, am also thinking that there are a few
> broad categories of animation:
> - composable behaviors that animate the body itself (Walk,
> WaveLeftHand, etc.) i.e. your demonstrated set of blendable
> behaviors
> - animations that move the body from place to place
> (WalkDownTwelfthStreet, WalkInCircle, TangoMotionCapture)
> - sequencers (WalkDownTwelfthStreet, TurnAround, Wait 10s, SitDown
> at bus stop, Wait for bus, StandUp)
>
> Any other categories or use cases?
>
> Myeong Won Lee, the most helpful things we might get from you (and
> others) would be example X3D scenes from your work that we might
> test and try out.
>
> 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
More information about the Korea-chapter
mailing list