├── .gitignore ├── BaseMeshes └── LowPolyBaseCharacters-2024-rigified.blend ├── BoneMaps ├── 4-leggedv2.png ├── Mixamo BoneMap.tres ├── canid_bone_map.tres ├── canid_profile.tres ├── equid_bone_map.tres ├── equid_profile.tres ├── felid_bone_map.tres └── felid_profile.tres ├── FORMER-README.md ├── Libraries ├── Canine │ └── DogLocomotion-Library.res └── Humanoid │ ├── MeleeLib.res │ ├── Outdated-Faulty │ ├── Locomotion-Library.res │ └── Melee-Library--OLD.res │ └── ShooterLib.res ├── README.md └── Screenshots ├── MixamoLib.GIF └── Screenshot.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.blend1 3 | -------------------------------------------------------------------------------- /BaseMeshes/LowPolyBaseCharacters-2024-rigified.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/BaseMeshes/LowPolyBaseCharacters-2024-rigified.blend -------------------------------------------------------------------------------- /BoneMaps/4-leggedv2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/BoneMaps/4-leggedv2.png -------------------------------------------------------------------------------- /BoneMaps/Mixamo BoneMap.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="BoneMap" load_steps=2 format=3 uid="uid://jsmvf7l3e2tg"] 2 | 3 | [sub_resource type="SkeletonProfileHumanoid" id="SkeletonProfileHumanoid_eq0yh"] 4 | 5 | [resource] 6 | profile = SubResource("SkeletonProfileHumanoid_eq0yh") 7 | bonemap = null 8 | bone_map/Root = &"" 9 | bone_map/Hips = &"mixamorig_Hips" 10 | bone_map/Spine = &"mixamorig_Spine" 11 | bone_map/Chest = &"mixamorig_Spine1" 12 | bone_map/UpperChest = &"mixamorig_Spine2" 13 | bone_map/Neck = &"mixamorig_Neck" 14 | bone_map/Head = &"mixamorig_Head" 15 | bone_map/LeftEye = &"" 16 | bone_map/RightEye = &"" 17 | bone_map/Jaw = &"" 18 | bone_map/LeftShoulder = &"mixamorig_LeftShoulder" 19 | bone_map/LeftUpperArm = &"mixamorig_LeftArm" 20 | bone_map/LeftLowerArm = &"mixamorig_LeftForeArm" 21 | bone_map/LeftHand = &"mixamorig_LeftHand" 22 | bone_map/LeftThumbMetacarpal = &"mixamorig_LeftHandThumb2" 23 | bone_map/LeftThumbProximal = &"mixamorig_LeftHandThumb3" 24 | bone_map/LeftThumbDistal = &"mixamorig_LeftHandThumb4" 25 | bone_map/LeftIndexProximal = &"mixamorig_LeftHandIndex2" 26 | bone_map/LeftIndexIntermediate = &"mixamorig_LeftHandIndex3" 27 | bone_map/LeftIndexDistal = &"mixamorig_LeftHandIndex4" 28 | bone_map/LeftMiddleProximal = &"mixamorig_LeftHandMiddle2" 29 | bone_map/LeftMiddleIntermediate = &"mixamorig_LeftHandMiddle3" 30 | bone_map/LeftMiddleDistal = &"mixamorig_LeftHandMiddle4" 31 | bone_map/LeftRingProximal = &"mixamorig_LeftHandRing2" 32 | bone_map/LeftRingIntermediate = &"mixamorig_LeftHandRing3" 33 | bone_map/LeftRingDistal = &"mixamorig_LeftHandRing4" 34 | bone_map/LeftLittleProximal = &"mixamorig_LeftHandPinky2" 35 | bone_map/LeftLittleIntermediate = &"mixamorig_LeftHandPinky3" 36 | bone_map/LeftLittleDistal = &"mixamorig_LeftHandPinky4" 37 | bone_map/RightShoulder = &"mixamorig_RightShoulder" 38 | bone_map/RightUpperArm = &"mixamorig_RightArm" 39 | bone_map/RightLowerArm = &"mixamorig_RightForeArm" 40 | bone_map/RightHand = &"mixamorig_RightHand" 41 | bone_map/RightThumbMetacarpal = &"mixamorig_RightHandThumb2" 42 | bone_map/RightThumbProximal = &"mixamorig_RightHandThumb3" 43 | bone_map/RightThumbDistal = &"mixamorig_RightHandThumb4" 44 | bone_map/RightIndexProximal = &"mixamorig_RightHandIndex2" 45 | bone_map/RightIndexIntermediate = &"mixamorig_RightHandIndex3" 46 | bone_map/RightIndexDistal = &"mixamorig_RightHandIndex4" 47 | bone_map/RightMiddleProximal = &"mixamorig_RightHandMiddle2" 48 | bone_map/RightMiddleIntermediate = &"mixamorig_RightHandMiddle3" 49 | bone_map/RightMiddleDistal = &"mixamorig_RightHandMiddle4" 50 | bone_map/RightRingProximal = &"mixamorig_RightHandRing2" 51 | bone_map/RightRingIntermediate = &"mixamorig_RightHandRing3" 52 | bone_map/RightRingDistal = &"mixamorig_RightHandRing4" 53 | bone_map/RightLittleProximal = &"mixamorig_RightHandPinky2" 54 | bone_map/RightLittleIntermediate = &"mixamorig_RightHandPinky3" 55 | bone_map/RightLittleDistal = &"mixamorig_RightHandPinky4" 56 | bone_map/LeftUpperLeg = &"mixamorig_LeftUpLeg" 57 | bone_map/LeftLowerLeg = &"mixamorig_LeftLeg" 58 | bone_map/LeftFoot = &"mixamorig_LeftFoot" 59 | bone_map/LeftToes = &"mixamorig_LeftToeBase" 60 | bone_map/RightUpperLeg = &"mixamorig_RightUpLeg" 61 | bone_map/RightLowerLeg = &"mixamorig_RightLeg" 62 | bone_map/RightFoot = &"mixamorig_RightFoot" 63 | bone_map/RightToes = &"mixamorig_RightToeBase" 64 | -------------------------------------------------------------------------------- /BoneMaps/canid_bone_map.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="BoneMap" load_steps=2 format=3 uid="uid://cym4fcbn568wg"] 2 | 3 | [ext_resource type="SkeletonProfile" uid="uid://br7sob1pdxyuq" path="res://CatsSkeletonProfileBuilder/canid_profile.tres" id="1_dqnn3"] 4 | 5 | [resource] 6 | profile = ExtResource("1_dqnn3") 7 | bonemap = null 8 | bone_map/root = &"root" 9 | bone_map/hips = &"DEF-hips" 10 | bone_map/spine.001 = &"DEF-spine.001" 11 | bone_map/spine.002 = &"DEF-spine.002" 12 | bone_map/spine.003 = &"DEF-spine.003" 13 | bone_map/neck = &"DEF-neck" 14 | bone_map/head = &"DEF-head" 15 | bone_map/jaw = &"DEF-jaw" 16 | bone_map/ear.L = &"DEF-ear.L" 17 | bone_map/ear.R = &"DEF-ear.R" 18 | bone_map/shoulder.L = &"DEF-shoulder.L" 19 | bone_map/upper_arm.L = &"DEF-upper_arm.L" 20 | bone_map/forearm.L = &"DEF-forearm.L" 21 | bone_map/hands.L = &"DEF-hands.L" 22 | bone_map/fingers.L = &"DEF-fingers.L" 23 | bone_map/shoulder.R = &"DEF-shoulder.R" 24 | bone_map/upper_arm.R = &"DEF-upper_arm.R" 25 | bone_map/forearm.R = &"DEF-forearm.R" 26 | bone_map/hands.R = &"DEF-hands.R" 27 | bone_map/fingers.R = &"DEF-fingers.R" 28 | bone_map/tail = &"DEF-tail" 29 | bone_map/tail.001 = &"DEF-tail.001" 30 | bone_map/tail.002 = &"DEF-tail.002" 31 | bone_map/tail.003 = &"DEF-tail.003" 32 | bone_map/tail.004 = &"DEF-tail.004" 33 | bone_map/tail.005 = &"DEF-tail.005" 34 | bone_map/thigh.L = &"DEF-thigh.L" 35 | bone_map/shin.L = &"DEF-shin.L" 36 | bone_map/feet.L = &"DEF-feet.L" 37 | bone_map/toes.L = &"DEF-toes.L" 38 | bone_map/thigh.R = &"DEF-thigh.R" 39 | bone_map/shin.R = &"DEF-shin.R" 40 | bone_map/feet.R = &"DEF-feet.R" 41 | bone_map/toes.R = &"DEF-toes.R" 42 | -------------------------------------------------------------------------------- /BoneMaps/canid_profile.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SkeletonProfile" load_steps=2 format=3 uid="uid://br7sob1pdxyuq"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://5n03ort3rhwq" path="res://CatsSkeletonProfileBuilder/4-leggedv2.png" id="1_i4217"] 4 | 5 | [resource] 6 | root_bone = &"root" 7 | scale_base_bone = &"hips" 8 | group_size = 1 9 | bone_size = 34 10 | groups/0/group_name = &"Body" 11 | groups/0/texture = ExtResource("1_i4217") 12 | bones/0/bone_name = &"root" 13 | bones/0/bone_parent = &"" 14 | bones/0/tail_direction = 0 15 | bones/0/reference_pose = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0) 16 | bones/0/handle_offset = Vector2(0.5, 0.98) 17 | bones/0/group = &"Body" 18 | bones/0/require = false 19 | bones/1/bone_name = &"hips" 20 | bones/1/bone_parent = &"root" 21 | bones/1/tail_direction = 1 22 | bones/1/bone_tail = &"DEF-spine.001" 23 | bones/1/reference_pose = Transform3D(1, -7.86628e-18, -7.70229e-15, 7.86628e-18, -0.999998, 0.00204258, -7.70229e-15, -0.00204258, -0.999998, -4.94826e-19, 0.410129, 0.791471) 24 | bones/1/handle_offset = Vector2(0.5, 0.65) 25 | bones/1/group = &"Body" 26 | bones/1/require = true 27 | bones/2/bone_name = &"spine.001" 28 | bones/2/bone_parent = &"hips" 29 | bones/2/tail_direction = 0 30 | bones/2/reference_pose = Transform3D(1, 2.84217e-14, 2.62265e-06, 1.61439e-07, 0.998104, -0.0615558, -2.61767e-06, 0.0615558, 0.998104, -4.19381e-22, 0.188714, -2.19734e-08) 31 | bones/2/handle_offset = Vector2(0.5, 0.56) 32 | bones/2/group = &"Body" 33 | bones/2/require = true 34 | bones/3/bone_name = &"spine.002" 35 | bones/3/bone_parent = &"spine.001" 36 | bones/3/tail_direction = 0 37 | bones/3/reference_pose = Transform3D(1, 4.26968e-07, 5.11828e-07, -5.04598e-07, 0.986659, 0.1628, -4.35489e-07, -0.1628, 0.986659, -6.33339e-14, 0.174324, -4.63333e-08) 38 | bones/3/handle_offset = Vector2(0.5, 0.43) 39 | bones/3/group = &"Body" 40 | bones/3/require = true 41 | bones/4/bone_name = &"spine.003" 42 | bones/4/bone_parent = &"spine.002" 43 | bones/4/tail_direction = 0 44 | bones/4/reference_pose = Transform3D(1, 1.91429e-07, -1.66304e-06, -8.83521e-08, 0.998091, 0.0617616, 1.67168e-06, -0.0617616, 0.998091, -5.54221e-14, 0.204563, -1.11759e-08) 45 | bones/4/handle_offset = Vector2(0.5, 0.33) 46 | bones/4/group = &"Body" 47 | bones/4/require = true 48 | bones/5/bone_name = &"neck" 49 | bones/5/bone_parent = &"spine.003" 50 | bones/5/tail_direction = 1 51 | bones/5/bone_tail = &"DEF-head" 52 | bones/5/reference_pose = Transform3D(1, 2.75383e-07, 1.93407e-06, -6.42548e-07, 0.981296, 0.192503, -1.84489e-06, -0.192503, 0.981296, 7.1396e-14, 0.206493, -5.58794e-08) 53 | bones/5/handle_offset = Vector2(0.5, 0.23) 54 | bones/5/group = &"Body" 55 | bones/5/require = true 56 | bones/6/bone_name = &"head" 57 | bones/6/bone_parent = &"neck" 58 | bones/6/tail_direction = 2 59 | bones/6/reference_pose = Transform3D(1, -1.38987e-06, -1.36585e-06, 6.94912e-07, 0.909182, -0.416398, 1.82055e-06, 0.416398, 0.909182, 1.61079e-13, 0.135151, -1.49012e-08) 60 | bones/6/handle_offset = Vector2(0.5, 0.13) 61 | bones/6/group = &"Body" 62 | bones/6/require = true 63 | bones/7/bone_name = &"jaw" 64 | bones/7/bone_parent = &"head" 65 | bones/7/tail_direction = 0 66 | bones/7/reference_pose = Transform3D(1, -2.46103e-07, -6.9691e-07, 1.40641e-07, 0.989067, -0.147467, 7.25583e-07, 0.147467, 0.989067, -8.07651e-08, 0.202933, 0.0483953) 67 | bones/7/handle_offset = Vector2(0.5, 0.03) 68 | bones/7/group = &"Body" 69 | bones/7/require = true 70 | bones/8/bone_name = &"ear.L" 71 | bones/8/bone_parent = &"head" 72 | bones/8/tail_direction = 0 73 | bones/8/reference_pose = Transform3D(0.764867, 0.643985, -0.0161743, -0.135959, 0.18592, 0.973113, 0.629678, -0.742103, 0.22976, 0.0665002, 0.0510103, -0.0962675) 74 | bones/8/handle_offset = Vector2(0.4, 0.17) 75 | bones/8/group = &"Body" 76 | bones/8/require = true 77 | bones/9/bone_name = &"ear.R" 78 | bones/9/bone_parent = &"head" 79 | bones/9/tail_direction = 0 80 | bones/9/reference_pose = Transform3D(0.764869, -0.643983, 0.0161735, 0.135959, 0.18592, 0.973113, -0.629675, -0.742105, 0.22976, -0.0664998, 0.0510103, -0.0962678) 81 | bones/9/handle_offset = Vector2(0.6, 0.17) 82 | bones/9/group = &"Body" 83 | bones/9/require = true 84 | bones/10/bone_name = &"shoulder.L" 85 | bones/10/bone_parent = &"spine.003" 86 | bones/10/tail_direction = 0 87 | bones/10/reference_pose = Transform3D(-0.193833, 0.315204, 0.929018, 0.956289, 0.272057, 0.107218, -0.21895, 0.909193, -0.35416, 0.0607001, 0.114863, -0.0674887) 88 | bones/10/handle_offset = Vector2(0.4, 0.33) 89 | bones/10/group = &"Body" 90 | bones/10/require = true 91 | bones/11/bone_name = &"upper_arm.L" 92 | bones/11/bone_parent = &"shoulder.L" 93 | bones/11/tail_direction = 0 94 | bones/11/reference_pose = Transform3D(0.193835, -0.663367, 0.722753, -0.315204, 0.655551, 0.686221, -0.929018, -0.360829, -0.0820274, -0.0342041, 0.209643, -0.0122825) 95 | bones/11/handle_offset = Vector2(0.32, 0.33) 96 | bones/11/group = &"Body" 97 | bones/11/require = true 98 | bones/12/bone_name = &"forearm.L" 99 | bones/12/bone_parent = &"upper_arm.L" 100 | bones/12/tail_direction = 0 101 | bones/12/reference_pose = Transform3D(1, 7.07798e-07, 3.76927e-06, 5.24492e-07, 0.948348, -0.317231, -3.79912e-06, 0.317231, 0.948348, -7.02784e-10, 0.260944, 4.69399e-09) 102 | bones/12/handle_offset = Vector2(0.22, 0.33) 103 | bones/12/group = &"Body" 104 | bones/12/require = true 105 | bones/13/bone_name = &"hands.L" 106 | bones/13/bone_parent = &"forearm.L" 107 | bones/13/tail_direction = 0 108 | bones/13/reference_pose = Transform3D(1, -3.57166e-07, -2.40169e-06, -1.76137e-07, 0.975846, -0.218461, 2.42171e-06, 0.218461, 0.975846, 3.77845e-09, 0.281853, -8.13282e-09) 109 | bones/13/handle_offset = Vector2(0.14, 0.33) 110 | bones/13/group = &"Body" 111 | bones/13/require = true 112 | bones/14/bone_name = &"fingers.L" 113 | bones/14/bone_parent = &"hands.L" 114 | bones/14/tail_direction = 0 115 | bones/14/reference_pose = Transform3D(0.999646, 0.0266155, 2.47164e-05, -0.00493001, 0.186078, -0.982523, -0.0261549, 0.982174, 0.186143, 1.49529e-09, 0.166001, 1.81553e-08) 116 | bones/14/handle_offset = Vector2(0.1, 0.29) 117 | bones/14/group = &"Body" 118 | bones/14/require = true 119 | bones/15/bone_name = &"shoulder.R" 120 | bones/15/bone_parent = &"spine.003" 121 | bones/15/tail_direction = 0 122 | bones/15/reference_pose = Transform3D(-0.193834, -0.315207, -0.929017, -0.956289, 0.272057, 0.107218, 0.21895, 0.909192, -0.354163, -0.0606999, 0.114863, -0.0674888) 123 | bones/15/handle_offset = Vector2(0.6, 0.33) 124 | bones/15/group = &"Body" 125 | bones/15/require = true 126 | bones/16/bone_name = &"upper_arm.R" 127 | bones/16/bone_parent = &"shoulder.R" 128 | bones/16/tail_direction = 0 129 | bones/16/reference_pose = Transform3D(0.193835, 0.663367, -0.722753, 0.315204, 0.655551, 0.686221, 0.929018, -0.360829, -0.0820271, 0.0342041, 0.209643, -0.0122824) 130 | bones/16/handle_offset = Vector2(0.7, 0.33) 131 | bones/16/group = &"Body" 132 | bones/16/require = true 133 | bones/17/bone_name = &"forearm.R" 134 | bones/17/bone_parent = &"upper_arm.R" 135 | bones/17/tail_direction = 0 136 | bones/17/reference_pose = Transform3D(1, -5.94621e-07, -4.09646e-06, -7.35618e-07, 0.948348, -0.317231, 4.07351e-06, 0.317231, 0.948348, 1.1002e-08, 0.260944, 1.29518e-09) 137 | bones/17/handle_offset = Vector2(0.78, 0.33) 138 | bones/17/group = &"Body" 139 | bones/17/require = true 140 | bones/18/bone_name = &"hands.R" 141 | bones/18/bone_parent = &"forearm.R" 142 | bones/18/tail_direction = 0 143 | bones/18/reference_pose = Transform3D(1, 4.90085e-07, 2.273e-06, 1.83149e-08, 0.975846, -0.218461, -2.32516e-06, 0.218461, 0.975846, 6.57907e-09, 0.281853, 3.79598e-09) 144 | bones/18/handle_offset = Vector2(0.86, 0.33) 145 | bones/18/group = &"Body" 146 | bones/18/require = true 147 | bones/19/bone_name = &"fingers.R" 148 | bones/19/bone_parent = &"hands.R" 149 | bones/19/tail_direction = 0 150 | bones/19/reference_pose = Transform3D(0.999646, -0.0266146, -3.52878e-05, 0.00491946, 0.186078, -0.982523, 0.026156, 0.982174, 0.186143, 1.10994e-08, 0.166001, 1.24071e-08) 151 | bones/19/handle_offset = Vector2(0.9, 0.29) 152 | bones/19/group = &"Body" 153 | bones/19/require = true 154 | bones/20/bone_name = &"tail" 155 | bones/20/bone_parent = &"hips" 156 | bones/20/tail_direction = 0 157 | bones/20/reference_pose = Transform3D(1, 1.78689e-15, -7.49448e-15, 1.12184e-17, -0.97307, -0.23051, -7.70455e-15, 0.23051, -0.973071, 4.42042e-17, -0.0327998, 0.00673712) 158 | bones/20/handle_offset = Vector2(0.5, 0.72) 159 | bones/20/group = &"Body" 160 | bones/20/require = false 161 | bones/21/bone_name = &"tail.001" 162 | bones/21/bone_parent = &"tail" 163 | bones/21/tail_direction = 0 164 | bones/21/reference_pose = Transform3D(1, -2.80303e-17, -1.77433e-19, 2.77741e-17, 0.991674, -0.128771, 3.78543e-18, 0.128771, 0.991674, 1.44757e-24, 0.114603, 0) 165 | bones/21/handle_offset = Vector2(0.5, 0.76) 166 | bones/21/group = &"Body" 167 | bones/21/require = false 168 | bones/22/bone_name = &"tail.002" 169 | bones/22/bone_parent = &"tail.001" 170 | bones/22/tail_direction = 0 171 | bones/22/reference_pose = Transform3D(1, 8.13022e-18, 2.01923e-19, -8.1227e-18, 0.999692, -0.0248247, -4.03691e-19, 0.0248247, 0.999692, -1.80946e-25, 0.118137, -2.23517e-08) 172 | bones/22/handle_offset = Vector2(0.5, 0.8) 173 | bones/22/group = &"Body" 174 | bones/22/require = false 175 | bones/23/bone_name = &"tail.003" 176 | bones/23/bone_parent = &"tail.002" 177 | bones/23/tail_direction = 0 178 | bones/23/reference_pose = Transform3D(1, 3.02008e-17, -3.59431e-19, -3.00906e-17, 0.995186, -0.0980035, -2.60208e-18, 0.0980035, 0.995186, 3.81279e-25, 0.106454, 5.21541e-08) 179 | bones/23/handle_offset = Vector2(0.5, 0.84) 180 | bones/23/group = &"Body" 181 | bones/23/require = false 182 | bones/24/bone_name = &"tail.004" 183 | bones/24/bone_parent = &"tail.003" 184 | bones/24/tail_direction = 0 185 | bones/24/reference_pose = Transform3D(1, 2.51803e-17, -2.86475e-19, -2.51777e-17, 0.999976, 0.00695443, 4.61582e-19, -0.00695443, 0.999976, -6.41065e-24, 0.107172, -6.51926e-08) 186 | bones/24/handle_offset = Vector2(0.5, 0.88) 187 | bones/24/group = &"Body" 188 | bones/24/require = false 189 | bones/25/bone_name = &"tail.005" 190 | bones/25/bone_parent = &"tail.004" 191 | bones/25/tail_direction = 0 192 | bones/25/reference_pose = Transform3D(1, 1.58082e-17, 3.03669e-18, -1.51133e-17, 0.986962, -0.160955, -5.54151e-18, 0.160955, 0.986962, 7.75482e-25, 0.113871, 2.42144e-08) 193 | bones/25/handle_offset = Vector2(0.5, 0.92) 194 | bones/25/group = &"Body" 195 | bones/25/require = false 196 | bones/26/bone_name = &"thigh.L" 197 | bones/26/bone_parent = &"hips" 198 | bones/26/tail_direction = 0 199 | bones/26/reference_pose = Transform3D(1, 1.69407e-21, 3.14265e-14, 3.02414e-14, 0.272031, -0.962288, -8.54901e-15, 0.962288, 0.272031, 0.1201, 0.0649409, 0.0549389) 200 | bones/26/handle_offset = Vector2(0.37, 0.65) 201 | bones/26/group = &"Body" 202 | bones/26/require = true 203 | bones/27/bone_name = &"shin.L" 204 | bones/27/bone_parent = &"thigh.L" 205 | bones/27/tail_direction = 0 206 | bones/27/reference_pose = Transform3D(1, -5.82077e-11, -0.000488281, -0.000412446, 0.535257, -0.844689, 0.000261356, 0.844689, 0.535257, -7.84095e-15, 0.272527, 3.4972e-15) 207 | bones/27/handle_offset = Vector2(0.22, 0.65) 208 | bones/27/group = &"Body" 209 | bones/27/require = true 210 | bones/28/bone_name = &"feet.L" 211 | bones/28/bone_parent = &"shin.L" 212 | bones/28/tail_direction = 0 213 | bones/28/reference_pose = Transform3D(1, -0.000405664, 0.000272001, -1.98095e-07, 0.55657, 0.830801, -0.000488414, -0.830801, 0.55657, -2.33558e-09, 0.305048, -6.50107e-09) 214 | bones/28/handle_offset = Vector2(0.12, 0.65) 215 | bones/28/group = &"Body" 216 | bones/28/require = true 217 | bones/29/bone_name = &"toes.L" 218 | bones/29/bone_parent = &"feet.L" 219 | bones/29/tail_direction = 0 220 | bones/29/reference_pose = Transform3D(1, 2.31172e-07, 9.24244e-08, -1.46346e-07, 0.245488, 0.9694, 2.01409e-07, -0.9694, 0.245488, -6.09027e-09, 0.255003, -4.29454e-09) 221 | bones/29/handle_offset = Vector2(0.1, 0.6) 222 | bones/29/group = &"Body" 223 | bones/29/require = true 224 | bones/30/bone_name = &"thigh.R" 225 | bones/30/bone_parent = &"hips" 226 | bones/30/tail_direction = 0 227 | bones/30/reference_pose = Transform3D(1, 1.69407e-21, 3.14265e-14, 3.02414e-14, 0.272031, -0.962288, -8.54901e-15, 0.962288, 0.272031, -0.1201, 0.0649409, 0.0549389) 228 | bones/30/handle_offset = Vector2(0.61, 0.65) 229 | bones/30/group = &"Body" 230 | bones/30/require = true 231 | bones/31/bone_name = &"shin.R" 232 | bones/31/bone_parent = &"thigh.R" 233 | bones/31/tail_direction = 0 234 | bones/31/reference_pose = Transform3D(1, -5.82077e-11, -0.000488281, -0.000412446, 0.535257, -0.844689, 0.000261356, 0.844689, 0.535257, -7.84095e-15, 0.272527, -3.4972e-15) 235 | bones/31/handle_offset = Vector2(0.76, 0.65) 236 | bones/31/group = &"Body" 237 | bones/31/require = true 238 | bones/32/bone_name = &"feet.R" 239 | bones/32/bone_parent = &"shin.R" 240 | bones/32/tail_direction = 0 241 | bones/32/reference_pose = Transform3D(1, -0.000405664, 0.000272001, -1.98095e-07, 0.55657, 0.830801, -0.000488414, -0.830801, 0.55657, -2.33558e-09, 0.305048, -2.33013e-08) 242 | bones/32/handle_offset = Vector2(0.88, 0.65) 243 | bones/32/group = &"Body" 244 | bones/32/require = true 245 | bones/33/bone_name = &"toes.R" 246 | bones/33/bone_parent = &"feet.R" 247 | bones/33/tail_direction = 0 248 | bones/33/reference_pose = Transform3D(1, 2.31172e-07, 9.24244e-08, -1.46346e-07, 0.245488, 0.9694, 2.01409e-07, -0.9694, 0.245488, 8.81089e-09, 0.255003, -1.94559e-09) 249 | bones/33/handle_offset = Vector2(0.9, 0.6) 250 | bones/33/group = &"Body" 251 | bones/33/require = true 252 | -------------------------------------------------------------------------------- /BoneMaps/equid_bone_map.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="BoneMap" load_steps=2 format=3 uid="uid://bi8dd0ofk8rwn"] 2 | 3 | [ext_resource type="SkeletonProfile" uid="uid://b8tal1viwg1yu" path="res://CatsSkeletonProfileBuilder/equid_profile.tres" id="1_wmhct"] 4 | 5 | [resource] 6 | profile = ExtResource("1_wmhct") 7 | bonemap = null 8 | bone_map/root = &"root" 9 | bone_map/hips = &"DEF-hips" 10 | bone_map/spine.001 = &"DEF-spine.001" 11 | bone_map/spine.002 = &"DEF-spine.002" 12 | bone_map/spine.003 = &"DEF-spine.003" 13 | bone_map/neck = &"DEF-neck" 14 | bone_map/head = &"DEF-head" 15 | bone_map/jaw = &"DEF-jaw" 16 | bone_map/ear.L = &"DEF-ear.L" 17 | bone_map/ear.R = &"DEF-ear.R" 18 | bone_map/shoulder.L = &"DEF-shoulder.L" 19 | bone_map/upper_arm.L = &"DEF-upper_arm.L" 20 | bone_map/forearm.L = &"DEF-forearm.L" 21 | bone_map/hands.L = &"DEF-hands.L" 22 | bone_map/fingers.L = &"DEF-fingers.L" 23 | bone_map/shoulder.R = &"DEF-shoulder.R" 24 | bone_map/upper_arm.R = &"DEF-upper_arm.R" 25 | bone_map/forearm.R = &"DEF-forearm.R" 26 | bone_map/hands.R = &"DEF-hands.R" 27 | bone_map/fingers.R = &"DEF-fingers.R" 28 | bone_map/tail = &"DEF-tail" 29 | bone_map/tail.001 = &"DEF-tail.001" 30 | bone_map/tail.002 = &"DEF-tail.002" 31 | bone_map/tail.003 = &"DEF-tail.003" 32 | bone_map/tail.004 = &"DEF-tail.004" 33 | bone_map/tail.005 = &"DEF-tail.005" 34 | bone_map/thigh.L = &"DEF-thigh.L" 35 | bone_map/shin.L = &"DEF-shin.L" 36 | bone_map/feet.L = &"DEF-feet.L" 37 | bone_map/toes.L = &"DEF-toes.L" 38 | bone_map/thigh.R = &"DEF-thigh.R" 39 | bone_map/shin.R = &"DEF-shin.R" 40 | bone_map/feet.R = &"DEF-feet.R" 41 | bone_map/toes.R = &"DEF-toes.R" 42 | -------------------------------------------------------------------------------- /BoneMaps/equid_profile.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SkeletonProfile" load_steps=2 format=3 uid="uid://b8tal1viwg1yu"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://5n03ort3rhwq" path="res://CatsSkeletonProfileBuilder/4-leggedv2.png" id="1_hxh20"] 4 | 5 | [resource] 6 | root_bone = &"root" 7 | scale_base_bone = &"hips" 8 | group_size = 1 9 | bone_size = 34 10 | groups/0/group_name = &"Body" 11 | groups/0/texture = ExtResource("1_hxh20") 12 | bones/0/bone_name = &"root" 13 | bones/0/bone_parent = &"" 14 | bones/0/tail_direction = 0 15 | bones/0/reference_pose = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0) 16 | bones/0/handle_offset = Vector2(0.5, 0.98) 17 | bones/0/group = &"Body" 18 | bones/0/require = false 19 | bones/1/bone_name = &"hips" 20 | bones/1/bone_parent = &"root" 21 | bones/1/tail_direction = 1 22 | bones/1/bone_tail = &"DEF-spine.001" 23 | bones/1/reference_pose = Transform3D(1, 0, 0, 0, -0.99986, -0.016756, 0, 0.016756, -0.99986, 0, 0.8028, 1.396) 24 | bones/1/handle_offset = Vector2(0.5, 0.65) 25 | bones/1/group = &"Body" 26 | bones/1/require = true 27 | bones/2/bone_name = &"spine.001" 28 | bones/2/bone_parent = &"hips" 29 | bones/2/tail_direction = 0 30 | bones/2/reference_pose = Transform3D(1, 0, 0, 0, 0.947438, -0.31994, 0, 0.31994, 0.947438, 0, 0.417759, 5.82077e-08) 31 | bones/2/handle_offset = Vector2(0.5, 0.56) 32 | bones/2/group = &"Body" 33 | bones/2/require = true 34 | bones/3/bone_name = &"spine.002" 35 | bones/3/bone_parent = &"spine.001" 36 | bones/3/tail_direction = 0 37 | bones/3/reference_pose = Transform3D(1, 0, 0, 0, 0.951341, 0.308139, 0, -0.308139, 0.951341, 0, 0.384185, 9.96515e-08) 38 | bones/3/handle_offset = Vector2(0.5, 0.43) 39 | bones/3/group = &"Body" 40 | bones/3/require = true 41 | bones/4/bone_name = &"spine.003" 42 | bones/4/bone_parent = &"spine.002" 43 | bones/4/tail_direction = 0 44 | bones/4/reference_pose = Transform3D(1, 0, 0, 0, 0.968032, 0.250828, 0, -0.250828, 0.968032, 0, 0.392904, -5.80912e-08) 45 | bones/4/handle_offset = Vector2(0.5, 0.33) 46 | bones/4/group = &"Body" 47 | bones/4/require = true 48 | bones/5/bone_name = &"neck" 49 | bones/5/bone_parent = &"spine.003" 50 | bones/5/tail_direction = 1 51 | bones/5/bone_tail = &"DEF-head" 52 | bones/5/reference_pose = Transform3D(1, -3.55271e-15, 2.38419e-07, -1.01774e-07, 0.904313, 0.42687, -2.15605e-07, -0.42687, 0.904313, 0, 0.416056, 1.49012e-08) 53 | bones/5/handle_offset = Vector2(0.5, 0.23) 54 | bones/5/group = &"Body" 55 | bones/5/require = true 56 | bones/6/bone_name = &"head" 57 | bones/6/bone_parent = &"neck" 58 | bones/6/tail_direction = 2 59 | bones/6/reference_pose = Transform3D(1, -2.37626e-07, 4.9626e-07, 4.75252e-07, -0.0814667, -0.996676, 2.77265e-07, 0.996676, -0.0814667, 2.84217e-14, 0.687668, -1.19209e-07) 60 | bones/6/handle_offset = Vector2(0.5, 0.13) 61 | bones/6/group = &"Body" 62 | bones/6/require = true 63 | bones/7/bone_name = &"jaw" 64 | bones/7/bone_parent = &"head" 65 | bones/7/tail_direction = 0 66 | bones/7/reference_pose = Transform3D(1, -3.47375e-08, 1.26715e-09, 3.47375e-08, 0.997343, -0.0728498, 1.26684e-09, 0.0728498, 0.997343, -3.58189e-08, 0.416496, 0.0751178) 67 | bones/7/handle_offset = Vector2(0.5, 0.03) 68 | bones/7/group = &"Body" 69 | bones/7/require = true 70 | bones/8/bone_name = &"ear.L" 71 | bones/8/bone_parent = &"head" 72 | bones/8/tail_direction = 0 73 | bones/8/reference_pose = Transform3D(0.937372, 0.317827, -0.142546, 0.266695, -0.3916, 0.880638, 0.22407, -0.863502, -0.451837, 0.0757126, 0.00551897, -0.0718741) 74 | bones/8/handle_offset = Vector2(0.4, 0.17) 75 | bones/8/group = &"Body" 76 | bones/8/require = true 77 | bones/9/bone_name = &"ear.R" 78 | bones/9/bone_parent = &"head" 79 | bones/9/tail_direction = 0 80 | bones/9/reference_pose = Transform3D(0.937372, -0.317826, 0.142547, -0.266695, -0.391599, 0.880638, -0.224069, -0.863502, -0.451837, -0.0757125, 0.00551915, -0.0718743) 81 | bones/9/handle_offset = Vector2(0.6, 0.17) 82 | bones/9/group = &"Body" 83 | bones/9/require = true 84 | bones/10/bone_name = &"shoulder.L" 85 | bones/10/bone_parent = &"spine.003" 86 | bones/10/tail_direction = 0 87 | bones/10/reference_pose = Transform3D(-0.199661, 0.204653, 0.958255, 0.968022, 0.192786, 0.160523, -0.151887, 0.959662, -0.2366, 0.1023, 0.202954, -0.237806) 88 | bones/10/handle_offset = Vector2(0.4, 0.33) 89 | bones/10/group = &"Body" 90 | bones/10/require = true 91 | bones/11/bone_name = &"upper_arm.L" 92 | bones/11/bone_parent = &"shoulder.L" 93 | bones/11/tail_direction = 0 94 | bones/11/reference_pose = Transform3D(0.19966, -0.752059, 0.628127, -0.204653, 0.594891, 0.777317, -0.958255, -0.283747, -0.0351354, -0.0179541, 0.462695, -0.0334739) 95 | bones/11/handle_offset = Vector2(0.32, 0.33) 96 | bones/11/group = &"Body" 97 | bones/11/require = true 98 | bones/12/bone_name = &"forearm.L" 99 | bones/12/bone_parent = &"upper_arm.L" 100 | bones/12/tail_direction = 0 101 | bones/12/reference_pose = Transform3D(1, -2.83178e-07, -2.34705e-06, -8.00707e-07, 0.89355, -0.448964, 2.22434e-06, 0.448964, 0.89355, -1.81011e-09, 0.346547, 5.32871e-08) 102 | bones/12/handle_offset = Vector2(0.22, 0.33) 103 | bones/12/group = &"Body" 104 | bones/12/require = true 105 | bones/13/bone_name = &"hands.L" 106 | bones/13/bone_parent = &"forearm.L" 107 | bones/13/tail_direction = 0 108 | bones/13/reference_pose = Transform3D(1, -1.22348e-07, 1.42557e-06, 7.04643e-09, 0.996746, 0.0806014, -1.4308e-06, -0.0806014, 0.996746, 1.31529e-08, 0.361303, 2.1347e-08) 109 | bones/13/handle_offset = Vector2(0.14, 0.33) 110 | bones/13/group = &"Body" 111 | bones/13/require = true 112 | bones/14/bone_name = &"fingers.L" 113 | bones/14/bone_parent = &"hands.L" 114 | bones/14/tail_direction = 0 115 | bones/14/reference_pose = Transform3D(0.999769, 0.0214986, 1.59256e-07, -0.0178453, 0.829882, -0.557654, -0.0119889, 0.557525, 0.830074, -1.59906e-08, 0.261566, -4.5271e-08) 116 | bones/14/handle_offset = Vector2(0.1, 0.29) 117 | bones/14/group = &"Body" 118 | bones/14/require = true 119 | bones/15/bone_name = &"shoulder.R" 120 | bones/15/bone_parent = &"spine.003" 121 | bones/15/tail_direction = 0 122 | bones/15/reference_pose = Transform3D(-0.199661, -0.204653, -0.958255, -0.968022, 0.192786, 0.160523, 0.151887, 0.959662, -0.2366, -0.1023, 0.202954, -0.237806) 123 | bones/15/handle_offset = Vector2(0.6, 0.33) 124 | bones/15/group = &"Body" 125 | bones/15/require = true 126 | bones/16/bone_name = &"upper_arm.R" 127 | bones/16/bone_parent = &"shoulder.R" 128 | bones/16/tail_direction = 0 129 | bones/16/reference_pose = Transform3D(0.19966, 0.752059, -0.628127, 0.204653, 0.594891, 0.777317, 0.958255, -0.283747, -0.0351354, 0.0179541, 0.462695, -0.0334739) 130 | bones/16/handle_offset = Vector2(0.7, 0.33) 131 | bones/16/group = &"Body" 132 | bones/16/require = true 133 | bones/17/bone_name = &"forearm.R" 134 | bones/17/bone_parent = &"upper_arm.R" 135 | bones/17/tail_direction = 0 136 | bones/17/reference_pose = Transform3D(1, 2.83178e-07, 2.34705e-06, 8.00707e-07, 0.89355, -0.448964, -2.22434e-06, 0.448964, 0.89355, 1.81011e-09, 0.346547, 5.32871e-08) 137 | bones/17/handle_offset = Vector2(0.78, 0.33) 138 | bones/17/group = &"Body" 139 | bones/17/require = true 140 | bones/18/bone_name = &"hands.R" 141 | bones/18/bone_parent = &"forearm.R" 142 | bones/18/tail_direction = 0 143 | bones/18/reference_pose = Transform3D(1, 1.22348e-07, -1.18715e-06, -2.62633e-08, 0.996746, 0.0806014, 1.19315e-06, -0.0806014, 0.996746, -1.31529e-08, 0.361303, 2.1347e-08) 144 | bones/18/handle_offset = Vector2(0.86, 0.33) 145 | bones/18/group = &"Body" 146 | bones/18/require = true 147 | bones/19/bone_name = &"fingers.R" 148 | bones/19/bone_parent = &"hands.R" 149 | bones/19/tail_direction = 0 150 | bones/19/reference_pose = Transform3D(0.999769, -0.0214987, -3.57162e-07, 0.0178453, 0.829882, -0.557654, 0.0119891, 0.557525, 0.830074, 1.62562e-08, 0.261566, -3.48998e-08) 151 | bones/19/handle_offset = Vector2(0.9, 0.29) 152 | bones/19/group = &"Body" 153 | bones/19/require = true 154 | bones/20/bone_name = &"tail" 155 | bones/20/bone_parent = &"hips" 156 | bones/20/tail_direction = 0 157 | bones/20/reference_pose = Transform3D(1, 1.07947e-16, 5.88537e-18, 1.08031e-16, -0.995756, -0.0920366, -4.07463e-18, 0.0920349, -0.995774, 3.69008e-17, -0.0963143, -0.0465977) 158 | bones/20/handle_offset = Vector2(0.5, 0.72) 159 | bones/20/group = &"Body" 160 | bones/20/require = false 161 | bones/21/bone_name = &"tail.001" 162 | bones/21/bone_parent = &"tail" 163 | bones/21/tail_direction = 0 164 | bones/21/reference_pose = Transform3D(1, -1.56059e-16, -1.01579e-16, 1.85499e-16, 0.787411, 0.616428, -1.62147e-17, -0.616428, 0.787412, 0, 0.120731, 8.19564e-08) 165 | bones/21/handle_offset = Vector2(0.5, 0.76) 166 | bones/21/group = &"Body" 167 | bones/21/require = false 168 | bones/22/bone_name = &"tail.002" 169 | bones/22/bone_parent = &"tail.001" 170 | bones/22/tail_direction = 0 171 | bones/22/reference_pose = Transform3D(1, -3.55271e-15, 2.38419e-07, 5.31365e-08, 0.974848, -0.222871, -2.32422e-07, 0.222871, 0.974848, -3.30872e-24, 0.16602, 5.96046e-08) 172 | bones/22/handle_offset = Vector2(0.5, 0.8) 173 | bones/22/group = &"Body" 174 | bones/22/require = false 175 | bones/23/bone_name = &"tail.003" 176 | bones/23/bone_parent = &"tail.002" 177 | bones/23/tail_direction = 0 178 | bones/23/reference_pose = Transform3D(1, -1.33932e-08, 3.83695e-10, 1.33936e-08, 0.998421, -0.0561751, 3.69275e-10, 0.0561751, 0.998421, 1.42335e-14, 0.186749, -5.96046e-08) 179 | bones/23/handle_offset = Vector2(0.5, 0.84) 180 | bones/23/group = &"Body" 181 | bones/23/require = false 182 | bones/24/bone_name = &"tail.004" 183 | bones/24/bone_parent = &"tail.003" 184 | bones/24/tail_direction = 0 185 | bones/24/reference_pose = Transform3D(1, -6.82967e-08, 9.99232e-09, 6.82971e-08, 0.958096, -0.286449, 9.98989e-09, 0.286449, 0.958096, -3.04297e-14, 0.163309, 0) 186 | bones/24/handle_offset = Vector2(0.5, 0.88) 187 | bones/24/group = &"Body" 188 | bones/24/require = false 189 | bones/25/bone_name = &"tail.005" 190 | bones/25/bone_parent = &"tail.004" 191 | bones/25/tail_direction = 0 192 | bones/25/reference_pose = Transform3D(1, -5.35596e-08, 6.0938e-09, 5.35596e-08, 0.974442, -0.224637, 6.09343e-09, 0.224637, 0.974442, 2.03461e-14, 0.146063, -5.96046e-08) 193 | bones/25/handle_offset = Vector2(0.5, 0.92) 194 | bones/25/group = &"Body" 195 | bones/25/require = false 196 | bones/26/bone_name = &"thigh.L" 197 | bones/26/bone_parent = &"hips" 198 | bones/26/tail_direction = 0 199 | bones/26/reference_pose = Transform3D(1, 0, 0, 0, 0.158291, -0.987393, 0, 0.987393, 0.158291, 0.1915, 0.181831, -0.00035328) 200 | bones/26/handle_offset = Vector2(0.37, 0.65) 201 | bones/26/group = &"Body" 202 | bones/26/require = true 203 | bones/27/bone_name = &"shin.L" 204 | bones/27/bone_parent = &"thigh.L" 205 | bones/27/tail_direction = 0 206 | bones/27/reference_pose = Transform3D(1, 0, 0, 0, 0.801756, -0.597651, 0, 0.597651, 0.801756, 0, 0.371825, -5.96046e-08) 207 | bones/27/handle_offset = Vector2(0.22, 0.65) 208 | bones/27/group = &"Body" 209 | bones/27/require = true 210 | bones/28/bone_name = &"feet.L" 211 | bones/28/bone_parent = &"shin.L" 212 | bones/28/tail_direction = 0 213 | bones/28/reference_pose = Transform3D(1, 1.45519e-11, -0.000272957, 0.00016792, 0.788381, 0.615188, 0.000215194, -0.615188, 0.788381, 0, 0.482723, 2.98023e-08) 214 | bones/28/handle_offset = Vector2(0.12, 0.65) 215 | bones/28/group = &"Body" 216 | bones/28/require = true 217 | bones/29/bone_name = &"toes.L" 218 | bones/29/bone_parent = &"feet.L" 219 | bones/29/tail_direction = 0 220 | bones/29/reference_pose = Transform3D(1, -7.69616e-05, -0.000336137, 0.000168615, 0.959428, 0.281955, 0.000300799, -0.281955, 0.959428, -1.08867e-09, 0.416825, 3.91701e-08) 221 | bones/29/handle_offset = Vector2(0.1, 0.6) 222 | bones/29/group = &"Body" 223 | bones/29/require = true 224 | bones/30/bone_name = &"thigh.R" 225 | bones/30/bone_parent = &"hips" 226 | bones/30/tail_direction = 0 227 | bones/30/reference_pose = Transform3D(1, 0, 0, 0, 0.158291, -0.987393, 0, 0.987393, 0.158291, -0.1915, 0.181831, -0.00035328) 228 | bones/30/handle_offset = Vector2(0.61, 0.65) 229 | bones/30/group = &"Body" 230 | bones/30/require = true 231 | bones/31/bone_name = &"shin.R" 232 | bones/31/bone_parent = &"thigh.R" 233 | bones/31/tail_direction = 0 234 | bones/31/reference_pose = Transform3D(1, 0, 0, 0, 0.801756, -0.597651, 0, 0.597651, 0.801756, 0, 0.371825, -5.96046e-08) 235 | bones/31/handle_offset = Vector2(0.76, 0.65) 236 | bones/31/group = &"Body" 237 | bones/31/require = true 238 | bones/32/bone_name = &"feet.R" 239 | bones/32/bone_parent = &"shin.R" 240 | bones/32/tail_direction = 0 241 | bones/32/reference_pose = Transform3D(1, 1.45519e-11, -0.000272957, 0.00016792, 0.788381, 0.615188, 0.000215194, -0.615188, 0.788381, 0, 0.482723, 2.98023e-08) 242 | bones/32/handle_offset = Vector2(0.88, 0.65) 243 | bones/32/group = &"Body" 244 | bones/32/require = true 245 | bones/33/bone_name = &"toes.R" 246 | bones/33/bone_parent = &"feet.R" 247 | bones/33/tail_direction = 0 248 | bones/33/reference_pose = Transform3D(1, -7.69616e-05, -0.000336137, 0.000168615, 0.959428, 0.281955, 0.000300799, -0.281955, 0.959428, -1.08867e-09, 0.416825, 3.53357e-08) 249 | bones/33/handle_offset = Vector2(0.9, 0.6) 250 | bones/33/group = &"Body" 251 | bones/33/require = true 252 | -------------------------------------------------------------------------------- /BoneMaps/felid_bone_map.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="BoneMap" load_steps=2 format=3 uid="uid://cesdf5vk2eles"] 2 | 3 | [ext_resource type="SkeletonProfile" uid="uid://cnynttloymqsm" path="res://CatsSkeletonProfileBuilder/felid_profile.tres" id="1_xo6av"] 4 | 5 | [resource] 6 | profile = ExtResource("1_xo6av") 7 | bonemap = null 8 | bone_map/root = &"root" 9 | bone_map/hips = &"DEF-hips" 10 | bone_map/spine.001 = &"DEF-spine.001" 11 | bone_map/spine.002 = &"DEF-spine.002" 12 | bone_map/spine.003 = &"DEF-spine.003" 13 | bone_map/neck = &"DEF-neck" 14 | bone_map/head = &"DEF-head" 15 | bone_map/jaw = &"DEF-jaw" 16 | bone_map/ear.L = &"DEF-ear.L" 17 | bone_map/ear.R = &"DEF-ear.R" 18 | bone_map/shoulder.L = &"DEF-shoulder.L" 19 | bone_map/upper_arm.L = &"DEF-upper_arm.L" 20 | bone_map/forearm.L = &"DEF-forearm.L" 21 | bone_map/hands.L = &"DEF-hands.L" 22 | bone_map/fingers.L = &"DEF-fingers.L" 23 | bone_map/shoulder.R = &"DEF-shoulder.R" 24 | bone_map/upper_arm.R = &"DEF-upper_arm.R" 25 | bone_map/forearm.R = &"DEF-forearm.R" 26 | bone_map/hands.R = &"DEF-hands.R" 27 | bone_map/fingers.R = &"DEF-fingers.R" 28 | bone_map/tail = &"DEF-tail" 29 | bone_map/tail.001 = &"DEF-tail.001" 30 | bone_map/tail.002 = &"DEF-tail.002" 31 | bone_map/tail.003 = &"DEF-tail.003" 32 | bone_map/tail.004 = &"DEF-tail.004" 33 | bone_map/tail.005 = &"DEF-tail.005" 34 | bone_map/thigh.L = &"DEF-thigh.L" 35 | bone_map/shin.L = &"DEF-shin.L" 36 | bone_map/feet.L = &"DEF-feet.L" 37 | bone_map/toes.L = &"DEF-toes.L" 38 | bone_map/thigh.R = &"DEF-thigh.R" 39 | bone_map/shin.R = &"DEF-shin.R" 40 | bone_map/feet.R = &"DEF-feet.R" 41 | bone_map/toes.R = &"DEF-toes.R" 42 | -------------------------------------------------------------------------------- /BoneMaps/felid_profile.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SkeletonProfile" load_steps=2 format=3 uid="uid://cnynttloymqsm"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://5n03ort3rhwq" path="res://CatsSkeletonProfileBuilder/4-leggedv2.png" id="1_8nvg1"] 4 | 5 | [resource] 6 | root_bone = &"root" 7 | scale_base_bone = &"hips" 8 | group_size = 1 9 | bone_size = 34 10 | groups/0/group_name = &"Body" 11 | groups/0/texture = ExtResource("1_8nvg1") 12 | bones/0/bone_name = &"root" 13 | bones/0/bone_parent = &"" 14 | bones/0/tail_direction = 0 15 | bones/0/reference_pose = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0) 16 | bones/0/handle_offset = Vector2(0.5, 0.98) 17 | bones/0/group = &"Body" 18 | bones/0/require = false 19 | bones/1/bone_name = &"hips" 20 | bones/1/bone_parent = &"root" 21 | bones/1/tail_direction = 1 22 | bones/1/bone_tail = &"DEF-spine.001" 23 | bones/1/reference_pose = Transform3D(1, 0, 0, 0, -0.965601, 0.260028, 0, -0.260028, -0.965603, 0, 0.1532, 0.2482) 24 | bones/1/handle_offset = Vector2(0.5, 0.65) 25 | bones/1/group = &"Body" 26 | bones/1/require = true 27 | bones/2/bone_name = &"spine.001" 28 | bones/2/bone_parent = &"hips" 29 | bones/2/tail_direction = 0 30 | bones/2/reference_pose = Transform3D(1, 0, 0, 0, 0.986431, 0.164175, 0, -0.164175, 0.986431, 0, 0.0657622, 0) 31 | bones/2/handle_offset = Vector2(0.5, 0.56) 32 | bones/2/group = &"Body" 33 | bones/2/require = true 34 | bones/3/bone_name = &"spine.002" 35 | bones/3/bone_parent = &"spine.001" 36 | bones/3/tail_direction = 0 37 | bones/3/reference_pose = Transform3D(1, 0, 0, 0, 0.995082, 0.0990534, 0, -0.0990534, 0.995082, 0, 0.0581799, 8.3819e-09) 38 | bones/3/handle_offset = Vector2(0.5, 0.43) 39 | bones/3/group = &"Body" 40 | bones/3/require = true 41 | bones/4/bone_name = &"spine.003" 42 | bones/4/bone_parent = &"spine.002" 43 | bones/4/tail_direction = 0 44 | bones/4/reference_pose = Transform3D(1, 0, 0, 0, 0.99549, 0.0948712, 0, -0.0948712, 0.995489, 0, 0.092, 5.06407e-09) 45 | bones/4/handle_offset = Vector2(0.5, 0.33) 46 | bones/4/group = &"Body" 47 | bones/4/require = true 48 | bones/5/bone_name = &"neck" 49 | bones/5/bone_parent = &"spine.003" 50 | bones/5/tail_direction = 1 51 | bones/5/bone_tail = &"DEF-head" 52 | bones/5/reference_pose = Transform3D(1, 7.10543e-15, 1.19211e-06, -1.97424e-07, 0.986192, 0.165609, -1.17565e-06, -0.165609, 0.986192, 0, 0.0948376, 1.11759e-08) 53 | bones/5/handle_offset = Vector2(0.5, 0.23) 54 | bones/5/group = &"Body" 55 | bones/5/require = true 56 | bones/6/bone_name = &"head" 57 | bones/6/bone_parent = &"neck" 58 | bones/6/tail_direction = 2 59 | bones/6/reference_pose = Transform3D(-1, -3.0932e-07, 1.06384e-06, -2.26879e-08, 0.96575, 0.259473, -1.10766e-06, 0.259473, -0.96575, -1.50543e-14, 0.059351, 0) 60 | bones/6/handle_offset = Vector2(0.5, 0.13) 61 | bones/6/group = &"Body" 62 | bones/6/require = true 63 | bones/7/bone_name = &"jaw" 64 | bones/7/bone_parent = &"head" 65 | bones/7/tail_direction = 0 66 | bones/7/reference_pose = Transform3D(-1, 2.05328e-08, -8.68697e-07, 2.23951e-07, 0.972037, -0.234826, 8.39584e-07, -0.234826, -0.972038, 3.58731e-09, 0.0242622, -0.0410268) 67 | bones/7/handle_offset = Vector2(0.5, 0.03) 68 | bones/7/group = &"Body" 69 | bones/7/require = true 70 | bones/8/bone_name = &"ear.L" 71 | bones/8/bone_parent = &"head" 72 | bones/8/tail_direction = 0 73 | bones/8/reference_pose = Transform3D(-0.845538, -0.526211, -0.090369, -0.308233, 0.34289, 0.887366, -0.435955, 0.778157, -0.452122, -0.0373005, 0.0171503, 0.0185848) 74 | bones/8/handle_offset = Vector2(0.4, 0.17) 75 | bones/8/group = &"Body" 76 | bones/8/require = true 77 | bones/9/bone_name = &"ear.R" 78 | bones/9/bone_parent = &"head" 79 | bones/9/tail_direction = 0 80 | bones/9/reference_pose = Transform3D(-0.845538, 0.526211, 0.0903689, 0.308232, 0.34289, 0.887367, 0.435955, 0.778158, -0.452121, 0.0373005, 0.0171503, 0.0185849) 81 | bones/9/handle_offset = Vector2(0.6, 0.17) 82 | bones/9/group = &"Body" 83 | bones/9/require = true 84 | bones/10/bone_name = &"shoulder.L" 85 | bones/10/bone_parent = &"spine.003" 86 | bones/10/tail_direction = 0 87 | bones/10/reference_pose = Transform3D(-0.333436, 0.323107, 0.885676, 0.844078, 0.520771, 0.12779, -0.419944, 0.790189, -0.446371, 0.0109, 0.0433717, -0.0340956) 88 | bones/10/handle_offset = Vector2(0.4, 0.33) 89 | bones/10/group = &"Body" 90 | bones/10/require = true 91 | bones/11/bone_name = &"upper_arm.L" 92 | bones/11/bone_parent = &"shoulder.L" 93 | bones/11/tail_direction = 0 94 | bones/11/reference_pose = Transform3D(0.333437, -0.75295, 0.567351, -0.323106, 0.474077, 0.819056, -0.885676, -0.456418, -0.0852079, -0.0141066, 0.070325, -0.00714272) 95 | bones/11/handle_offset = Vector2(0.32, 0.33) 96 | bones/11/group = &"Body" 97 | bones/11/require = true 98 | bones/12/bone_name = &"forearm.L" 99 | bones/12/bone_parent = &"upper_arm.L" 100 | bones/12/tail_direction = 0 101 | bones/12/reference_pose = Transform3D(1, 5.81888e-07, 2.42764e-06, 7.51154e-07, 0.857253, -0.514895, -2.38071e-06, 0.514895, 0.857253, 5.89349e-09, 0.0834196, -3.50859e-09) 102 | bones/12/handle_offset = Vector2(0.22, 0.33) 103 | bones/12/group = &"Body" 104 | bones/12/require = true 105 | bones/13/bone_name = &"hands.L" 106 | bones/13/bone_parent = &"forearm.L" 107 | bones/13/tail_direction = 0 108 | bones/13/reference_pose = Transform3D(1, -4.23692e-07, 6.85811e-08, 4.23693e-07, 0.948938, -0.315461, 6.85791e-08, 0.315461, 0.948939, 2.88072e-09, 0.0997776, 6.42393e-09) 109 | bones/13/handle_offset = Vector2(0.14, 0.33) 110 | bones/13/group = &"Body" 111 | bones/13/require = true 112 | bones/14/bone_name = &"fingers.L" 113 | bones/14/bone_parent = &"hands.L" 114 | bones/14/tail_direction = 0 115 | bones/14/reference_pose = Transform3D(0.998873, 0.0474649, 9.62e-05, -0.0224432, 0.474088, -0.880192, -0.0418238, 0.879197, 0.474619, 1.64914e-09, 0.0288187, -2.29674e-09) 116 | bones/14/handle_offset = Vector2(0.1, 0.29) 117 | bones/14/group = &"Body" 118 | bones/14/require = true 119 | bones/15/bone_name = &"shoulder.R" 120 | bones/15/bone_parent = &"spine.003" 121 | bones/15/tail_direction = 0 122 | bones/15/reference_pose = Transform3D(-0.333436, -0.323107, -0.885676, -0.844078, 0.520771, 0.12779, 0.419944, 0.790189, -0.446371, -0.0109, 0.0433717, -0.0340956) 123 | bones/15/handle_offset = Vector2(0.6, 0.33) 124 | bones/15/group = &"Body" 125 | bones/15/require = true 126 | bones/16/bone_name = &"upper_arm.R" 127 | bones/16/bone_parent = &"shoulder.R" 128 | bones/16/tail_direction = 0 129 | bones/16/reference_pose = Transform3D(0.333437, 0.75295, -0.567351, 0.323106, 0.474077, 0.819056, 0.885676, -0.456418, -0.0852079, 0.0141066, 0.070325, -0.00714272) 130 | bones/16/handle_offset = Vector2(0.7, 0.33) 131 | bones/16/group = &"Body" 132 | bones/16/require = true 133 | bones/17/bone_name = &"forearm.R" 134 | bones/17/bone_parent = &"upper_arm.R" 135 | bones/17/tail_direction = 0 136 | bones/17/reference_pose = Transform3D(1, -5.81888e-07, -2.18922e-06, -6.28394e-07, 0.857253, -0.514895, 2.17633e-06, 0.514895, 0.857253, -5.89349e-09, 0.0834196, -3.50859e-09) 137 | bones/17/handle_offset = Vector2(0.78, 0.33) 138 | bones/17/group = &"Body" 139 | bones/17/require = true 140 | bones/18/bone_name = &"hands.R" 141 | bones/18/bone_parent = &"forearm.R" 142 | bones/18/tail_direction = 0 143 | bones/18/reference_pose = Transform3D(1, 3.4848e-07, -2.94825e-07, -4.23692e-07, 0.948938, -0.315461, 1.69839e-07, 0.315461, 0.948939, -1.66402e-09, 0.0997776, 6.60274e-09) 144 | bones/18/handle_offset = Vector2(0.86, 0.33) 145 | bones/18/group = &"Body" 146 | bones/18/require = true 147 | bones/19/bone_name = &"fingers.R" 148 | bones/19/bone_parent = &"hands.R" 149 | bones/19/tail_direction = 0 150 | bones/19/reference_pose = Transform3D(0.998873, -0.0474649, -9.62e-05, 0.0224432, 0.474088, -0.880192, 0.0418238, 0.879197, 0.474619, -1.64915e-09, 0.0288187, -2.29673e-09) 151 | bones/19/handle_offset = Vector2(0.9, 0.29) 152 | bones/19/group = &"Body" 153 | bones/19/require = true 154 | bones/20/bone_name = &"tail" 155 | bones/20/bone_parent = &"hips" 156 | bones/20/tail_direction = 0 157 | bones/20/reference_pose = Transform3D(1, 4.32306e-17, 4.63491e-18, 4.05376e-17, -0.888509, -0.45886, -1.57186e-17, 0.458859, -0.88851, -9.21985e-18, -0.00211877, 0.000866037) 158 | bones/20/handle_offset = Vector2(0.5, 0.72) 159 | bones/20/group = &"Body" 160 | bones/20/require = false 161 | bones/21/bone_name = &"tail.001" 162 | bones/21/bone_parent = &"tail" 163 | bones/21/tail_direction = 0 164 | bones/21/reference_pose = Transform3D(1, -2.42003e-18, 2.92726e-18, 2.80171e-18, 0.990385, -0.138337, -2.56433e-18, 0.138337, 0.990385, -2.06795e-25, 0.0663455, 0) 165 | bones/21/handle_offset = Vector2(0.5, 0.76) 166 | bones/21/group = &"Body" 167 | bones/21/require = false 168 | bones/22/bone_name = &"tail.002" 169 | bones/22/bone_parent = &"tail.001" 170 | bones/22/tail_direction = 0 171 | bones/22/reference_pose = Transform3D(1, -3.23937e-17, -5.09975e-20, 3.23759e-17, 0.9995, -0.0316221, 1.07533e-18, 0.0316221, 0.9995, -8.01331e-25, 0.0663455, 0) 172 | bones/22/handle_offset = Vector2(0.5, 0.8) 173 | bones/22/group = &"Body" 174 | bones/22/require = false 175 | bones/23/bone_name = &"tail.003" 176 | bones/23/bone_parent = &"tail.002" 177 | bones/23/tail_direction = 0 178 | bones/23/reference_pose = Transform3D(1, 3.85309e-17, -4.39681e-20, -3.8467e-17, 0.998275, -0.0587166, -2.21851e-18, 0.0587166, 0.998275, -8.36874e-25, 0.0663456, 3.72529e-09) 179 | bones/23/handle_offset = Vector2(0.5, 0.84) 180 | bones/23/group = &"Body" 181 | bones/23/require = false 182 | bones/24/bone_name = &"tail.004" 183 | bones/24/bone_parent = &"tail.003" 184 | bones/24/tail_direction = 0 185 | bones/24/reference_pose = Transform3D(1, 1.63691e-17, 2.00941e-18, -1.59359e-17, 0.990453, -0.137847, -4.24667e-18, 0.137847, 0.990453, -1.55096e-25, 0.0663456, 3.72529e-09) 186 | bones/24/handle_offset = Vector2(0.5, 0.88) 187 | bones/24/group = &"Body" 188 | bones/24/require = false 189 | bones/25/bone_name = &"tail.005" 190 | bones/25/bone_parent = &"tail.004" 191 | bones/25/tail_direction = 0 192 | bones/25/reference_pose = Transform3D(1, -8.61269e-18, 7.374e-19, 8.61419e-18, 0.999998, -0.00204642, -7.19773e-19, 0.00204642, 0.999998, -2.17135e-24, 0.0663456, 7.45058e-09) 193 | bones/25/handle_offset = Vector2(0.5, 0.92) 194 | bones/25/group = &"Body" 195 | bones/25/require = false 196 | bones/26/bone_name = &"thigh.L" 197 | bones/26/bone_parent = &"hips" 198 | bones/26/tail_direction = 0 199 | bones/26/reference_pose = Transform3D(1, 0, 0, 0, 0.35927, -0.933234, 0, 0.933234, 0.35927, 0.031, 0.0372056, -0.00566953) 200 | bones/26/handle_offset = Vector2(0.37, 0.65) 201 | bones/26/group = &"Body" 202 | bones/26/require = true 203 | bones/27/bone_name = &"shin.L" 204 | bones/27/bone_parent = &"thigh.L" 205 | bones/27/tail_direction = 0 206 | bones/27/reference_pose = Transform3D(1, 0, -0.000244141, -0.000187274, 0.64156, -0.767072, 0.000156631, 0.767072, 0.64156, 1.86265e-09, 0.0753551, 5.58794e-09) 207 | bones/27/handle_offset = Vector2(0.22, 0.65) 208 | bones/27/group = &"Body" 209 | bones/27/require = true 210 | bones/28/bone_name = &"feet.L" 211 | bones/28/bone_parent = &"shin.L" 212 | bones/28/tail_direction = 0 213 | bones/28/reference_pose = Transform3D(1, -0.000198007, -0.000115891, 0.000209825, 0.584996, 0.811036, -9.27952e-05, -0.811036, 0.584996, -7.63976e-10, 0.0868112, 1.63318e-08) 214 | bones/28/handle_offset = Vector2(0.12, 0.65) 215 | bones/28/group = &"Body" 216 | bones/28/require = true 217 | bones/29/bone_name = &"toes.L" 218 | bones/29/bone_parent = &"feet.L" 219 | bones/29/tail_direction = 0 220 | bones/29/reference_pose = Transform3D(1, -0.000254711, 4.54721e-05, -1.48211e-07, 0.175181, 0.984536, -0.000258738, -0.984536, 0.175181, -2.08025e-09, 0.108398, -6.31954e-10) 221 | bones/29/handle_offset = Vector2(0.1, 0.6) 222 | bones/29/group = &"Body" 223 | bones/29/require = true 224 | bones/30/bone_name = &"thigh.R" 225 | bones/30/bone_parent = &"hips" 226 | bones/30/tail_direction = 0 227 | bones/30/reference_pose = Transform3D(1, 0, 0, 0, 0.35927, -0.933234, 0, 0.933234, 0.35927, -0.031, 0.0372056, -0.00566953) 228 | bones/30/handle_offset = Vector2(0.61, 0.65) 229 | bones/30/group = &"Body" 230 | bones/30/require = true 231 | bones/31/bone_name = &"shin.R" 232 | bones/31/bone_parent = &"thigh.R" 233 | bones/31/tail_direction = 0 234 | bones/31/reference_pose = Transform3D(1, 0, -0.000244141, -0.000187274, 0.64156, -0.767072, 0.000156631, 0.767072, 0.64156, -1.86265e-09, 0.0753551, 5.58794e-09) 235 | bones/31/handle_offset = Vector2(0.76, 0.65) 236 | bones/31/group = &"Body" 237 | bones/31/require = true 238 | bones/32/bone_name = &"feet.R" 239 | bones/32/bone_parent = &"shin.R" 240 | bones/32/tail_direction = 0 241 | bones/32/reference_pose = Transform3D(1, -0.000198007, -0.000116367, 0.000210211, 0.584996, 0.811036, -9.25162e-05, -0.811036, 0.584996, -7.63976e-10, 0.0868112, 1.34705e-08) 242 | bones/32/handle_offset = Vector2(0.88, 0.65) 243 | bones/32/group = &"Body" 244 | bones/32/require = true 245 | bones/33/bone_name = &"toes.R" 246 | bones/33/bone_parent = &"feet.R" 247 | bones/33/tail_direction = 0 248 | bones/33/reference_pose = Transform3D(1, -0.000255181, 4.53172e-05, 8.65111e-08, 0.175181, 0.984536, -0.000259173, -0.984536, 0.175181, 9.90207e-10, 0.108398, -2.4066e-08) 249 | bones/33/handle_offset = Vector2(0.9, 0.6) 250 | bones/33/group = &"Body" 251 | bones/33/require = true 252 | -------------------------------------------------------------------------------- /FORMER-README.md: -------------------------------------------------------------------------------- 1 | # Godot4-MixamoLibraries 2 | Ready-to-use Mixamo libraries to retarget to bones in Godot 4 3 | 4 | ![Controller Screenshot](https://github.com/pemguin005/Godot4-MixamoLibraries/blob/main/Screenshots/MixamoLib.GIF) 5 | 6 | ## UPDATE 7 | Adobe's terms of service 6.2.E state not to make datasets or databases from their content which this could be seen as. 8 | To respect their service, I am removing the libraries. 9 | I will continue to provide the Godot bone map, and will create a new tutorial showing how to make your own probject libraries for your own individual games. 10 | Perhaps we can make own community open library of open animations. Thanks for your understanding. 11 | 12 | ## Features 13 | 14 | Mixamo bone map and themed character libraries of Mixamo animations easily remapped to models in Godot that have a typical Mixamo skelelon 15 | 16 | ## Usage 17 | Requires Godot 4.0.13 Alpha or newer 18 | 19 | - Drop the Mixamo Bone Map.tres, and any -Library.res files you want into Godot 20 | - Drop in any Mixamo rigged model, that was exported in the base Tpose 21 | - Re-import with the Mixamo bone map. 22 | - Drop into scene, right click and Make Local (or Save as scene) 23 | - Open its animation player and select Animation > Manage Animations > Load Library > ...-library.res 24 | - It's now mapped to the new character! 25 | 26 | ![Controller Screenshot](https://github.com/pemguin005/Godot4-MixamoLibraries/blob/main/Screenshots/Screenshot.jpg) 27 | 28 | ## Tutorial 29 | 30 | A quick demonstration followed by a more indepth tutorial on how to use these libraries. 31 | 32 | https://youtu.be/NZpj25eu5BQ 33 | 34 | ## Background 35 | 36 | Explanation and inspiration originally from FinePointCGI. Additional info can be found in their video about troubleshooting skelelon remapping. This project was inspired entirely by this video. 37 | https://www.youtube.com/watch?v=NBukd3NmK88 38 | 39 | ## Support 40 | 41 | Support me by checking out my music at https://bonesinthewalls.bandcamp.com, https://open.spotify.com/artist/3eKiNBKa9Jel0Ev98hcZll?si=dX0koLvrSWarOkSMaEmbmg, or searching "Bones in the Walls" where ever you stream music. 42 | -------------------------------------------------------------------------------- /Libraries/Canine/DogLocomotion-Library.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/Libraries/Canine/DogLocomotion-Library.res -------------------------------------------------------------------------------- /Libraries/Humanoid/MeleeLib.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/Libraries/Humanoid/MeleeLib.res -------------------------------------------------------------------------------- /Libraries/Humanoid/Outdated-Faulty/Locomotion-Library.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/Libraries/Humanoid/Outdated-Faulty/Locomotion-Library.res -------------------------------------------------------------------------------- /Libraries/Humanoid/Outdated-Faulty/Melee-Library--OLD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/Libraries/Humanoid/Outdated-Faulty/Melee-Library--OLD.res -------------------------------------------------------------------------------- /Libraries/Humanoid/ShooterLib.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/Libraries/Humanoid/ShooterLib.res -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Godot4-OpenAnimationLibraries 2 | 3 | Ready-to-use animation libraries and bone maps for the Godot 4.x Game Engine 4 | 5 | [Watch my video](https://youtu.be/zCvCHO6sk3Y?si=qJ8ILE4eWoNjmLqr) here for more information and a bit of walkthrough. I have many videos on this topic. 6 | 7 | 8 | ## Prerequisites 9 | 10 | In order to use these you need a 3D model with the following: 11 | - A standard game dev skeleton 12 | - One animation applied (t-pose is fine) 13 | - Godot 4.x 14 | - Patience to double check your work! 15 | 16 | 17 | ## Setup and Usage 18 | 19 | ### 1. Import Your Model 20 | 21 | 1. Prepare your model by giving it a standard skeleton, and adding one animation to it (a tpose works perfectly here). 22 | 2. Import your model into Godot, and open the advanced import menu for it. 23 | 3. Select the Skeleton, and click the drop down to add a new bone map. 24 | 4. Select the Profile dropdown, and add a new Humanoid Profile 25 | 26 | ### 2. Bone Map Properly 27 | 28 | The bone map must show green dots for every bone. Each bone must be the correct bone or this whole process will fail. DO NOT ASSUME it's mapped prpoerly because you see green dots. 29 | # 30 | 1. Click each bone, and confirm the bone Godot requests, matches the appropriate bone on your own skeleton. 31 | 2. In the 'Groups' drop down, confirm the face, and hands are correct as well. 32 | 3. Click 'Reimport' when your done to apply those changes. 33 | # 34 | The bone map must show green dots for every bone. Each bone must be the correct bone or this whole process will fail. DO NOT ASSUME it's mapped prpoerly because you see green dots. 35 | 36 | ### 3. Add an Animation Library to Your Model 37 | 1. Open your model in Godot (either as it's own saved scene, added into another scene with 'make local' or expanded with 'editable children. We just need to access it's child nodes.) 38 | 2. Select its AnimationPlayer (if it doesn't have one, see section 1, step 1.) 39 | 3. Click the button "Animation", and "Manage Animations". (If you want to make your own library file, and not just add to this one, skip now to section 4) 40 | 4. Click the button "Add Library", and select one of the library files from this repo, or one you have made. 41 | 5. Enjoy all the animations! You're done! 42 | 43 | ### 4. Making your own Library files 44 | If you're own model has animations you'd like to pass to other models, complete sections 1-3:3 45 | 46 | 1. Go to the in the "Animation", "Manage Animations" menu. 47 | 2. Double click the animation collection and give it a name (defaults to "Global" but name it something more discernible to tell your library files part later on) 48 | 3. To the right of the collection, click the Save Icon. 49 | 4. Select, "Make Unique" then click the icon again and select "Save As" 50 | 5. Save your library file, and consider donating/sharing the animations to this project! 51 | 52 | Now for any models with a standard skeleton you can follow sections 1-3 to give them that library file. 53 | 54 | ## FAQ 55 | 56 | #### What is a "standard game dev skeleton?" 57 | 58 | A hierarchical bone structure, where the bones are properly all in a parent/child chain through the whole body. This makes IKs work properly in game engines, and is why Unity, Godot, Unreal, Mixamo, and many other softwares encourage you use a game dev skeleton. Blender's Rigify does NOT give you a game dev skeleton. 59 | 60 | #### Where can I get a game dev skeleton? 61 | 62 | - Mixamo can autorig your character with a game dev skeleton. It's a free and easy option for beginners. 63 | 64 | - Rigodotify is a free tool I made that uses Blender's Rigify as a base, but ensures the skeleton is game ready. 65 | 66 | - Make your own skeleton and rig in whatever software you like 67 | 68 | - Use any other software that produces a hierarchical bone structure. 69 | 70 | 71 | #### Only some of my body is animating correctly! Why? 72 | 73 | - Your bone map is likely incorrectly mapped for either the source animations, or the new model trying to use them. Open the advanced import menu again in Godot, click the skeleton, open it's bone map, and ensure that each Godot bone is correctly matched with the bone your skeleton. 74 | 75 | 76 | #### Root Motion is action weird! Why? 77 | - Does your model have a root bone? some folks don't notice, and they bring in a model without a root bone, and try to use the hips for root motion. This can get really buggy and may not work as expected. If your model doesn't have a root bone, it's not hard to add one. Load youtube and search for how to add a root bone. (essentially parent your whole deform skeleton rig to a new bone named "root", and ensure "deform bone" is checked so it exports properly) 78 | 79 | #### Your Mixamo bone map is faulty and didn't work for me, WHY?? 80 | 81 | - Some Mixamo models have slight differences, I can't plan for that, you can still use that bone map, but you'll need to double check where things went awry. Likely the root, or hips are incorrectly referencing the wrong bone. 82 | -------------------------------------------------------------------------------- /Screenshots/MixamoLib.GIF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/Screenshots/MixamoLib.GIF -------------------------------------------------------------------------------- /Screenshots/Screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catprisbrey/Godot4-OpenAnimationLibraries/ccc61c4d8cdc1fb7188a60ba4f51f7a3cac51df9/Screenshots/Screenshot.jpg --------------------------------------------------------------------------------