Commit graph

484 commits

Author SHA1 Message Date
K. S. Ernest (iFire) Lee
4113529535 Assign the correct bone rest transform to nodes with matrix in GLTF 2024-10-07 10:19:43 -07:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00
Aaron Franke
5972907612
GLTF: Add import_pre_generate and export_post_convert extension steps 2024-09-17 04:00:07 -07:00
demolke
0468bea899 Add per-bone meta to Skeleton3D
Individual bones are not represented as `Node`s in Godot, in order to support meta functionality for them the skeleton has to carry the information similarly to how other per-bone properties are handled.
- Also adds support for GLTF import/export
2024-09-16 16:26:15 +02:00
Rémi Verschelde
a9364a9e75
Merge pull request #96468 from aaronfranke/gltf-append-node
GLTF: Add `append_gltf_node` to GLTFState
2024-09-16 13:34:46 +02:00
Rémi Verschelde
b9b07d619f
Merge pull request #94783 from TokageItLab/validate-gltf-anim-name
Add validation to glTF importer for Blendshape and Animation
2024-09-12 09:25:10 +02:00
Aaron Franke
f82262eecb
GLTF: Add append_gltf_node to GLTFState 2024-09-02 19:05:03 -07:00
A Thousand Ships
194bdde947
Cleanup of raw nullptr checks with Ref
Using `is_valid/null` over checks with `nullptr` or `ERR_FAIL_NULL` etc.
2024-08-31 15:01:09 +02:00
demolke
c409e6d722 Import/export GLTF extras to node->meta
This is useful for custom tagging of objects with properties (for example in Blender) and having this available in the editor for scripting.

- Adds import logic to propagate the parsed GLTF extras all the way to the resulting Node->meta
- Adds export logic to save Godot Object meta into GLTF extras
- Supports `nodes`, `meshes` and `materials` (in GLTF sense of the words)
2024-08-29 19:17:04 +02:00
Aaron Franke
ee5e97742a
Add get_supported_gltf_extensions to GLTFDocument 2024-08-28 17:54:45 -07:00
Aaron Franke
9dd71c6414
ResourceImporterScene: Replace animation bool with an import type string enum 2024-08-27 14:58:18 -07:00
Aaron Franke
263f089040
GLTF: Only create MeshInstance3D when needed 2024-08-27 04:23:20 -07:00
Rémi Verschelde
ce1ba7328f
Merge pull request #94934 from Hilderin/fix-no-validation-blender-path-on-import
Fix no validation on Blender path on import
2024-08-19 16:05:26 +02:00
Rémi Verschelde
3e1b61d808
Merge pull request #95121 from aaronfranke/gltf-root-prop-owner
GLTF: Propagate owner for root node children
2024-08-19 14:34:04 +02:00
ywmaa
c460f1de24
Add Option for Export Geometry Nodes Instances in blend importer 2024-08-19 12:23:21 +02:00
Rémi Verschelde
ec74e14943
Merge pull request #95603 from tetrapod00/gltf-capitalization-errors
Fix glTF capitalization in error messages
2024-08-16 14:36:33 +02:00
Rémi Verschelde
4d3157c0f2
Merge pull request #95578 from tetrapod00/gltf-capitalization-classref
Fix glTF capitalization in class reference
2024-08-16 14:36:26 +02:00
tetrapod00
3b1345c26e Change capitalization of glTF in errors and comments. 2024-08-15 18:07:30 -07:00
tetrapod00
012ce1eaff Fix glTF capitalization in class reference 2024-08-15 10:41:47 -07:00
kobewi
065dd099dd Remove empty bind_methods() 2024-08-15 08:24:32 +02:00
Aaron Franke
246cc7e86d
GLTF: Propagate owner for root node children 2024-08-04 02:28:01 -07:00
Hilderin
2dc9cf50c5 Fix no validation on Blender path on importation 2024-07-30 17:30:11 -04:00
raging-loon
344ff6fe83
Fix browse_dialog in Blender scene importer to accept files
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-07-29 11:38:24 +02:00
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