100 lines
6.0 KiB
XML
100 lines
6.0 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="GLTFDocument" inherits="Resource" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
|
|
<brief_description>
|
|
Class for importing and exporting glTF files in and out of Godot.
|
|
</brief_description>
|
|
<description>
|
|
GLTFDocument supports reading data from a glTF file, buffer, or Godot scene. This data can then be written to the filesystem, buffer, or used to create a Godot scene.
|
|
All of the data in a GLTF scene is stored in the [GLTFState] class. GLTFDocument processes state objects, but does not contain any scene data itself. GLTFDocument has member variables to store export configuration settings such as the image format, but is otherwise stateless. Multiple scenes can be processed with the same settings using the same GLTFDocument object and different [GLTFState] objects.
|
|
GLTFDocument can be extended with arbitrary functionality by extending the [GLTFDocumentExtension] class and registering it with GLTFDocument via [method register_gltf_document_extension]. This allows for custom data to be imported and exported.
|
|
</description>
|
|
<tutorials>
|
|
<link title="glTF 'What the duck?' guide">https://www.khronos.org/files/gltf20-reference-guide.pdf</link>
|
|
<link title="Khronos glTF specification">https://registry.khronos.org/glTF/</link>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="append_from_buffer">
|
|
<return type="int" enum="Error" />
|
|
<param index="0" name="bytes" type="PackedByteArray" />
|
|
<param index="1" name="base_path" type="String" />
|
|
<param index="2" name="state" type="GLTFState" />
|
|
<param index="3" name="flags" type="int" default="0" />
|
|
<description>
|
|
Takes a [PackedByteArray] defining a GLTF and imports the data to the given [GLTFState] object through the [param state] parameter.
|
|
[b]Note:[/b] The [param base_path] tells [method append_from_buffer] where to find dependencies and can be empty.
|
|
</description>
|
|
</method>
|
|
<method name="append_from_file">
|
|
<return type="int" enum="Error" />
|
|
<param index="0" name="path" type="String" />
|
|
<param index="1" name="state" type="GLTFState" />
|
|
<param index="2" name="flags" type="int" default="0" />
|
|
<param index="3" name="base_path" type="String" default="""" />
|
|
<description>
|
|
Takes a path to a GLTF file and imports the data at that file path to the given [GLTFState] object through the [param state] parameter.
|
|
[b]Note:[/b] The [param base_path] tells [method append_from_file] where to find dependencies and can be empty.
|
|
</description>
|
|
</method>
|
|
<method name="append_from_scene">
|
|
<return type="int" enum="Error" />
|
|
<param index="0" name="node" type="Node" />
|
|
<param index="1" name="state" type="GLTFState" />
|
|
<param index="2" name="flags" type="int" default="0" />
|
|
<description>
|
|
Takes a Godot Engine scene node and exports it and its descendants to the given [GLTFState] object through the [param state] parameter.
|
|
</description>
|
|
</method>
|
|
<method name="generate_buffer">
|
|
<return type="PackedByteArray" />
|
|
<param index="0" name="state" type="GLTFState" />
|
|
<description>
|
|
Takes a [GLTFState] object through the [param state] parameter and returns a GLTF [PackedByteArray].
|
|
</description>
|
|
</method>
|
|
<method name="generate_scene">
|
|
<return type="Node" />
|
|
<param index="0" name="state" type="GLTFState" />
|
|
<param index="1" name="bake_fps" type="float" default="30" />
|
|
<param index="2" name="trimming" type="bool" default="false" />
|
|
<param index="3" name="remove_immutable_tracks" type="bool" default="true" />
|
|
<description>
|
|
Takes a [GLTFState] object through the [param state] parameter and returns a Godot Engine scene node.
|
|
</description>
|
|
</method>
|
|
<method name="register_gltf_document_extension" qualifiers="static">
|
|
<return type="void" />
|
|
<param index="0" name="extension" type="GLTFDocumentExtension" />
|
|
<param index="1" name="first_priority" type="bool" default="false" />
|
|
<description>
|
|
Registers the given [GLTFDocumentExtension] instance with GLTFDocument. If [param first_priority] is true, this extension will be run first. Otherwise, it will be run last.
|
|
[b]Note:[/b] Like GLTFDocument itself, all GLTFDocumentExtension classes must be stateless in order to function properly. If you need to store data, use the [code]set_additional_data[/code] and [code]get_additional_data[/code] methods in [GLTFState] or [GLTFNode].
|
|
</description>
|
|
</method>
|
|
<method name="unregister_gltf_document_extension" qualifiers="static">
|
|
<return type="void" />
|
|
<param index="0" name="extension" type="GLTFDocumentExtension" />
|
|
<description>
|
|
Unregisters the given [GLTFDocumentExtension] instance.
|
|
</description>
|
|
</method>
|
|
<method name="write_to_filesystem">
|
|
<return type="int" enum="Error" />
|
|
<param index="0" name="state" type="GLTFState" />
|
|
<param index="1" name="path" type="String" />
|
|
<description>
|
|
Takes a [GLTFState] object through the [param state] parameter and writes a glTF file to the filesystem.
|
|
[b]Note:[/b] The extension of the glTF file determines if it is a .glb binary file or a .gltf file.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="image_format" type="String" setter="set_image_format" getter="get_image_format" default=""PNG"">
|
|
The user-friendly name of the export image format. This is used when exporting the GLTF file, including writing to a file and writing to a byte array.
|
|
By default, Godot allows the following options: "None", "PNG", "JPEG", "Lossless WebP", and "Lossy WebP". Support for more image formats can be added in [GLTFDocumentExtension] classes.
|
|
</member>
|
|
<member name="lossy_quality" type="float" setter="set_lossy_quality" getter="get_lossy_quality" default="0.75">
|
|
If [member image_format] is a lossy image format, this determines the lossy quality of the image. On a range of [code]0.0[/code] to [code]1.0[/code], where [code]0.0[/code] is the lowest quality and [code]1.0[/code] is the highest quality. A lossy quality of [code]1.0[/code] is not the same as lossless.
|
|
</member>
|
|
</members>
|
|
</class>
|