Difference between revisions of "H-Anim"
m (cut the conversion content to paste in usage (authoring) section) |
|||
Line 314: | Line 314: | ||
Given these definitions, we will need to convert the BVH orientation to X3D rotation. | Given these definitions, we will need to convert the BVH orientation to X3D rotation. | ||
Ordinarily in 3D graphics this is performed using a 3x3 or 4x4 transformation matrix. | Ordinarily in 3D graphics this is performed using a 3x3 or 4x4 transformation matrix. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 17:50, 23 April 2014
Contents
Meetings
- Working Group: Wednesday, 5pm, PDT or PST for 1 hour
- Next: April 23rd (Wednesday) at 5:00pm PDT
- Agenda and Minutes
- International Standards Organization (ISO)
Work
Governance
- Chairpersons: Myeong Won Lee, William O. Glascoe III
- Members: Joe Williams (Subject Matter Expert), Don Brutzman, Richard Puk, Sandy Ressler, Keith Victor, David Bruner, Anita Havele, Jung-Ju Choi, Kwan-Hee Yoo
- Charter
- Strategic Plan
- Marketing Plan
- Strategic Report
Specifications
Users
Partners
Usage
Technologies
Sciences
Resources
- Open Virtual Reality Testbed [1] for Open Virtual Reality Testbed page on human joint types and counts
- H-Anim Executive Summary for more Working Group information
- H-Anim working group
- Humanoid Animation V1.0 Specification (.zip)
- H-Anim Examples in the X3D Basic Examples Archive
Procedure for H-Anim character design
H-Anim wrl to x3d converter
- Converter from H-Anim WRL to H-Anim X3D
- test version
H-Anim LOA Figures
- LOA1 example figures: Media:BonesAllSkeletonFrontView LOA1.png and Media:JointNamesLOA1.png
Media:BonesAllSkeletonFrontView LOA1n.png
- LOA2 example figure: Media:BonesAllSkeletonFrontView LOA2.png
Media:BonesAllSkeletonFrontView LOA2n.png
- LOA3 example figure: Media:BonesAllSkeletonFrontView LOA3.png
Media:BonesAllSkeletonFrontView LOA3n.png
The background skeleton and images for the human skeleton can be found in the Basic Medical examples archive:
- H-Anim examples archive:
H-Anim Behavior Prototypes
Prototypes for HAnimBehavior node, which collects OrientationInterpolators for aggregate animation of an H-Anim humanoid model, and HAnimBodyBehaviorChooser, which selects one body and enables/disables multiple aggregate behaviors.
- http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/
- http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/Web3D2007BlendedBehaviorsChangeableBodies.pdf
- http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/ApaydinThesis.pdf
H-Anim examples designed with a general tool (10 H-Anim characters)
- 1Jin wrl, x3d, texture image
- 2Chul wrl, x3d, texture image
- 3Hyun wrl, x3d, texture image
- 4Young wrl, x3d, texture image
- 5Ju wrl, x3d, texture image
- 6Ga wrl, x3d, texture image
- 7No wrl, x3d, texture image
- 8Da wrl, x3d, texture image
- 9Ru wrl, x3d, texture image
- 10Mi wrl, x3d, texture image
Current Work
Working group chairs keep the following pages up to date:
- Humanoid Animation (H-Anim) overview on web3d.org site
- This wiki page
Joe and Don are working each Monday night [1700-1900 pacific, Web3D teleconference line) on
- Confirming first the status of all current work relative to the approved H-Anim Specification
- X3D Basic Examples for H-Anim
- X3D tooltips, X3D DOCTYPE Documentation and X3D Schema Documentation for the H-Anim nodes
- X3D Player Support for H-Anim
- X3D Authoring Tool Support for H-Anim including X3D-Edit
- X3D Quality Assurance (QA) and X3D Validator
- As those issues get sorted out, we are re-visiting all the important details regarding H-Anim skinning
- Definitions, example test scenes, tool support
- Proposing an improved H-Anim component for X3D v3.4
- Editing a corresponding update to H-Anim ISO 19774 Specification
The larger group is also working on
- interoperable, swappable behaviors
- motion capture
- facial animation
Anthropometry
Published References for review and citation
Professional Societies: Professional Certifications, Licenses in Anthropometry International Standards: ISO - Basic human body measurements for technological design -- Part 1: Body measurement definitions and landmarks IEEE -
North American Standards:
ANSI
South, Central, Latin American Standards:
European, Middle Eastern and African Standards:
Asian Standards:
Before
This wiki page is the site for the recently renewed Humanoid Animation (H-Anim) Working Group.
Humanoid Animation (H-Anim) WG Meeting
- H-Anim WG Meeting at Web3D Conference & SIGGRAPH 2012, Los Angeles, USA, August 3, 2012
- Teleconferences: 1st Wednesday at 9:00am PDT every month
- Our August 2012 meeting will be replaced by the face-to-face H-Anim WG meeting (Hilton Checkers Hotel, 03 August at 16:00).
March 2012: H-Anim Working Group Draft Charter materials by Web3D Korean Chapter
Links of interest:
- H-Anim Executive Summary for more Working Group information
- H-Anim working group
- Humanoid Animation V1.0 Specification (.zip)
- H-Anim Examples in the X3D Basic Examples Archive
There has been previous work by the H-Anim working group during 2008-2009 that was not completed. Here are some additional links on the members-only wiki:
- Web3D members-only H-Anim wiki
- Accommodating Diverse Models (also linked there for members: Proposed amendment to H-Anim Specification)
- Proposed amendment to H-Anim Specification
- TODO list progress and problems
- TODO determine visibility permissions for items on the members-only sites (this is a decision by the working group, assuming that no proprietary information is included)
- TODO find prior working group charter
Much additional work has been proposed by the Korea Chapter.
- Definition of a humanoid character model capable of generating motion from captured motion data
- Definition of a humanoid character model capable of generating motion using a general motion definition such as keyframe, interpolation, kinematics and dynamics for human figures.
- Definition of motion parameters for transferring or exchanging motion between different human character models
- Definition of motion data interface for including motion data
- Definition of behavior modeling data
- Definition of motion viewer’s functionality
- Video human functionality and gestures will be considered in AR/MR working group efforts
We agreed on the 1 Feb 2012 teleconference that it is a good idea to document work on these many good ideas using this H-Anim public wiki. Further comment is welcome about this.
The main thing that is needed next is to get the H-Anim Working Group restarted and rejuvenated.
- H-Anim WG Charter
- TODO: we need 1-2 members who are willing to volunteer to serve as working group co-chairs.
- Working Draft for the H-Anim motion definition (in preparation) H-Anim Motion Definition
William's Section!
Human joint articulation of any type (there are six: ball & socket, elbow, gliding, hinge, hip, and saddle joints) can be expressed using Euler angles or quaternions. The word quaternion is modified based on how it is used--rotation, orientation or attitude modifiers are germane but there are others for different use cases. There are multiple approaches to convert Euler angles into quaternions (http://en.wikipedia.org/wiki/Hamilton_product#Hamilton_product, http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation).
BVH mocap conversion to X3D interpolators
Myeong Won Lee example: http://web3d.org/wiki/images/4/4b/197_a.bvh.txt
Proposed investigation procedure: divide and conquer! Let's take each skeleton apart and put them back together again.
1. Is there an X3D H-Anim skeleton that corresponds to the BVH ROOT/JOINT HIERARCHY?
The structures used by BVH and H-Anim are different. There is not a direct correspondence between them. Differences include:
- The hierarchical nesting of parent-child relationships is different
- Values are therefore in different coordinate frames (one might be relative to parent joint, the other absolute coordinates for the human)
- Formats are quite different
- (others will be listed here)
2. However many similarities also exist. Maybe they can be exploited?
Perhaps we can build a mapping between the two. If we perform rotation transformations, a conversion algorithm can be computed for each hierarchy and corresponding units.
Here is a possible set of correspondences between a BVH model and an X3D H-Anim LOA-1 model.
- BVH :: X3D H-Anim
- ROOT :: HAnimHumanoid
- JOINT :: HAnimJoint
- JOINT name:: HAnimJoint name
- OFFSET :: HAnimJoint center
- CHANNEL definitions :: HAnimJoint rotation, translation
- MOTION array of Euler-degree rotations :: OrientationInterpolator MFRotation array with ROUTE connections
- CHANNEL array of position translations :: PositionInterpolator MFVec3f array with ROUTE connections
- End Site :: HAnimSite
- Anything else?
TODO
- map the BVH names to the approved H-Anim X3D names.
3. Once we have the skeleton mapping, we can work on the animation values.
Let's look at the BVH file next. Hypothesis:
- BVH MOTION arrays providing Zrotation Xrotation Yrotation values
to
- corresponding MFRotation arrays with 4-tuple SFRotation values
Example reconstruction follows. First is an extract from the BVH file, then a counting exercise of how many floats appear.
* ROOT Hips CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation * JOINT Chest CHANNELS 3 Zrotation Xrotation Yrotation * JOINT LeftCollar CHANNELS 3 Zrotation Xrotation Yrotation * JOINT LeftShoulder CHANNELS 3 Zrotation Xrotation Yrotation * JOINT LeftElbow CHANNELS 3 Zrotation Xrotation Yrotation * JOINT LeftWrist CHANNELS 3 Zrotation Xrotation Yrotation * JOINT RightCollar CHANNELS 3 Zrotation Xrotation Yrotation * JOINT RightShoulder CHANNELS 3 Zrotation Xrotation Yrotation * JOINT RightElbow CHANNELS 3 Zrotation Xrotation Yrotation * JOINT RightWrist CHANNELS 3 Zrotation Xrotation * JOINT Neck CHANNELS 3 Zrotation Xrotation Yrotation * JOINT Head CHANNELS 3 Zrotation Xrotation Yrotation * JOINT LeftHip CHANNELS 3 Zrotation Xrotation Yrotation * JOINT LeftKnee CHANNELS 3 Zrotation Xrotation Yrotation * JOINT LeftAnkle CHANNELS 3 Zrotation Xrotation Yrotation * JOINT RightHip CHANNELS 3 Zrotation Xrotation Yrotation * JOINT RightKnee CHANNELS 3 Zrotation Xrotation Yrotation * JOINT RightAnkle * CHANNELS 3 Zrotation Xrotation Yrotation
Defines a MOTION array consisting of numeric values:
3 floats [Hip location] 3 floats [Hip rotation] 3 floats [Chest rotation] 3 floats [LeftCollar rotation] 3 floats [LeftShoulder rotation] 3 floats [LeftElbow rotation] 3 floats [LeftWrist rotation] 3 floats [RightCollar rotation] 3 floats [RightShoulder rotation] 3 floats [RightElbow rotation] 3 floats [RightWrist rotation] 3 floats [Neck rotation] 3 floats [Head rotation] 3 floats [LeftHip rotation] 3 floats [LeftKnee rotation] 3 floats [LeftAnkle rotation] 3 floats [RightHip rotation] 3 floats [RightKnee rotation] 3 floats [RightAnkle rotation] = 19*3 = 54 floats
Each line of the MOTION data has 19 triples. Therefore we do have a good match.
4. Units
Length
- BVH position units: author-defined, arbitrary - no fixed units, apparently (TODO confirm)
- X3D position units: 3-tuple x-y-z meters relative to point between feet on floor
Some scaling may be needed to get from BVH to X3D, either by a Transform scale or by a UNIT statement.
Angle
- BVH orientation units: (Zrotation Xrotation Yrotation) Euler angles in degrees. Note that order may vary. (TODO confirm)
- X3D rotation units: SFRotation 4-tuple (normalized x-y-z axis vector, angle in radians)
Given these definitions, we will need to convert the BVH orientation to X3D rotation. Ordinarily in 3D graphics this is performed using a 3x3 or 4x4 transformation matrix.