Commit Graph

2242 Commits

Author SHA1 Message Date
Rémi Verschelde fff9a451a1
Merge pull request #51368 from TwistedTwigleg/GSOC_2020_Working_Branch_IK_SQUASHED
New and improved IK system for Skeleton3D - Squashed!
2021-08-16 15:37:17 +02:00
Yuri Roubinsky 1e60fcc53c Fix incorrect inheritance of `VisualShaderNodeParticleAccelerator` 2021-08-16 14:17:31 +03:00
Rémi Verschelde 3ce53e458e
Merge pull request #50159 from Calinou/standardmaterial3d-add-shader-comment
Add a comment at the top of generated shaders
2021-08-16 13:00:55 +02:00
Rémi Verschelde 55d26af588
Merge pull request #51608 from clayjohn/Vulkan-Panorama-sky-hint
Use hint_albedo in SkyMaterials
2021-08-16 12:41:12 +02:00
Umang Kalra c2f8c94b15 Changes the icon of node arranger in GraphEdit/VisualScript/VisualShader 2021-08-16 12:30:15 +05:30
Hugo Locurcio c9a491b671
Add a comment at the top of generated shaders
This comment is useful to determine the origin of ShaderMaterials
converted from built-in material types (such as CanvasItemMaterial
or StandardMaterial3D).

The Godot version is also included in case the shader needs to be
regenerated with a newer engine version.
2021-08-16 05:19:39 +02:00
Yuri Roubinsky e537a1f10e Added missed limiters for Visual Shader node enums 2021-08-15 19:10:51 +03:00
TwistedTwigleg 5ffed49907 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
2021-08-14 15:57:00 -04:00
Rémi Verschelde b9b6102b91
Merge pull request #51660 from AnilBK/use-short-functions
Use get_global_* functions instead of using transforms.
2021-08-14 12:17:53 +02:00
Rémi Verschelde a96c96ca72
Merge pull request #50147 from aaronfranke/disable-node3d
Disable Node3D when compiling without 3D and fix disable_3d option
2021-08-14 11:59:06 +02:00
Anilforextra c390f0515d Use get_global_* functions instead of using transforms. 2021-08-14 14:01:57 +05:45
Rémi Verschelde 59879447a3
Merge pull request #51636 from Calinou/rename-lineshape2d
Rename LineShape2D to WorldMarginShape2D
2021-08-14 09:36:16 +02:00
Hugo Locurcio 8e3f71d750
Rename LineShape2D to WorldMarginShape2D
The new name makes it more obvious that it acts as an infinite plane,
and is consistent with its 3D counterpart (WorldMarginShape3D).
2021-08-14 03:12:13 +02:00
Rémi Verschelde 81512a3732
Style: Cleanup code using `text_editor/completion/use_single_quotes` 2021-08-13 21:27:57 +02:00
Aaron Franke 7094ccfbe9
Disable Node3D when compiling without 3D and fix disable_3d option 2021-08-13 08:59:48 -05:00
Rémi Verschelde 24ec20414a
Merge pull request #50114 from Chaosus/vs_constants
Few improvements for constants in visual shader
2021-08-13 14:45:13 +02:00
Rémi Verschelde f0e420e981
Merge pull request #51519 from Chaosus/vs_transform_operator
Changed `TransformMult` node to `TransformOp` in visual shaders
2021-08-13 14:44:14 +02:00
Rémi Verschelde 85e315d6e8
Merge pull request #51607 from aaronfranke/includes
Fix some unnecessary includes
2021-08-13 14:38:56 +02:00
bruvzg 8f70232a15 Add placeholder textures to ensure CameraTexture / CameraFeed always have valid RIDs. 2021-08-13 12:32:01 +03:00
clayjohn 5fce0b3cb5 Use hint_albedo in SkyMaterials 2021-08-12 23:00:50 -07:00
Aaron Franke eb4902a455
Fix some unnecessary includes 2021-08-13 00:27:38 -05:00
Rémi Verschelde 56ac302dc4
Merge pull request #51580 from aaronfranke/particles-real-double
Use real_t and double where appropriate in Particles
2021-08-12 20:51:21 +02:00
Yuri Roubinsky b2b33ce4f6
Merge pull request #51572 from Chaosus/vs_fix_transform_instance
Fix printing error about unsupported modifier on `TransformUniform`
2021-08-12 21:23:18 +03:00
Yuri Roubinsky c43b7c113f Fix printing error about unsupported modifier on `TransformUniform` 2021-08-12 19:40:45 +03:00
Aaron Franke 03e2544d50
Use real_t and double where appropriate in Particles 2021-08-12 11:35:31 -05:00
Rémi Verschelde c89ad92c96
Merge pull request #51532 from nekomatata/layer-mask-accessors
Uniformize layer names, script methods and documentation
2021-08-12 17:55:11 +02:00
PouleyKetchoupp 989acbbe81 Uniformize layer names, script methods and documentation
- Back to 1-based layer names to make it clearer in editor UI
- Layer bit accessors are renamed to layer value and 1-based too
- Uniform errors and documentation in render and physics
- Fix a few remaining collision_layer used in place of collision_mask
2021-08-12 08:06:42 -07:00
Morris Tabor 0e4468cbec Fix regressions caused by recent particle spread refactor
Caused by https://github.com/godotengine/godot/pull/47228
Same as https://github.com/godotengine/godot/pull/51553 but for master.
2021-08-12 12:08:37 +02:00
Yuri Roubinsky 810c30dc09
Merge pull request #51517 from Chaosus/precise_graphedit_port_handling
Better port handling connection for `GraphEdit`
2021-08-12 11:40:52 +03:00
Yuri Roubinsky 61904d56ea Better port handling connection for `GraphEdit` 2021-08-12 09:09:24 +03:00
PouleyKetchoupp f9176a39ce Make radius & height in CapsuleShape3D independent
Also changed CapsuleMesh to make settings consistent between render and
physics.
2021-08-11 14:54:53 -07:00
kobewi b35a2516a0 Improve CapsuleShape2D size clamping 2021-08-11 21:39:18 +02:00
Yuri Roubinsky 9cf158019d Changed `TransformMult` node to `TransformOp` in visual shaders 2021-08-11 22:05:04 +03:00
Rémi Verschelde e30be92ce8
Merge pull request #41634 from KoBeWi/the_independence 2021-08-11 18:16:24 +02:00
Tomasz Chabora f12f5b36b5 Make radius & height in CapsuleShape2D independent 2021-08-11 17:34:27 +02:00
Haoyu Qiu 60298328ca Improve NavigationMesh typing, parameter validation and documentation 2021-08-11 18:18:10 +08:00
Yuri Roubinsky 0eb97c11cf Few improvements for constants in visual shader 2021-08-11 13:14:16 +03:00
Rémi Verschelde 7d43da928f
Merge pull request #51490 from nekomatata/clean-character-body
Remove infinite inertia and ray shapes from CharacterBody
2021-08-11 08:04:09 +02:00
Rémi Verschelde 2c88e1c15d
Merge pull request #51178 from Geometror/layout-options-textline-textparagraph
Various text layout improvements (TextLine, TextParagraph, Label, TextServer)
2021-08-11 07:51:57 +02:00
Rémi Verschelde 588883eb4a
Merge pull request #51442 from Geometror/styleboxflat-fake-aa-float
StyleBox fake AA improvements (make anti aliasing size a float property)
2021-08-11 07:35:53 +02:00
Hendrik Brucker 403f4902d0 Various text layout improvements (TextLine, TextParagraph, Label, TextServer) 2021-08-11 00:09:48 +02:00
Hendrik Brucker db2460f43c StyleBox fake AA improvements (aa_size float property) 2021-08-10 23:37:06 +02:00
K. S. Ernest (iFire) Lee 18bd0fee5a
Merge pull request #49343 from theoway/node_auto_arrangement_graph_edit
Node Auto Arrangement in GraphEdit/VisualScript/VisualShader
2021-08-10 15:42:04 -04:00
Umang Kalra 12fc3f1eef Automatic arrangement of nodes in VisualScript/VisualShaders editors
This PR and commit adds the functionality to arrange nodes in VisualScript/VisualShader editor. The layout generated by this 
feature is compact, with minimum crossings between connections
& uniform horizontal & vertical gaps between the nodes. 

This work has been sponsored by GSoC '21.

Full list of additions/changes:
• Added arrange_nodes() method in GraphEdit module.
    • This method computes new positions for all the selected
      nodes by forming blocks and compressing them.
      The nodes are moved to these new positions. 
    • Adding this method to GraphEdit makes it available for 
      use in VisualScript/VisualShaders editors and its other
      subclasses. 
• Button with an icon has been added to call arrange_nodes() in GraphEdit. 
    • This button is inherited by VisualScript/VisualShaders editors
       to invoke the method.
• Undo/redo is functional with this method.
    • By using signals in arrange_nodes(), position changes are registered 
       in undo/redo stack of the subclass that is using the method. 
• Metadata of the method has been updated in ClassDB
• Method description has been added to class reference of GraphEdit
2021-08-11 00:44:28 +05:30
PouleyKetchoupp 4da3a87f7d Remove infinite inertia and ray shapes from CharacterBody
Infinite inertia:
Not needed anymore, since it's now possible to set one-directional
collision layers in order for characters to ignore rigid bodies, while
rigid bodies still collide with characters.

Ray shapes:
They were introduced as a work around to allow constant speed on slopes,
which is now possible with the new property in CharacterBody instead.
2021-08-10 12:10:26 -07:00
Rémi Verschelde 483bbd6ecc
Merge pull request #51464 from hpnrep6/mesh-disable-deprecated
Enclose deprecated components with `DISABLE_DEPRECATED` in Mesh
2021-08-10 09:56:27 +02:00
Rémi Verschelde d56da233c4
Merge pull request #51463 from SaracenOne/assign_path_fix
Assign embedded text resource path earlier to prevent error on embedded scripts
2021-08-10 08:13:14 +02:00
hpnrep6 0eca908e86
Enclose unused components in DISABLE_DEPRECATED 2021-08-10 00:54:24 -04:00
SaracenOne d00c151db1 Assign embedded text resource path earlier to prevent error on embedded scripts. 2021-08-10 05:42:35 +01:00
Aaron Franke 430ad75963
Some work on double support 2021-08-09 17:43:48 -05:00