summaryrefslogtreecommitdiffstats
path: root/scene/3d/skeleton_3d.h
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2021-10-13 09:37:40 -0300
committerreduz <reduzio@gmail.com>2021-10-13 14:51:29 -0300
commit2dc823273e8d7d0eb92049c0d687f6a2c247ce13 (patch)
tree768c9c2f6f4dc005d05afc80200bf6cb5f0013d0 /scene/3d/skeleton_3d.h
parent004b44e91519626e847c981c9f91ae3c4e36282c (diff)
downloadredot-engine-2dc823273e8d7d0eb92049c0d687f6a2c247ce13.tar.gz
Remove REST transform influence in skeleton bones
* Animations and Skeletons are now pose-only. * Rest transform is kept as reference (when it exists) and for IK * Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).
Diffstat (limited to 'scene/3d/skeleton_3d.h')
-rw-r--r--scene/3d/skeleton_3d.h14
1 files changed, 2 insertions, 12 deletions
diff --git a/scene/3d/skeleton_3d.h b/scene/3d/skeleton_3d.h
index aacee3da4e..f3cf551af7 100644
--- a/scene/3d/skeleton_3d.h
+++ b/scene/3d/skeleton_3d.h
@@ -76,7 +76,6 @@ private:
bool enabled;
int parent;
- bool disable_rest = false;
Transform3D rest;
_FORCE_INLINE_ void update_pose_cache() {
@@ -95,9 +94,6 @@ private:
Transform3D pose_global;
Transform3D pose_global_no_override;
- bool custom_pose_enable = false;
- Transform3D custom_pose;
-
real_t global_pose_override_amount = 0.0;
bool global_pose_override_reset = false;
Transform3D global_pose_override;
@@ -119,8 +115,6 @@ private:
Bone() {
parent = -1;
enabled = true;
- disable_rest = false;
- custom_pose_enable = false;
global_pose_override_amount = 0;
global_pose_override_reset = false;
#ifndef _3D_DISABLED
@@ -199,9 +193,6 @@ public:
void remove_bone_child(int p_bone, int p_child);
Vector<int> get_parentless_bones();
- void set_bone_disable_rest(int p_bone, bool p_disable);
- bool is_bone_rest_disabled(int p_bone) const;
-
int get_bone_count() const;
void set_bone_rest(int p_bone, const Transform3D &p_rest);
@@ -228,9 +219,6 @@ public:
Quaternion get_bone_pose_rotation(int p_bone) const;
Vector3 get_bone_pose_scale(int p_bone) const;
- void set_bone_custom_pose(int p_bone, const Transform3D &p_custom_pose);
- Transform3D get_bone_custom_pose(int p_bone) const;
-
void clear_bones_global_pose_override();
Transform3D get_bone_global_pose_override(int p_bone) const;
void set_bone_global_pose_override(int p_bone, const Transform3D &p_pose, real_t p_amount, bool p_persistent = false);
@@ -241,6 +229,8 @@ public:
void localize_rests(); // used for loaders and tools
+ Ref<Skin> create_skin_from_rest_transforms();
+
Ref<SkinReference> register_skin(const Ref<Skin> &p_skin);
void force_update_all_dirty_bones();