virtualx-engine/editor/plugins
TwistedTwigleg 8aa3c2f091 New and improved IK system for Skeleton2D
This PR and commit adds a new IK system for 2D with the Skeleton2D node
that adds several new IK solvers, a way to control bones in a Skeleton2D
node similar to that in Skeleton3D. It also adds additional changes
and functionality.

This work was sponsored by GSoC 2020 and TwistedTwigleg.

Full list of changes:
* Adds a SkeletonModifier2D resource
  * This resource is the base where all IK code is written and executed
  * Has a function for clamping angles, since it is so commonly used
  * Modifiers are unique when duplicated so it works with instancing
* Adds a SkeletonModifierStack2D resource
  * This resource manages a series of SkeletonModification2Ds
  * This is what the Skeleton2D directly interfaces with to make IK possible
* Adds SkeletonModifier2D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in its own file
  * There is also a SkeletonModifier2D resource that acts as a stack for using multiple stacks together
* Adds a PhysicalBone2D node
  * Works similar to the PhysicalBone3D node, but uses a RigidBody2D node
* Changes to Skeleton2D listed below:
  * Skeleton2D now holds a single SkeletonModificationStack2D for IK
  * Skeleton2D now has a local_pose_override, which overrides the Bone2D position similar to how the overrides work in Skeleton3D
* Changes to Bone2D listed below:
  * The default_length property has been changed to length. Length is the length of the bone to its child bone node
  * New bone_angle property, which is the angle the bone has to its first child bone node
  * Bone2D caches its transform when not modified by IK for IK interpolation purposes
  * Bone2D draws its own editor gizmo, though this is stated to change in the future
* Changes to CanvasItemEditor listed below:
  * Bone2D gizmo drawing code removed
  * The 2D IK code is removed. Now Bone2D is the only bone system for 2D
* Transform2D now has a looking_at function for rotating to face a position
* Two new node notifications: NOTIFICATION_EDITOR_PRE_SAVE and NOTIFICATION_EDITOR_POST_SAVE
  * These notifications only are called in the editor right before and after saving a scene
  * Needed for not saving the IK position when executing IK in the editor
* Documentation for all the changes listed above.
2021-06-05 15:19:51 -04:00
..
tiles Add TileMap grid editor settings. 2021-05-25 10:23:57 +02:00
abstract_polygon_2d_editor.cpp Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
abstract_polygon_2d_editor.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_blend_space_1d_editor.cpp Rename LineEdit caret_* properties getters and setters to match property 2021-04-17 12:41:23 +01:00
animation_blend_space_1d_editor.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_blend_space_2d_editor.cpp Rename LineEdit caret_* properties getters and setters to match property 2021-04-17 12:41:23 +01:00
animation_blend_space_2d_editor.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_blend_tree_editor_plugin.cpp Improve the editor theme 2021-04-27 22:38:26 +02:00
animation_blend_tree_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_player_editor_plugin.cpp Merge pull request #40397 from KoBeWi/silent_seeker 2021-05-23 17:28:21 +02:00
animation_player_editor_plugin.h Allow to move timeline without moving animation 2021-03-21 00:24:16 +01:00
animation_state_machine_editor.cpp Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
animation_state_machine_editor.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_tree_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_tree_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
asset_library_editor_plugin.cpp Implement shader caching 2021-05-31 10:13:09 +02:00
asset_library_editor_plugin.h Fix Asset Library URL not updating after been changed in editor settings 2021-03-13 22:55:59 +01:00
audio_stream_editor_plugin.cpp Improve the editor audio preview inspector appearance and functionality 2021-05-02 14:37:45 +02:00
audio_stream_editor_plugin.h Fix audio player not resetting after wav finishes 2021-03-20 20:16:53 +01:00
baked_lightmap_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
baked_lightmap_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
camera_3d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
camera_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
canvas_item_editor_plugin.cpp New and improved IK system for Skeleton2D 2021-06-05 15:19:51 -04:00
canvas_item_editor_plugin.h New and improved IK system for Skeleton2D 2021-06-05 15:19:51 -04:00
collision_polygon_2d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
collision_polygon_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
collision_polygon_3d_editor_plugin.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
collision_polygon_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
collision_shape_2d_editor_plugin.cpp Rename ButtonList enum and members to MouseButton 2021-03-23 07:13:23 -04:00
collision_shape_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
cpu_particles_2d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
cpu_particles_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
cpu_particles_3d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
cpu_particles_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
curve_editor_plugin.cpp Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
curve_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
debugger_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
debugger_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
editor_debugger_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
editor_debugger_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
editor_preview_plugins.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
editor_preview_plugins.h Modernize atomics 2021-02-18 17:12:46 +01:00
font_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
font_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gi_probe_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gi_probe_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gpu_particles_2d_editor_plugin.cpp Refactor Process Mode 2021-02-18 20:39:55 -03:00
gpu_particles_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gpu_particles_3d_editor_plugin.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
gpu_particles_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gpu_particles_collision_sdf_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gpu_particles_collision_sdf_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gradient_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gradient_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
item_list_editor_plugin.cpp Removed _change_notify 2021-02-10 19:31:24 -03:00
item_list_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
light_occluder_2d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
light_occluder_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
line_2d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
line_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
material_editor_plugin.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
material_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
mesh_editor_plugin.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
mesh_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
mesh_instance_3d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
mesh_instance_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
mesh_library_editor_plugin.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
mesh_library_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
multimesh_editor_plugin.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
multimesh_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_polygon_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_polygon_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
node_3d_editor_plugin.cpp Rename Node3D's property translation to position 2021-06-04 09:54:52 +01:00
node_3d_editor_plugin.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
occluder_instance_3d_editor_plugin.cpp Implement occlusion culling 2021-04-23 21:45:23 +02:00
occluder_instance_3d_editor_plugin.h Implement occlusion culling 2021-04-23 21:45:23 +02:00
ot_features_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
ot_features_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
packed_scene_translation_parser_plugin.cpp Improve resource load cache 2021-02-11 15:44:28 -03:00
packed_scene_translation_parser_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
path_2d_editor_plugin.cpp Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
path_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
path_3d_editor_plugin.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
path_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
physical_bone_3d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
physical_bone_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
polygon_2d_editor_plugin.cpp New and improved IK system for Skeleton2D 2021-06-05 15:19:51 -04:00
polygon_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
resource_preloader_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
resource_preloader_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
root_motion_editor_plugin.cpp Improve the editor theme 2021-04-27 22:38:26 +02:00
root_motion_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
script_editor_plugin.cpp Merge pull request #47336 from Calinou/rename-shader-file-extension 2021-06-04 11:26:14 +02:00
script_editor_plugin.h Add get_base_editor to ScriptEditorBase 2021-05-15 18:47:00 +07:00
script_text_editor.cpp Move and expose Code Hint in CodeEdit 2021-06-01 15:38:45 +01:00
script_text_editor.h Add custom background line colour to TextEdit and remove marked lines 2021-05-22 14:41:55 +01:00
SCsub Rework the TileSet resource and TileMap nodes: 2021-05-07 18:06:17 +02:00
shader_editor_plugin.cpp Move and expose Code Hint in CodeEdit 2021-06-01 15:38:45 +01:00
shader_editor_plugin.h Basic warning support implementation for the Godot Shading Language. 2021-05-22 19:24:31 +03:00
shader_file_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
shader_file_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
skeleton_2d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
skeleton_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
skeleton_3d_editor_plugin.cpp Rename EditorPropertyTransform to EditorPropertyTransform3D 2021-06-03 21:58:26 -04:00
skeleton_3d_editor_plugin.h Rename EditorPropertyTransform to EditorPropertyTransform3D 2021-06-03 21:58:26 -04:00
skeleton_ik_3d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
skeleton_ik_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
sprite_2d_editor_plugin.cpp Rename Texture.get_data() to get_image() 2021-03-28 13:00:46 +01:00
sprite_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
sprite_frames_editor_plugin.cpp SpriteFramesEditor Minor fixes 2021-05-23 10:59:21 +02:00
sprite_frames_editor_plugin.h SpriteFramesEditor Minor fixes 2021-05-23 10:59:21 +02:00
style_box_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
style_box_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
text_editor.cpp Add custom background line colour to TextEdit and remove marked lines 2021-05-22 14:41:55 +01:00
text_editor.h Add get_base_editor to ScriptEditorBase 2021-05-15 18:47:00 +07:00
texture_3d_editor_plugin.cpp Removed _change_notify 2021-02-10 19:31:24 -03:00
texture_3d_editor_plugin.h Removed _change_notify 2021-02-10 19:31:24 -03:00
texture_editor_plugin.cpp Remove obsolete LargeTexture, it's no longer useful since 3.x 2021-04-28 15:51:55 +02:00
texture_editor_plugin.h Removed _change_notify 2021-02-10 19:31:24 -03:00
texture_layered_editor_plugin.cpp Fix crashes in *_input functions 2021-04-05 08:52:21 +02:00
texture_layered_editor_plugin.h Removed _change_notify 2021-02-10 19:31:24 -03:00
texture_region_editor_plugin.cpp TextureRegionEditor Fix not updating on editing region with autoslice cached 2021-06-01 12:17:32 +02:00
texture_region_editor_plugin.h Removed _change_notify 2021-02-10 19:31:24 -03:00
theme_editor_plugin.cpp Improve TreeItem API and allow to move nodes 2021-05-17 22:06:46 +02:00
theme_editor_plugin.h Add outlines and contrasting backgrounds to the editor UI elements 2021-05-12 01:45:56 +03:00
version_control_editor_plugin.cpp Improve TreeItem API and allow to move nodes 2021-05-17 22:06:46 +02:00
version_control_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
visual_shader_editor_plugin.cpp Rename EditorPropertyTransform to EditorPropertyTransform3D 2021-06-03 21:58:26 -04:00
visual_shader_editor_plugin.h Fix changing theme coloring for error label in VisualShader editor 2021-06-03 10:58:55 +03:00