-
Notifications
You must be signed in to change notification settings - Fork 8
Constraints
In the following examples, the x-axis is colored in red and points in the direction of the surface normal. The y-axis is colored in green and points in the direction of the hand. The z-axis is colored in blue.
The following is a proposal on how reach positions can be described with the MGeometry Constraint. This is also a proposal for a project wide standard for describing the coordinate systems of an object for interaction points.
As a standard procedure it is proposed to define the x-axis to point outwards the surface, and the z-axis downwards. Exeption to this is the chair, as mentioned below.
As depicted in the image, this demonstrates the placement of an MGeometryConstraint on a flat surface (e.g. side of a box).
- The ParentToConstraint has the box transform as its parent id and provides a local transformation within the coordinate system of the box to place the constraint on the center of the boxes side surface with the x-axis pointing to the surface normal as depicted in the image.
- The translation constraint has boundaries (x,y,z) of [0,0], [-side_y/2, +side_y/2], [-side_z/2, + side_z/2]
- The rotation constraint has boundaries (x,y,z) of [-inf, +inf], [0, 0], [0, 0].
This means, that any part of the surface can be reached from any direction.
As depicted in the image, this demonstrates the placement of an MGeometryConstraint on a cylindrical surface (e.g. metal bar). * The ParentToConstraint places the constraint at the end of the handle with the z axis pointing along the axis of the cylinder as depicted in the image.
- The translation constraint has boundaries (x,y,z) of [+radius_x, + radius_x], [+radius_y, +radius_y], [0, lenght]
- The rotation constraint has boundaries (x,y,z) of [0, 0], [0, 0], [-inf, +inf]
Thus, the cylinder can be reached on any point on the surface at any rotation around the axis of the cylinder.
As depicted in the image, this demonstrates the specific placement of an MGeometryConstraint on a tool, which requires a very strict orientation of the hand.
- The ParentToConstraint places the constraint at the right point on the tool handle with the x axis pointing to the normal of the surface and the y axis pointing to the front of the tool.
- The translation constraint has boundaries [0,0], [0,0], [0,0]
- The rotation constraint has boundaries [0,0], [0,0], [0,0]
Thus, the constraint has to be matched exactly.
- The ParentToConstraint places the constraint at the seating point of the chair with the x axis pointing upwards of the surface and the y axis pointing to the front of the chair. This is the also the direction of the thights while sitting.
- The translation constraint has boundaries [0,0], [-side_y/2, +side_y/2], [-side_z/2, + side_z/2]
- The rotation constraint has boundaries [-90,90], [0,0], [0,0]
All Images have been generated with the following blender file (blender 2.83): axis_definitions.blend
- What is the MOSIM Framework?
- Components of the Framework
- Repository Structure
- RPCs with Apache Thrift
- Setting up the MMI-Environment
- MMU Development
- Target Engine Integration
- Integration in Unity
- Integration in UE4
- Integration in 3rd Party Engines
- Service Development
-
Intermediate Skeleton & Retargeting
- Concept of the Intermediate Skeleton
- Retargeting Service and Configurator
- Retargeting in Unity
- Retargeting in UE4
- Constraints