Body Data Mappings (3D) v1
Updated: Mar 21
This is where I will discuss the first iteration of doing Laban Analysis visualization in 3D.
In this first version of creating dynamic 3D Laban mappings, I have created a transformable/real-time version of Laban planes that are used to develop the Kinesphere geometry commonly seen in Laban analysis visual mappings. The shape, also known as the Icosaherdon, was created using 3 intersecting planes. See an example of the geometry below.
The Labannotation Icosahedron
A similar effect was created in UE5.1 using a BP Actor and 3 planes mapped to XY, XZ, and YZ orientations.
This was achieved by creating three plane primitives and adding them to the parent BP actor. I use the relative location of the spine joint, generated from the Kinect body tracking, to anchor all the points to. This is the Spine Base joint.
I then offset/rotate all the planes along their respective axes, to get them to face the correct orientations on XY. XZ, and YZ. This can be is seen in the image below.
Node breakdown for a single plane (XY)
To make the planes conform to the dimension of the tracked body, several vector calculations were made to get distances (in Float values) to drive the dimensions of the planes. The vector math was performed on the Hands, Feet, Spine, and Head joints. A combination of distance between joints, something outlined in an earlier post, to get the needed dimensions. See the calculation nodes below.
Node breakdown for joint calculations
Lastly, I applied a color lerp from blue to red to indicate the "effort" the user is putting in to achieve certain motions. This was created using a material instance and color lerp node, driven by the same calculations for the dimensions of the planes.
The next steps are to create the actual points (or vertices) and lines (or edges) of the Icosahedron. This will likely be achieved by adding spheres to the corners of the planes and using a Cable Component to draw lines between all of the points.