Age | Commit message (Collapse) | Author |
|
|
|
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
(order matters) but use is discouraged.
There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
|
|
|
|
This is an optimization.
|
|
This helps reduce confusion around sRGB <> Linear conversions by making
both input and output color spaces explicit.
|
|
|
|
* Instead of containing single animations, AnimationPlayer now contains libraries.
* Libraries, in turn, contain the animations.
This paves the way for implementing the possibility of importing scenes as animation libraries, finally allowing to import animations separate from the 3D models.
Missing (will be done on separate PRs):
* Make it possible to import scenes (dae/fbx/gltf) as animation libraries.
* Make it possible for AnimationTree to import animation libraries on its own, so it does not rely on AnimationPlayer for everything.
|
|
|
|
Lets you drag or place .blend files in the project folder and it will import the files.
Checks for Blender 3.0's gltf2 `export_keep_originals` option.
Add basepath support to GLTFDocument append_from_file.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
|
|
SConstruct change also makes it possible to outright delete the `editor`
folder in a `tools=no` build, which we use in CI to ensure no invalid
cross-dependencies are added.
|
|
|
|
|
|
|
|
|
|
|
|
Using codespell 2.2-dev from current git.
Added `misc/scripts/codespell.sh` to make it easier to run it once in a
while and update the skip and ignore lists.
|
|
This lets us have its definition in `core/version.h` and avoid
rebuilding a handful of files every time the commit hash changes.
|
|
Initial implementation of the MultiplayerReplicationInterface and its
default implementation (SceneReplicationInterface).
New MultiplayerSpawner node helps dealing with instantiation of scenes
on remote peers (e.g. clients).
It supports both custom spawns via a `_spawn_custom` virtual function,
and optional auto-spawn of known scenes via a TypedArray<PackedScenes>
property.
New MultiplayerSynchornizer helps synchronizing states between the local
and remote peers, supports both sync and spawn properties and is
configured via a `SceneReplicationConfig` resource.
It can also sync via path (i.e. without being spawned by a
MultiplayerSpawner if both peers has it in tree, but will not send the
spawn state in that case, only the sync one.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Add gltf import buffer.
|
|
Split functions from gltf document import and export into six functions.
Use base path to allow two code paths based on an empty base path or a full base path.
Add uri decode in _parse_buffers.
|
|
Happy new year to the wonderful Godot community!
|
|
Also removes a redundant get_texture call directly below
the modified code block.
Fixes #56379
|
|
|
|
|
|
|
|
The message about SpatialMaterial conversion was turned into a warning,
as it can potentially interfere with porting projects from Godot 3.x
(if there's a bug in the conversion code).
|
|
|
|
|
|
Reimplement ping-pong animation and reverse playback
|
|
|
|
|
|
Keep track of MeshInstance and GeometryInstance override materials in the GLTFMesh object.
Ensure all arrays are non-empty to conform with "minItems":1 in glTF spec.
|
|
clang-format keeps breaking the way it handles break *after* ternary operators,
so I give up and go with the only style they seem to actually test.
|
|
Sets `AlignOperands` to `DontAlign`.
`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
|
|
|
|
GLB chunk padding length calculation was backwards and missing for the BIN chunk.
Fixed error caused by "skins":[] when no skins were present.
Finally, encode animations before textures to avoid accessor misalignment due to texture byteLength.
|
|
|
|
|
|
* New track type BLEND_SHAPE
* Blend shapes are imported via this new track type
* Processing is more optimized (no longer relies on variants)
* Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes)
* Promo: Fixed a small bug in gizmo updating in Node3D that affected performance
Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.
|
|
* New plugin system to control the whole import workflow
* Can add options and run code at every import step (general, per node, mesh, animation, material etc.)
This constitutes a first version of these plugins. The ability to interact with the import preview dialog will likely be added later on.
|
|
|
|
|
|
* Animations and Skeletons are now pose-only.
* Rest transform is kept as reference (when it exists) and for IK
* Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).
|
|
* `Animation.TYPE_TRANSFORM3D` track is gone.
* Added POSITION_3D, ROTATION_3D, SCALE_3D tracks.
* GLTF2, Collada, FBX importers will only import the track types found.
* Skeleton3D bone poses are now Pos/Rot/Scale, pose matrix removed.
* AnimationPlayer and AnimationTree animate these tracks separately, only when found.
* Removed BakeReset code, is useless with these changes.
This is the first in a series of commits designed to make the animation system in Godot more useful, which includes:
* Better compatibility with Autodesk products
* Better reusability of animations across models (including retargeting).
* Proper animation compression.
* etc.
*Note* GLTF2 animation saving went broken with this PR, needs to be fixed in a subsequent one.
|