Age | Commit message (Collapse) | Author |
|
API improvement on the physics (CharacterBody and related classes)
|
|
TwistedTwigleg/GSOC_2020_Working_Branch_IK_SQUASHED
New and improved IK system for Skeleton3D - Squashed!
|
|
|
|
|
|
Changes:
- Rename few methods/property and group them in the editor when it's possible
- Make MotionResult API consistency with KinematicCollision
- Return a boolean in move_and_slide if there was a collision
- New methods:
- get_floor_angle on CharacterBody to get the floor angle.
- get_angle on KinematicCollision to get the collision angle.
- get_last_slide_collision to quickly get the latest collision of move_and_slide.
|
|
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
|
|
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).
|
|
|
|
|
|
Fix directional shadow bias
|
|
Changed `TransformMult` node to `TransformOp` in visual shaders
|
|
Use the Unicode multiplication symbol where relevant
|
|
If enabled, key/touch/joystick events will be flushed just before every idle and physics frame.
Enabling this can greatly improve the responsiveness to input, specially in devices that need to run multiple physics frames per each idle frame, because of not being powerful enough to run at the target frame rate.
This will only work for platforms using input buffering (regardless event accumulation). Currenly, only Android does so, but could be implemented for iOS in an upcoming PR.
|
|
Port camera feed to the new RenderingServer API.
|
|
|
|
Fix incorrect descriptions for EditorFileSystem's `get_file_type()`
|
|
Fix breakpoint toggle signal not firing when expected
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
Better port handling connection for `GraphEdit`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
doc: Add documentation for JSONRPC class
|
|
Fix the Use Nearest Mipmap Filter project setting not working
|
|
|
|
|
|
The project setting wasn't being used anywhere.
This also tweaks the property hints to denote that these properties
are only effective after a restart.
|
|
Also changed CapsuleMesh to make settings consistent between render and
physics.
|
|
These are the only places in the docs that were not cased like this. Now they are!
|
|
|
|
|
|
Error handling functions for GdScript
|
|
|
|
Decrease the default depth of field bokeh quality
|
|
Docs: Add warnings about no SSL/(D)TLS revocation
|
|
|
|
This makes depth of field perform better out of the box, with little
visual difference.
|
|
|
|
Fixes and optimizations to mobile renderer
|