summaryrefslogtreecommitdiff
path: root/scene/3d
AgeCommit message (Collapse)Author
2021-09-28Sync to physics true by default for AnimatableBodyfabriceci
2021-09-28Merge pull request #52953 from nekomatata/fix-collision-recovery-depthRémi Verschelde
2021-09-27Fixed typo in bone attachment warningDuroxxigar
2021-09-27Improved logic for CharacterBody collision recovery depthPouleyKetchoupp
Allows 2D character controller to work without applying gravity when touching the ground (also more safely in 3D), and collision detection is more flexible with different safe margin values. Character body motion changes in 2D and 3D: -Recovery only for depth > min contact depth to help with collision detection consistency (rest info could be lost if recovery was too much) -Adaptive min contact depth (based on margin) instead of space parameter Extra CharacterBody changes: -2D: apply changes made in 3D for stop on slope and floor snap that help fixing some jittering cases -3D: fix minor inconsistencies in stop on slope and floor snap logic
2021-09-25fix out of bounds crash in GPUParticle3D::_skinning_changed()LATRio
2021-09-23Merge pull request #51920 from ↵Rémi Verschelde
jmb462/missing-sname-macro-optimization-in-some-functions
2021-09-23Merge pull request #52956 from laws65/skeleton3d-bone-fixRémi Verschelde
2021-09-23Prevent being able to set bone's parent as itselflaws65
2021-09-22Don't override KinematicCollision reference when still in use in scriptPouleyKetchoupp
In case the reference is stored in script, create a new instance to avoid overriding the previous values. Otherwise, re-use the reference as before to avoid extra allocations.
2021-09-22Port 2D improvement to move and slide 3Dfabriceci
Co-authored-by: Camille Mohr-Daurat <pouleyketchoup@gmail.com>
2021-09-21Add Get Center Method for Rect2/Rect2i and AABB.Anilforextra
2021-09-17Merge pull request #52774 from Calinou/audiostreamplayer3d-remove-out-of-rangeRémi Verschelde
2021-09-17Remove unused `out_of_range_mode` property from AudioStreamPlayer3DHugo Locurcio
The `out_of_range_mode` property is no longer used since audio mixing was moved out of the various AudioStreamPlayer nodes.
2021-09-16Rename Listener2D/Listener3D to AudioListener2D/AudioListener3DWilson E. Alvarez
2021-09-16Merge pull request #52681 from nekomatata/rename-rigid-bodyCamille Mohr-Daurat
Rename RigidBody to RigidDynamicBody and SoftBody to SoftDynamicBody
2021-09-16Rename RigidBody to RigidDynamicBody and SoftBody to SoftDynamicBodyPouleyKetchoupp
2021-09-16Display a editor gizmo icon for Listener3DHugo Locurcio
The icon was present in `editor/icons/`, but it was never implemented in the editor gizmos code. This also removes some unused gizmo drawing code (overridden methods that are no longer called anywhere).
2021-09-14Merge pull request #52266 from AndreaCatania/collRémi Verschelde
2021-09-14Make sure IK target is inside tree before using its transformHaoyu Qiu
2021-09-08Merge pull request #52462 from TokageItLab/fixed-regression-of-skinningJuan Linietsky
Fixed regression of skinning with skeleton
2021-09-08Improve collision generation usability in the new 3D scene import workflow.AndreaCatania
With this PR it's possible to add a collision during the Mesh import, directly in editor. To generate the shape is possible to chose between the following options: - Decompose Convex: The Mesh is decomposed in one or many Convex Shapes (Using the VHACD library). - Simple Convex: Is generated a convex shape that enclose the entire mesh. - Trimesh: Generate a trimesh shape using the Mesh faces. - Box: Add a primitive box shape, where you can tweak the `size`, `position`, `rotation`. - Sphere: Add a primitive sphere shape, where you can tweak the `radius`, `position`, `rotation`. - Cylinder: Add a primitive cylinder shape, where you can tweak the `height`, `radius`, `position`, `rotation`. - Capsule: Add a primitive capsule shape, where you can tweak the `height`, `radius`, `position`, `rotation`. It's also possible to chose the generated body, so you can create: - Rigid Body - Static Body - Area
2021-09-07Merge pull request #52237 from ellenhp/polyphonyJuan Linietsky
Add optional polyphonic playback to built-in audio player nodes
2021-09-07Add polyphony to Audio Stream Player nodesEllen Poe
2021-09-07Fixed regression of skinning with skeletonSilc 'Tokage' Renew
2021-09-06Proper support for custom mass properties in 2D/3D physics bodiesPouleyKetchoupp
Changes: -Added support for custom inertia and center of mass in 3D -Added support for custom center of mass in 2D -Calculated center of mass from shapes in 2D (same as in 3D) -Fixed mass properties calculation with disabled shapes in 2D/3D -Removed first_integration which is not used in 2D and doesn't seem to make a lot of sense (prevents omit_force_integration to work during the first frame) -Support for custom inertia on different axes for RigidBody3D
2021-08-31Add AnimatableBody inherited from StaticBody for moving platformsPouleyKetchoupp
Instead of having a physics node named Static that can be either Static or Kinematic, AnimatableBody is added again as a separate node: -Inherited from StaticBody to make its usage clearer -Still separated from CharacterBody to make its usage more focused Properly implemented constant velocity for kinematic bodies in godot physics servers (induced velocity without actually moving). Also updated description for the different physics nodes to make their usage clearer.
2021-08-31Merge pull request #49471 from nekomatata/body-state-sync-callbackJuan Linietsky
Clean physics direct body state usage in 2D and 3D physics
2021-08-31Merge pull request #52279 from fabriceci/delta-doubleCamille Mohr-Daurat
Change delta type to double in Physics_body_2/3D
2021-08-31Merge pull request #51364 from bengtsts/masterCamille Mohr-Daurat
Expose soft body pin methods to GDScript
2021-08-31delta time as doublefabriceci
2021-08-30Expose soft body pin methods to GDScriptBengt Söderström
2021-08-30Revert " Improve collision generation usability in the new 3D scene import ↵Juan Linietsky
workflow."
2021-08-30Merge pull request #51985 from AndreaCatania/collCamille Mohr-Daurat
Improve collision generation usability in the new 3D scene import workflow.
2021-08-29Revert "Display a matrix for Node2D and don't display a duplicate origin"Juan Linietsky
2021-08-29Display a matrix for Node2D and don't display a duplicate originAaron Franke
2021-08-28Merge pull request #43573 from lewiji/masterMax Hilbrunner
sprite_3d.cpp: return _is_playing() from public is_playing() function
2021-08-28Improve collision generation usability in the new 3D scene import workflow.AndreaCatania
With this PR it's possible to add a collision during the Mesh import, directly in editor. To generate the shape is possible to chose between the following options: - Decompose Convex: The Mesh is decomposed in one or many Convex Shapes (Using the VHACD library). - Simple Convex: Is generated a convex shape that enclose the entire mesh. - Trimesh: Generate a trimesh shape using the Mesh faces. - Box: Add a primitive box shape, where you can tweak the `size`, `position`, `rotation`. - Sphere: Add a primitive sphere shape, where you can tweak the `radius`, `position`, `rotation`. - Cylinder: Add a primitive cylinder shape, where you can tweak the `height`, `radius`, `position`, `rotation`. - Capsule: Add a primitive capsule shape, where you can tweak the `height`, `radius`, `position`, `rotation`. It's also possible to chose the generated body, so you can create: - Rigid Body. - Static Body. - Area.
2021-08-27Merge pull request #51296 from ellenhp/mix_in_audio_serverJuan Linietsky
Move mixing out of the AudioStreamPlayback* nodes
2021-08-27Merge pull request #52135 from fabriceci/fix-transmission-velocity-on-wall-4Camille Mohr-Daurat
Remove velocity transmission on_wall when collider is CharacterBody.
2021-08-27Do all audio mixing in the AudioServerEllen Poe
2021-08-26Remove velocity transmission on_wall when collider is CharacterBody.fabriceci
2021-08-25Clean physics direct body state usage in 2D and 3D physicsPouleyKetchoupp
Use a C++ callback instead of Callable for synchronizing physics nodes' state with physics servers. Remove usage of PhysicsDirectBodyState in physics nodes when not necessary. Store PhysicsDirectBodyState for bodies individually instead of a singleton to avoid issues when accessing direct body state for multiple bodies. PhysicsDirectBodyState is initialized only when needed, so it doesn't have to be created when using the physics server directly. Move PhysicsDirectBodyState2D and PhysicsDirectBodyState3D to separate cpp files.
2021-08-24Fix CharacterBody motion with RayShapePouleyKetchoupp
Make separation ray shapes work properly in move_and_slide, wihtout the specific code in CharacterBody like before. Now most of the logic is handled inside the physics server. The only thing that's needed is to use ray shapes only for recovery and ignore them when performing the motion itself (unless we're snapping or slips on slope is on).
2021-08-24Port recent move_and_slide fixes to 3DPouleyKetchoupp
Improves stop on slopes, sliding on walls and gravity handling by porting existing changes from CharacterBody2D to CharacterBody3D. Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-08-23Merge pull request #51751 from jeffrey-cochran/windforceCamille Mohr-Daurat
Created an area-specific wind force that interacts with soft bodies
2021-08-23Implement NativeExtension pointer argumentsreduz
* Allows calling into native extensions directly with a pointer * Makes it easier to implement some APIs more efficiently * Appears with a "*" in the documentation for the argument. * Implementing the pointer handling is entirely up to the implementation, although the extension API provides some hint. * AudioStream has been implemented as an example, allowing to create NativeExtension based AudioStreams.
2021-08-23Enabled area-specific wind forcesJeffrey Cochran
2021-08-23Entirely removes BIND_VMETHOD in favor of GDVIRTUALreduz
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions. * Everything else converted to GDVIRTUAL * BIND_VMETHOD is gone, always use the new syntax from now on. Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-22moved particle parameters to minmax and split scale axisQbieShay
This commit adds quite a chunk of modifications to particles - particle (value + randomness) now use min and max instead - passing a curveXYZtexture is now possible and will scale particles per-axis - CPUParticle3D have an optional parameter to split the scale curve per-axis
2021-08-22Replace BIND_VMETHOD by new GDVIRTUAL syntaxreduz
* New syntax is type safe. * New syntax allows for type safe virtuals in native extensions. * New syntax permits extremely fast calling. Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`. These will require API rework on a separate PR as they work different than the rest of the functions. Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.