-
-
Notifications
You must be signed in to change notification settings - Fork 21.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add RetargetModifier3D for realtime retarget to keep original rest
- Loading branch information
1 parent
506d6e4
commit 42eda8c
Showing
18 changed files
with
873 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="RetargetModifier3D" inherits="SkeletonModifier3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd"> | ||
<brief_description> | ||
A modifier to transfer parent skeleton poses (or global poses) to child skeletons in model space with different rests. | ||
</brief_description> | ||
<description> | ||
Retrieves the pose (or global pose) relative to the parent Skeleton's rest in model space and transfers it to the child Skeleton. | ||
This modifier rewrites the pose of the child skeleton directly in the parent skeleton's update process. This means that it overwrites the mapped bone pose set in the normal process on the target skeleton. If you want to set the target skeleton bone pose after retargeting, you will need to add a child [SkeletonModifier3D] to the target skeleton and thereby modify the pose. | ||
[b]Note:[/b] When the [member use_global_pose] is enabled, even if it is an unmapped bone, the target skeleton bone pose origin may be overridden [b]if it has mapped bone children[/b]. | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<members> | ||
<member name="position_enabled" type="bool" setter="set_position_enabled" getter="is_position_enabled" default="true"> | ||
If [code]true[/code], allows to retarget the position. | ||
</member> | ||
<member name="profile" type="SkeletonProfile" setter="set_profile" getter="get_profile"> | ||
[SkeletonProfile] for retargeting bones with names matching the bone list. | ||
</member> | ||
<member name="rotation_enabled" type="bool" setter="set_rotation_enabled" getter="is_rotation_enabled" default="true"> | ||
If [code]true[/code], allows to retarget the rotation. | ||
</member> | ||
<member name="scale_enabled" type="bool" setter="set_scale_enabled" getter="is_scale_enabled" default="true"> | ||
If [code]true[/code], allows to retarget the scale. | ||
</member> | ||
<member name="use_global_pose" type="bool" setter="set_use_global_pose" getter="is_using_global_pose" default="false"> | ||
If [code]false[/code], in case the target skeleton has fewer bones than the source skeleton, the source bone parent's transform will be ignored. | ||
Instead, it is possible to retarget between models with different body shapes, and position, rotation, and scale can be retargeted separately. | ||
If [code]true[/code], Retargeting is performed taking into account global pose. | ||
In case the target skeleton has fewer bones than the source skeleton, the source bone parent's transform is taken into account. | ||
This is useful for matching postures when retargeting between models with different number of bones. | ||
However, bone length between skeletons must match exactly, if not, the bones will be forced to expand or shrink. | ||
</member> | ||
</members> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.