Commit Graph

784 Commits

Author SHA1 Message Date
07fa703645 Improvements to the skeleton's gizmo. It still has issues though. I'll get back to it later. 2022-08-10 14:28:26 +02:00
73fa94274b Fixed the bone editor's bone tree. 2022-08-10 12:51:20 +02:00
22ce231a4e Backported from Godot 4: New and improved IK system for Skeleton3D
This PR and commit adds a new IK system for 3D with the Skeleton3D node
that adds several new IK solvers, as well as additional changes and functionality
for making bone manipulation in Godot easier.
This work was sponsored by GSoC 2020 and TwistedTwigleg
Full list of changes:
* Adds a SkeletonModification3D resource
  * This resource is the base where all IK code is written and executed
* Adds a SkeletonModificationStack3D resource
  * This node oversees the execution of the modifications and acts as a bridge of sorts for the modifications to the Skeleton3D node
* Adds SkeletonModification3D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in it's own file
* Several changes to Skeletons, listed below:
  * Added local_pose_override, which acts just like global_pose_override but keeps bone-child relationships intract
    * So if you move a bone using local_pose_override, all of the bones that are children will also be moved. This is different than global_pose_override, which only affects the individual bone
  * Internally bones keep track of their children. This removes the need of a processing list, makes it possible to update just a few select bones at a time, and makes it easier to traverse down the bone chain
  * Additional functions added for converting from world transform to global poses, global poses to local poses, and all the same changes but backwards (local to global, global to world). This makes it much easier to work with bone transforms without needing to think too much about how to convert them.
  * New signal added, bone_pose_changed, that can be used to tell if a specific bone changed its transform. Needed for BoneAttachment3D
  * Added functions for getting the forward position of a bone
* BoneAttachment3D node refactored heavily
  * BoneAttachment3D node is now completely standalone in its functionality.
    * This makes the code easier and less interconnected, as well as allowing them to function properly without being direct children of Skeleton3D nodes
  * BoneAttachment3D now can be set either using the index or the bone name.
  * BoneAttachment3D nodes can now set the bone transform instead of just following it. This is disabled by default for compatibility
  * BoneAttachment3D now shows a warning when not configured correctly
* Added rotate_to_align function in Basis
* Added class reference documentation for all changes
- TwistedTwigleg
5ffed49907
Note: It still needs some work.
2022-08-10 01:01:38 +02:00
cf918406ae Renamed Skeleton's skeleton_updated signal to pose_updated to make the following backports that much easier. 2022-08-09 22:31:17 +02:00
a478334d4a Backported from Godot master: Made low level changes to the Skeleton3D class and Skeleton3D inspector. Changes listed below:
* Added helper functions to Skeleton3D for converting transforms from bone space to global space, and vice versa.
* Updated the Skeleton3D class reference.
* Changed the icon used for bones in the Skeleton3D inspector to use BoneAttachement3D's icon.
* Changed the Skeleton3D inspector to use EditorPropertyTransform and EditorPropertyVector3 when possible.
* Placed the Transform/Matrix for each bone in a sub-section, so it is visually similar to the Node3D inspector.
- TwistedTwigleg
24905becb2
- Also fixed smaller issues.
2022-08-09 21:57:46 +02:00
3b0c27d89c Fixed the skeleton editor. 2022-08-09 18:32:39 +02:00
6d293dc7a3 Removed Transform type track from the Animation. This leaves a few things, like the skeleton editor broken, it will be fixed soon. 2022-08-09 17:40:42 +02:00
8fd473f685 Backported: "Remove animation 3D transform track, replace by loc/rot/scale tracks" from Godot4.
ec19ed3723
Its a bit broken right now, more patches need to be ported. Also I kept the Transform track for now, and I did not touch the gltf module yet.
2022-08-08 23:49:18 +02:00
d89dc61436 Switched back to the old gltf module. Apparently this one can export aswell. 2022-08-08 19:45:06 +02:00
9ae0437034 Backported and added EditorSceneFormatImporterFBX and EditorSceneFormatImporterGLTF to the build. 2022-08-08 18:52:58 +02:00
f086cf4128 Now GLTFDocument can be built. 2022-08-08 18:01:02 +02:00
42607ee8ca Lots of work on GLTFDocument. 2022-08-08 02:53:46 +02:00
341b1a105f Update method in GLTFDocumentExtensionConvertImporterMesh. 2022-08-08 00:52:21 +02:00
b28af3a912 Proper 3.x style bindings for GLTFDocumentExtension. 2022-08-08 00:50:00 +02:00
53fcf8b2d3 Cleaned GLTFDocumentExtensionConvertImporterMesh too. 2022-08-08 00:43:26 +02:00
5e5ae40009 Cleaned up GLTFDocumentExtension aswell. 2022-08-08 00:39:35 +02:00
2f9608aa65 GLTFState is also in the build now. 2022-08-08 00:23:19 +02:00
435a59947a Cleaned up and added GLTF helper methods to the build. 2022-08-08 00:20:08 +02:00
5ac0285ea4 More fixes. 2022-08-07 22:53:31 +02:00
cda00a7b80 Fixed most includes. 2022-08-07 21:52:04 +02:00
23c2a98ee1 Deapplied ec19ed3723 from the gltf module for now. 2022-08-07 21:36:44 +02:00
7dd9df5e86 Backport FileAccess and DirAccess usage. 2022-08-07 21:26:40 +02:00
1bc7531da7 Remove Gridmap and CSG support from the gltf module. 2022-08-07 21:02:32 +02:00
fc7f3857da Mass replace godot4 class names to 3.x. 2022-08-07 21:00:54 +02:00
81dc812e6f Move include guards to the top of the files. 2022-08-07 20:56:19 +02:00
7c4416503e Replaced the gltf modlue to the one in godot4. It's currently disabled by default while it can't be built. 2022-08-07 20:52:06 +02:00
f8ac4e5708 Check whether the gltf module is enabled or not before trying to use it. 2022-08-07 20:50:41 +02:00
8e6e429653 Removed unnecessary import. 2022-08-07 20:49:57 +02:00
81145db235 Actually check whether modules are enabled, not just for their existence in mesh_data_resource's SCsub. 2022-08-07 20:49:29 +02:00
2aa3fa0468 Fix typo, and init variable to 0. 2022-07-31 18:03:18 +02:00
068143691c Added simple scaling for uvs for TiledWalls. 2022-07-31 14:52:58 +02:00
1a7c404a17 Implemented texture scale for TiledWalls. 2022-07-31 14:47:23 +02:00
40d9d6b49b Implemented handling the new collider_z_offset property for merged TiledWalls. 2022-07-31 14:04:26 +02:00
0227b18d06 Codestyle fixes. 2022-07-31 13:43:36 +02:00
9771f1af99 Codestyle fixes. 2022-07-31 13:36:54 +02:00
f5b3262bde Fix setter type. 2022-07-31 13:31:14 +02:00
27eafa074e Fixed the 2 add methods in TiledWallData. 2022-07-31 13:22:55 +02:00
71f9dd4cd2 Added collider z offset, and texture scale parameters to TiledWallData. Also smaller fixes and codestyle improvements. 2022-07-31 11:29:03 +02:00
9a79a37ec9 Codestyle fixes for the PropMesher. 2022-07-31 11:01:57 +02:00
ec789f1b87 Fixed the property validation for aura triggers and aura stat attributes in Spell. 2022-07-31 00:19:25 +02:00
40ed18dd0d Remove accidental import. 2022-07-31 00:02:31 +02:00
c4e7bc1c45 Reused the old unused PROPERTY_HINT_SPRITE_FRAMES as PROPERTY_HINT_BUTTON. It allows you to add buttons to the inspectors. 2022-07-31 00:01:58 +02:00
249dd4d661 Updated property hints for variant arrays. 2022-07-30 21:58:40 +02:00
65afe14ca4 Ported: [3.5] Replace Navigation std::vector use with LocalVector
Replace Navigation std::vector use with LocalVector.
- smix8
d0a78d05eb
2022-07-30 00:44:53 +02:00
bd391e6fc7 Did the same change to cscript aswell. 2022-07-29 23:07:19 +02:00
Dallon Feldner
90707b7098 Don't print redundant errors when parsing GDScript 2022-07-29 23:04:16 +02:00
Haoyu Qiu
ba8978a0ac Fix doc for print_debug 2022-07-29 22:34:21 +02:00
c569ecfad1 Ported: TileMapEditor Fix interrupted erasing not being properly finished - kleonc
66551a94be
2022-07-29 22:06:26 +02:00
PZerua
8841a5f056 Fix light intensity and attenuation import from GLTF
(cherry picked from commit aa7ab96e7163578f0318546b0b39a4d962e88511)
2022-07-29 19:59:16 +02:00
8fb683fe5d Also port hte previous fix to cscript. 2022-07-29 19:55:28 +02:00