Commit graph

461 commits

Author SHA1 Message Date
Silc 'Tokage' Renew
0235086c14 Add validation to glTF importer for Blendshape and Animation 2024-07-26 18:05:34 +09:00
Jordyfel
416e63ae35 Fix handling of missing bin file in gltf separate 2024-07-18 14:04:16 +03:00
Rémi Verschelde
2380ed5e1b
Merge pull request #94058 from Hilderin/fix-scene-project-importation-settings
Fix missing options in Project Import Defaults
2024-07-17 11:42:59 +02:00
Hilderin
169e732518 Fix missing options in Project Import Defaults 2024-07-09 09:33:39 -04:00
Rémi Verschelde
3b891f5a8a
Merge pull request #94004 from Hilderin/fix-blender-export-quotation-mark
Fix .blend files with quotation marks in filename fail to import
2024-07-08 11:48:23 +02:00
Hilderin
d244d6f4fe Fix .blend files with quotation marks in filename fail to import 2024-07-07 18:12:45 -04:00
Rémi Verschelde
080b975c09
Merge pull request #93998 from demolke/blender42
Update vertex color import to handle Blender 4.2 upwards
2024-07-07 12:38:47 +02:00
demolke
7864abbeec Update vertex color import to handle Blender 4.2 upwards
Blender commit 0f0a8df8a9 which is landing in 4.2 deprecated `vertex_colors` GLTF property, use `export_vertex_color` instead.
2024-07-06 14:22:09 +02:00
Aaron Franke
923a8eb5d3
Move GLTFAccessorType into GLTFAccessor 2024-07-04 15:46:48 -07:00
Gurvan
e7f34aace3 Use Hermite instead of Bezier for glTF spline interpolation 2024-06-29 14:36:49 +02:00
Rémi Verschelde
558054f707
Merge pull request #92640 from AThousandShips/text_value_changed_sname
[Scene] Add `SceneStringNames::text/value_changed`
2024-06-19 10:10:00 +02:00
Rémi Verschelde
0cc321b144
Merge pull request #92639 from AThousandShips/confirmed_sname
[Scene] Add `SceneStringNames::confirmed`
2024-06-19 10:09:56 +02:00
A Thousand Ships
fbb879debd
[Scene] Add SceneStringNames::text/value_changed 2024-06-19 09:44:38 +02:00
A Thousand Ships
ca18a06ecb
[Scene] Add SceneStringNames::confirmed 2024-06-19 09:40:54 +02:00
tamas
e19f0042ca Retain meta data set on imported nodes
During the import process, many importer nodes are replaced with their
engine node counterparts. For example, ImporterMeshInstance3D is
replaced with a MeshInstance3D node. Any meta data set on these
importer nodes, i.e. through a GLTFDocumentExtension, are lost during
the conversion. This change copies over any meta data set on these
importer nodes to their engine counterparts.
2024-06-18 12:39:34 -05:00
A Thousand Ships
d519715d94
[Scene] Add SceneStringNames::font(_size/_color) 2024-06-18 17:24:27 +02:00
jsjtxietian
e09443509a Unsetting the owner of ImporterMeshInstance3D before adding it to skeleton's child 2024-06-13 12:45:55 +08:00
Rémi Verschelde
bc7a7a479e
Merge pull request #73941 from Jummit/active-collection
Blend import: Allow importing `active_collection_only`
2024-06-03 10:35:34 +02:00
Jummit
c182adcd48 Blend import: Ability to import only the active collection 2024-05-31 18:37:14 +02:00
K. S. Ernest (iFire) Lee
5a24aec599 Fix GLTFDocument so it can export CSG Meshes correctly. 2024-05-29 07:10:45 -07:00
Aaron Franke
d3a58e57b8
Rename accessor GLTFType to GLTFAccessorType, fix verbose prints, doc 2024-05-24 03:21:13 -07:00
K. S. Ernest (iFire) Lee
24f56008ac Add bake_fps for FBXDocument, GLTFDocument and both import-export. 2024-05-23 09:09:36 -07:00
Lyuma
ef486db569 Support Import As Skeleton Bones on glTF and AnimationLibrary import 2024-05-21 03:19:35 -07:00
A Thousand Ships
ee79386f7b
[Scene] Add SceneStringNames::pressed 2024-05-14 15:51:28 +02:00
kobewi
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
David Nikdel
522f035cb1 GLTF export improvements
- GLBs produced by godot don't pass validation when there's no data in the buffer segment. The segment is dropped but the size of the chunk_header is still reported in total length (incorrectly)

- Remove empty "extensions" JSON object being appended to all nodes (if it's still empty). This is just cutting down on unnecessary bloat and consistent with the rest of the file's attempts to not emit any keys that are equal to their default value.

- Allow the case where root_nodes is empty. This is permitted by the GLTF spec. Moreover it can happen fairly naturally when using the ROOT_NODE_MODE_MULTI_ROOT root node mode on a scene with only a root node (which is valid in godot).

- Don't create an initial buffer until we're ready to write data into it (buffers of byteLength=0 don't pass validation).
2024-05-11 21:42:05 -04:00
Rémi Verschelde
a9a1d0a162
Merge pull request #91619 from AThousandShips/find_improve
Replace `find` with `contains/has` where applicable
2024-05-08 14:35:44 +02:00
A Thousand Ships
b4c6cc7d82
[Core] Add case-insensitive String::containsn 2024-05-08 12:48:01 +02:00
A Thousand Ships
a0dbdcc3ab
Replace find with contains/has where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
Aaron Franke
1bcbbe96c4
Organize existing code for editor plugins 2024-04-27 11:59:58 -07:00
Rémi Verschelde
cb01094ccd
Merge pull request #88301 from aaronfranke/gltf-explicit-compound-triggers
Add support for explicitly-defined compound triggers in GLTF files
2024-04-26 11:08:19 +02:00
Rémi Verschelde
f859400c6b
Merge pull request #91078 from aaronp64/import_skip_crash
Fix errors/crashes related to skipped imports
2024-04-25 17:12:38 +02:00
aaronp64
e63d0983d0 Fix errors/crashes related to skipped imports
- Added check for "animation/fps" key before attempting to use it in EditorSceneFormatImporterBlend::import_scene, to give error instead of crashing

- Don't show "Advanced..." button if last import used "Keep File" or "Skip File"

- Don't try to call ResourceLoader::load on kept/skipped file when changing importer, which would give an error

Fixes #90324
2024-04-25 10:33:59 -04:00
Lyuma
bb9674c1b1 Set animation step from importers. Increase default step from 10 to 30 FPS. 2024-04-19 03:02:20 -07:00
Lyuma
d3706488d9 Fix FBX and glTF when root nodes are skeleton bones
Set p_scene_parent to the skeleton to guarantee BoneAttachment3D nodes are added as a child of the active skeleton.
Use get_owner() to go all the way up when calculating the root node in generate_scene
2024-04-17 22:10:05 -07:00
Rémi Verschelde
42ab525aa2
Merge pull request #86144 from jsjtxietian/disable-mesh-compression-for-2d
Disable mesh compression if vertex `position.z` is always 0
2024-04-12 11:16:33 +02:00
aaronp64
b56934ce19 Fix GLTFDocument.append_from_scene() crash on null node
Added null check for p_node parameter to give error instead of crash

Fixes #90502
2024-04-10 17:05:54 -04:00
jsjtxietian
077e20cd51 Disable mesh compression if vertex position.z is always 0 2024-04-10 11:27:36 +08:00
Rémi Verschelde
cedf4ad011
Merge pull request #90230 from aaronfranke/gltf-sep-shape3d-res
Separate Shape3D resource logic in GLTFPhysicsShape
2024-04-08 11:21:02 +02:00
Aaron Franke
92b243dc3c
Separate Shape3D resource logic in GLTFPhysicsShape 2024-04-04 16:22:01 -07:00
Aaron Franke
ade5a8d802
Add support for explicitly-defined compound triggers in GLTF files 2024-04-04 14:34:40 -07:00
Aaron Franke
a9416da6ea
GLTF export: Propagate property_list_changed from extensions 2024-04-04 14:06:09 -07:00
Lyuma
b0ce274a52 Apply "Remove Immutable Tracks" after post-import.
Reimplements "Remove Immutable" by comparing to the skeleton rest.
It is necessary to delay removing animation tracks until after the correct rest pose is calculated in rest-fixer.
Preserves the original implementation in the GLTFDocument / FBXDocument API for compatibility.
2024-03-30 23:45:22 -07:00
Rémi Verschelde
d121873d01
Merge pull request #89542 from aaronfranke/convert-hull-to-mesh-func
GLTF: Extract converting hull points to mesh to a helper function
2024-03-24 01:17:15 +01:00
Aaron Franke
3604b57ba3
GLTF: Extract converting hull points to mesh to a helper function 2024-03-15 15:22:48 -07:00
Lyuma
8232759100 Fix method bindings in FBXDocument by making them virtual in GLTFDocument. 2024-03-15 12:47:02 -07:00
Rémi Verschelde
21b33c5ea4
Merge pull request #89418 from lyuma/gltf_vertex_packing
Only store vertices referenced by the indices per surface in the glTF importer
2024-03-14 22:34:52 +01:00
Rémi Verschelde
37b08a3724
Merge pull request #89356 from lyuma/vsk-gltf-sparse-accessors-4.3
GLTF export: Use sparse accessors for morph targets
2024-03-14 22:34:47 +01:00
Rémi Verschelde
453485aede
Merge pull request #89270 from Repiteo/enforce-typename-in-templates
Enforce template syntax `typename` over `class`
2024-03-14 22:34:37 +01:00
Lyuma
77f6e35a8d glTF importer now only stores vertices referenced by the indices per surface. 2024-03-13 18:34:55 -07:00