Browse Source

- Added skeleton mapper to examples
- Fixed undocumented parameter that broke Doxygen build

Jorrit Rouwe 3 years ago
parent
commit
8a1772fe43
2 changed files with 5 additions and 0 deletions
  1. 4 0
      Docs/Samples.md
  2. 1 0
      Jolt/Skeleton/SkeletonMapper.h

+ 4 - 0
Docs/Samples.md

@@ -53,6 +53,10 @@ This category demonstrates how ragdolls can be made and controlled using keyfram
 |:-|
 |:-|
 |*Demonstrating a humanoid ragdoll driven by motors which are trying to match a sprint animation in local space (green sticks).*|
 |*Demonstrating a humanoid ragdoll driven by motors which are trying to match a sprint animation in local space (green sticks).*|
 
 
+|[![Skeleton Mapper](https://img.youtube.com/vi/hrnmgNN-m-U/hqdefault.jpg)](https://www.youtube.com/watch?v=hrnmgNN-m-U)|
+|:-|
+|*An animation is played back on a high detail skeleton ('Animation') and then mapped onto a low detail ragdoll skeleton ('Reversed Mapped'). This animation is used to drive the motors of the ragdoll. The resulting pose is mapped back to the high detail skeleton ('Mapped'). Note that the skeletons are drawn offset to make them clearer..*|
+
 |[![160 Ragdolls in a Pile](https://img.youtube.com/vi/pwyCW0yNKMA/hqdefault.jpg)](https://www.youtube.com/watch?v=pwyCW0yNKMA)|
 |[![160 Ragdolls in a Pile](https://img.youtube.com/vi/pwyCW0yNKMA/hqdefault.jpg)](https://www.youtube.com/watch?v=pwyCW0yNKMA)|
 |:-|
 |:-|
 |*160 Ragdolls being dropped on a scene from Horizon Zero Dawn.*|
 |*160 Ragdolls being dropped on a scene from Horizon Zero Dawn.*|

+ 1 - 0
Jolt/Skeleton/SkeletonMapper.h

@@ -63,6 +63,7 @@ public:
 	/// @param inNeutralPose1 Neutral pose of the source skeleton (model space)
 	/// @param inNeutralPose1 Neutral pose of the source skeleton (model space)
 	/// @param inSkeleton2 Target skeleton to map to.
 	/// @param inSkeleton2 Target skeleton to map to.
 	/// @param inNeutralPose2 Neutral pose of the target skeleton (model space), inNeutralPose1 and inNeutralPose2 must match as closely as possible, preferably the position of the mappable joints should be identical.
 	/// @param inNeutralPose2 Neutral pose of the target skeleton (model space), inNeutralPose1 and inNeutralPose2 must match as closely as possible, preferably the position of the mappable joints should be identical.
+	/// @param inCanMapJoint Function that checks if joints in skeleton 1 and skeleton 2 are equal.
 	void					Initialize(const Skeleton *inSkeleton1, const Mat44 *inNeutralPose1, const Skeleton *inSkeleton2, const Mat44 *inNeutralPose2, const CanMapJoint &inCanMapJoint = sDefaultCanMapJoint);
 	void					Initialize(const Skeleton *inSkeleton1, const Mat44 *inNeutralPose1, const Skeleton *inSkeleton2, const Mat44 *inNeutralPose2, const CanMapJoint &inCanMapJoint = sDefaultCanMapJoint);
 
 
 	/// Map a pose. Joints that were directly mappable will be copied in model space from pose 1 to pose 2. Any joints that are only present in skeleton 2
 	/// Map a pose. Joints that were directly mappable will be copied in model space from pose 1 to pose 2. Any joints that are only present in skeleton 2