91 lines
4.9 KiB
XML
91 lines
4.9 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 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>
|
|
</class>
|