[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