- Implement timeline scrobbling using Alt + Mouse wheel anywhere in the
animation track editor.
- Snap settings are followed, and precise snapping can be obtained by also
holding down Shift.
- This modifier wasn't used by anything in the animation editor.
- Allow zooming by using Ctrl + Mouse wheel on the timeline itself.
- Previously, this was only possible on the track area, not the timeline.
- Focus the project search box when switching from the Templates tab
back to the Projects tab in the project manager.
- Add a context-specific placeholder for the asset library search box.
- Rename "Search" project filter box placeholder to the more
descriptive "Filter projects". When performing a search on an
existing selection, "Filter" is more accurate than "Search".
- Add 1-5 shortcuts to zoom between 100% and 1600% quickly
(similar to GIMP).
- When holding down Alt, go through integer zoom values if above 100%
or fractional zoom values with integer denominators if below 100%
(50%, ~33.3%, 25%, …).
It turned out the new autolinking feature was linking portals AFTER the static meshes had been added to rooms in the PortalRenderer. This meant that large meshes weren't being sprawled across these portals. The fix involves doing the autolinking BEFORE adding the static meshes.
Fixes a bug in the warning for portals being in the wrong direction, they should have only been checkout for outgoing portals. This was resulting in erroneous warnings.
Also the room conversion logs are refined to be more compact and informative.
A warning icon is also added in the gizmo for portals where autolink fails.
- To make things easier to follow, display the asset name in
confirmation dialogs.
- Display the number of conflicting files in the asset extraction dialog.
This reduces the number of clicks required to install an asset.
(cherry picked from commit 2708fcf13d)
Allows to see version diffs without having to expand the bottom panel
manually when clicking on a changed file in the "Commit" dock.
(cherry picked from commit 0fce7aea88)
Clean: remove duplicate and interior vertices (uses Bullet algorithm)
Simplify: modify the geometry for further simplification (uses VHACD
algorithm)
In the editor, single convex hull now uses the clean option.
Added a new editor entry to create a simplified convex hull, can be
useful for creating convex hull from highly tessellated triangle meshes.
Specific change for 3.x:
Add support for Vector<Vector3> and PoolVector<Vector3> in the convex hull generator.
Now the process uses a Map to lookup node pointers instead of iterating
over all modified node paths in a list and comparing them for each
property to check.
The process also avoids checking properties with empty node paths and
does an early exit on deleted nodes to avoid checking the node and its
descendants.
Also made a minor change in NodePath::rel_path_to() to avoid resizing a
Vector many times for long paths (with copy-on-write each time). Now
it's down to 2 resize calls in any case.
This is already allowed when using cinematic preview, but not
when previewing a Camera3D the usual way.
Many operations from the View menu still work while previewing
a camera, such as switching between debug draw modes and toggling
information panes.
(cherry picked from commit fab3d136e0)
Fix more cases of node path needing an update when nodes are renamed or
moved in the editor.
Built-in node properties:
Before, node paths were checked only for script export variables. Now
all properties are checked from the node, which includes built-in node
properties.
Allows proper node path updates for nodes like remote transform, physics
joints, etc.
Arrays and dictionaries:
Node paths nested in array and dictionary properties are now also
updated in the editor.
Also update the documentation to be clear about node path update in the
editor and at runtime.
Co-authored-by: latorril <latorril@gmail.com>
(cherry picked from commit 3e4e530523)
The 2D editor grid toggle shortcut has been changed to use
`KEY_MASK_CMD` for consistency. This means it will now use Cmd
on macOS instead of Ctrl.
(cherry picked from commit 2cc053c64b)
Remove early returns from `EditorNode3DGizmo::intersect_ray` that is preventing to have gizmos that use Mesh collision + Segment collision + Icon.
(cherry picked from commit 2c12297ee1)
- Ctrl + N: New Project
- Ctrl + I: Import Project
- Ctrl + S: Scan for Projects
- Ctrl + E: Edit Project
- Ctrl + R: Run Project
- F2: Rename Project
- Delete: Remove Project
- Already implemented previously, but moved to use `ED_SHORTCUT()`.
Note that depsite using `ED_SHORTCUT()`, these shortcuts won't appear
in the Editor Settings' Shortcuts dialog and won't be remappable since
the project manager code isn't run in the editor.
(cherry picked from commit 9bda49e030)
Since lightmap baking can take a very long time, printing the time
spent can be useful for users tweaking the lightmap settings
to optimize bake times.
Completing lightmap baking will also request attention, which is
useful if you're doing something else while waiting for lightmaps
to bake.
This is an older, easier to implement variant of CAS as a pure
fragment shader. It doesn't support upscaling, but we won't make
use of it (at least for now).
The sharpening intensity can be adjusted on a per-Viewport basis.
For the root viewport, it can be adjusted in the Project Settings.
Since `textureLodOffset()` isn't available in GLES2, there is no
way to support contrast-adaptive sharpening in GLES2.
This backports the improved RayCast debug drawing functionality
from the `master` branch.
`ArrayMesh.clear_surfaces()` was also backported from the `master`
branch and exposed because the new debug drawing code requires it.
This performs a Ctrl + S action every time the editor window loses focus,
saving both scenes and scripts as needed.
(cherry picked from commit f10c30a9ed)
This provides better power savings compared to the previous value.
This also speeds up project execution slightly while the editor
is running in the background.
The setting hint can now go as low as 1 FPS (1 million microseconds
per frame), for those who really need the best possible power savings.
This will make previewing animated shaders or particles impossible
when the editor window isn't focused though.
(cherry picked from commit 6f6a09cce2)
Previously, the wrong tooltip was shown.
This also tweaks the tooltips' texts to be clearer and remove
references to "game" (since Godot is used for more than just games).
(cherry picked from commit d1c5dd5b68)
The consensus is that the per-platform strings are not so useful in the
first place, so it's better to revert back to "Delete" for every platform.
(cherry picked from commit 77daadac1d)
When copy-pasting the version from About dialog to bug reports at GitHub,
this makes the version hash linkable to commits at GitHub.
(cherry picked from commit 293550f56a)
The editor only needs to redraw when the camera is moving.
This helps preserver battery life on laptops when using freelook,
especially with the toggle mode (Shift + F).
(cherry picked from commit 21807f8d88)
The name "Singleton" was misleading because Godot does not actually
enforce a singleton pattern for autoloads. They can be instanced
multiple times.
"Global Variable" makes it more obvious that all the checkbox does
is expose the AutoLoad with a global variable for easy access.
(cherry picked from commit 1e53bac8b4)
Using the smallest dimension of the width and height makes it possible
to support both landscape and portrait monitors.
(cherry picked from commit 728fa3ff71)
EditorSettings: Factor code to compute auto display scale
Also fixes typo introduced in https://github.com/godotengine/godot/pull/48597/files#r652636544.
(cherry picked from commit f862f9a056)
- Add an help message when no profile is selected.
- This replaces the class/property trees which are now hidden
when no profile is selected.
- Display `(none)` as the current profile when no profile is
currently active.
- Make the newly created/imported profile the current if it's the
first profile to be added to the list.
- Make more strings localizable.
The gizmo icon obstructed the line-based camera gizmo, which made it
difficult to see the actual camera orientation.
This also removes the unused SpatialStreamPlayer gizmo icon.
The default value is 80. The hard line length guideline's default column
has been moved to 100 to account for the new soft line length guideline.
It can be disabled by setting its value to the same column as the
hard line length guideline.
This can be used to invert a normal map's Y direction.
The existing Invert import option that inverts all RGB channels
is kept for compatibility with existing projects.
- Use the editor font color for notch lines and text instead of a more
contrasted color.
- Reuse the editor theme's tooltip styling and apply it on theme change.
- Make the preview label display an explicit `+` sign for positive values.
- Prevent a zero value from displaying as `-0.0 dB` instead of `0.0 dB`.
- Scale notch lines on hiDPI displays.
(cherry picked from commit 534c990e41)
Fix issue when two skeletons end up directly parented.
Prevent animating TRS for skinned Mesh node.
Fix animating weights on meshes with targets but no weights.
This uses the accent color to match pressed CheckButtons after they
were updated. Checked checkboxes are now more prominent in the user's
peripheral vision, which can be useful at times. This also matches
how checkboxes look in most operating systems and web browsers.
(cherry picked from commit 0d27c4d809)
The code is based on the current version of thirdparty/vhacd and modified to use Godot's types and code style.
Additional changes:
- backported and extended PagedAllocator to allow leaked objects
- applied patch from https://github.com/bulletphysics/bullet3/pull/3037
Repeating NPOT textures are not guaranteed to be displayed correctly
in GLES2, since the specification does not mandate support for it.
The warning is also displayed in GLES3 projects that are configured
to allow falling back to GLES2.
This could occur when attempting to save project settings when
no scenes or scripts are open (which is common in a brand new project).
(cherry picked from commit 16876bec76)
This changes the types of a big number of variables.
General rules:
- Using `uint64_t` in general. We also considered `int64_t` but eventually
settled on keeping it unsigned, which is also closer to what one would expect
with `size_t`/`off_t`.
- We only keep `int64_t` for `seek_end` (takes a negative offset from the end)
and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means
we only need to guard against passing negative values in `core_bind.cpp`.
- Using `uint32_t` integers for concepts not needing such a huge range, like
pages, blocks, etc.
In addition:
- Improve usage of integer types in some related places; namely, `DirAccess`,
core binds.
Note:
- On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with
version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for
big files on 32-bit Windows builds made with that toolchain. We might add a
workaround.
Fixes#44363.
Fixesgodotengine/godot-proposals#400.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
inform user in warning message
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Refactor remove plugin from enabled
(cherry picked from commit 2bae31a4df)
- Tweak the dialog messages to be more informative.
- The "Saved N modified resources" dialog is not a warning per se,
so make it more explicit.
(cherry picked from commit 39f9b92f54)
This can be used to tell Godot to run an executable that will run Godot
rather than running Godot directly. This is useful to make Godot start
on the dedicated GPU when using a NVIDIA Optimus setup on Linux:
`prime-run %command%`
The `editor/run/main_run_args` setting declaration was moved to make it
visible in the ProjectSettings documentation.
(cherry picked from commit ce4aa07276)
This makes it possible for external editors to pick up the changes.
Most modern editors should reload the file automatically,
but some older/lightweight editors may ask the user instead
(or only warn after trying to save in the external editor).
This closes#41283.
(cherry picked from commit 0ade686601)
- Make the timeline indicator thicker and with an indicator triangle,
similar to the animation editor timeline.
- Add Space bar shortcut to play/pause the audio preview.
- Only seek when clicking or dragging with the left mouse button,
not other mouse buttons.
(cherry picked from commit a50a81b703)
Fixes#48514 by moving the visibility of these buttons into their own if statement that depends on if scene tree editing is allowed. Previously it was under the script editing setting which is unexpected as it works with nodes and the scene tree.
(cherry picked from commit 10d5d4d3cd)
As a bonus, to have consistency between use Beziers and create insert tracks, use Beziers also gets a default via editor settings that is used when the confirmation dialog is disabled, instead of just falling back to creating non-Bezier tracks.
When using a negative contrast value, the base color will be lightened
to create the derivative colors instead of being darkened.
This can lead to better-looking themes, especially for light themes.
The About button is located in the bottom-right corner of the
project manager.
This allows removing the copyright notice from the window title
(which looked a bit ugly in comparison to other applications).
Previously if more than one Godot editor was running then the debugger of one editor would not work because both editors were trying to connect on the same port.
This commit attempts to fix this by allowing the debugger to change the port at runtime in such cases.
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.
There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
Backport of #48239.
When there is no selection, the camera will center around the
world origin.
This helps people get back to the world center if they haven't added
any nodes yet.
(cherry picked from commit fc055e1993)
When ctrl-clicking in the code editor, the view will now be centered on the function result.
Also replaces a circumstance where goto_line_centered should be used.
(cherry picked from commit 2b775bd698)
- Display a specific error message if the project doesn't have an
`export_presets.cfg` file.
- Display a list of detected export presets if an invalid export
preset name is supplied.
(cherry picked from commit 09f38ea215)
During the development of 3.3, internationalization features were added to allow arbitrary bone and node names.
However, doing so will break all references and existing animation clips for projects upgraded from 3.2
This adds an import setting, enabled by default, but disabled for newly generated .import files which restores the old behavior.
This makes it possible to see whether a scrollbar grabber is at the top
or at the bottom of a scrollbar. Also, if a scrollable area is very
large, this makes it easier to notice that the area can be scrolled
(since the grabber is proportionally very small).
The scrollbar grabbers were also made thicker and slightly more opaque
for better visibility, especially in peripheral vision.
(cherry picked from commit b60b6ddba4)
Its only purpose was to prevent importing CSV files as translations, but it
would still import them as *nothing*, leading to workflow issues.
This is now properly fixed with #47268 which allows disabling the import for
specific files.
(cherry picked from commit 7ed2220928)
* Removes error shown when file is in 'keep' mode
* Display a warning when attempting to open the file
* Closes#47296
(cherry picked from commit 4706297356)
The new CollisionObject gizmo used for custom shapes was used with
higher priority due to alphabetical order and was preventing physical
bones from being displayed in the editor.
Keyframe times shift slowly in imported animations, starting with a zero shift
at the beginning and increasing and becoming erratic slowly farther into an
animation, reaching significant levels at times after about 3 minutes into an
animation. This commit fixes the issue by increasing the precision of the
floating point numbers used for keyframe time calculations. Only the most
significant cases that cause fast accumulation of errors over a short animation
duration are fixed. Other cases that would have a marginal benefit from
switching to double precision numbers are left for another PR/further analysis.
Note that this change has no impact on the runtime performance of games/apps
created using Godot. It only affects the GLTF importer.
Fixes#47127.
(cherry picked from commit 6770a9413b)