VisualShaderNodeCustom

Hereda: VisualShaderNode < Resource < RefCounted < Object

Clase virtual para definir los VisualShaderNode personalizados para su uso en el Visual Shader Editor.

Descripción

Heredando esta clase, puedes crear un addon de script VisualShader personalizado que se agregará automáticamente al Editor de Shaders Visuales. El comportamiento de VisualShaderNode se define anulando los métodos virtuales proporcionados.

Para que el nodo se registre como un addon de editor, debes usar la anotación @tool y proporcionar un class_name para tu script personalizado. Por ejemplo:

@tool
extends VisualShaderNodeCustom
class_name VisualShaderNodeNoise

Tutoriales

Métodos

String

_get_category() virtual const

String

_get_code(input_vars: Array[String], output_vars: Array[String], mode: Mode, type: Type) virtual const

int

_get_default_input_port(type: PortType) virtual const

String

_get_description() virtual const

String

_get_func_code(mode: Mode, type: Type) virtual const

String

_get_global_code(mode: Mode) virtual const

int

_get_input_port_count() virtual const

Variant

_get_input_port_default_value(port: int) virtual const

String

_get_input_port_name(port: int) virtual const

PortType

_get_input_port_type(port: int) virtual const

String

_get_name() virtual const

int

_get_output_port_count() virtual const

String

_get_output_port_name(port: int) virtual const

PortType

_get_output_port_type(port: int) virtual const

int

_get_property_count() virtual const

int

_get_property_default_index(index: int) virtual const

String

_get_property_name(index: int) virtual const

PackedStringArray

_get_property_options(index: int) virtual const

PortType

_get_return_icon_type() virtual const

bool

_is_available(mode: Mode, type: Type) virtual const

bool

_is_highend() virtual const

int

get_option_index(option: int) const


Descripciones de Métodos

String _get_category() virtual const 🔗

Sobrescribe este método para definir la ruta al nodo personalizado asociado en el diálogo de miembros del Editor de Shaders Visuales. La ruta puede verse como "MiJuego/MisFunciones/Ruido".

Definir este método es opcional. Si no se sobrescribe, el nodo se archivará en la categoría "Addons".


String _get_code(input_vars: Array[String], output_vars: Array[String], mode: Mode, type: Type) virtual const 🔗

Sobrescribe este método para definir el código shader real del nodo personalizado asociado. El código shader debe devolverse como una string, que puede tener varias líneas (la construcción de string multilínea """ se puede usar para mayor comodidad).

Los arrays input_vars y output_vars contienen los nombres de string de las diversas variables de entrada y salida, tal como se definen en los métodos virtuales _get_input_* y _get_output_* de esta clase.

A los puertos de salida se les pueden asignar valores en el código shader. Por ejemplo, return output_vars[0] + " = " + input_vars[0] + ";".

Puedes personalizar el código generado basándote en el mode y/o type del shader.

Definir este método es obligatorio.


int _get_default_input_port(type: PortType) virtual const 🔗

Sobrescribe este método para definir el puerto de entrada que debe conectarse de forma predeterminada cuando este nodo se crea como resultado de arrastrar una conexión desde un nodo existente al espacio vacío en el gráfico.

Definir este método es opcional. Si no se sobrescribe, la conexión se creará al primer puerto válido.


String _get_description() virtual const 🔗

Sobrescribe este método para definir la descripción del nodo personalizado asociado en el diálogo de miembros del Editor de shader Visual.

La definición de este método es opcional.


String _get_func_code(mode: Mode, type: Type) virtual const 🔗

Sobrescribe este método para agregar código de shader al principio de cada función de shader (una vez). El código shader debe devolverse como una string, que puede tener varias líneas (la construcción de string multilínea """ se puede usar para mayor comodidad).

Si hay varios nodos personalizados de diferentes tipos que utilizan esta característica, el orden de cada inserción no está definido.

Puedes personalizar el código generado basándote en el mode y/o type del shader.

Definir este método es opcional.


String _get_global_code(mode: Mode) virtual const 🔗

Sobrescribe este método para agregar código de shader en la parte superior del shader global, para definir tu propia biblioteca estándar de métodos reutilizables, variables, constantes, uniformes, etc. El código shader debe devolverse como una string, que puede tener varias líneas (la construcción de string multilínea """ se puede usar para mayor comodidad).

Ten cuidado con esta funcionalidad, ya que puede causar conflictos de nombres con otros nodos personalizados, así que asegúrate de dar a las entidades definidas nombres únicos.

Puedes personalizar el código generado basándote en el mode del shader.

Definir este método es opcional.


int _get_input_port_count() virtual const 🔗

Sobrescribe este método para definir la cantidad de puertos de entrada del nodo personalizado asociado.

Definir este método es obligatorio. Si no se sobrescribe, el nodo no tiene puertos de entrada.


Variant _get_input_port_default_value(port: int) virtual const 🔗

Sobrescribe este método para definir el valor por defecto para el puerto de entrada especificado. Es preferible usar este método en lugar de VisualShaderNode.set_input_port_default_value().

Definir este método es requerido. Si no se sobrescribe, el nodo no tendrá valores por defecto para sus puertos de entrada.


String _get_input_port_name(port: int) virtual const 🔗

Sobreescribir este método para definir los nombres de los puertos de entrada del nodo personalizado asociado. Los nombres se usan tanto para los puertos de entrada en el editor como identificadores en el código shader, y se pasan en el array input_vars en _get_code().

La definición de este método es opcional, pero se recomienda. Si no se sobrescribe, los puertos de entrada se nombran como "in" + str(port).


PortType _get_input_port_type(port: int) virtual const 🔗

Sobrescribe este método para definir el tipo devuelto de cada puerto de entrada del nodo personalizado asociado (véase PortType para los posibles tipos).

Definir este método es opcional, pero se recomienda. Si no se sobrescribe, los puertos de entrada devolverán el tipo VisualShaderNode.PORT_TYPE_SCALAR.


String _get_name() virtual const 🔗

Sobrescribe este método para definir el nombre del nodo personalizado asociado en el diálogo y el gráfico de miembros del Editor de shader Visual.

Definir este método es opcional, pero se recomienda. Si no se sobrescribe, el nodo se nombrará como "Unnamed".


int _get_output_port_count() virtual const 🔗

Sobrescribe este método para definir la cantidad de puertos de salida del nodo personalizado asociado.

La definición de este método es requerida. Si no se sobrescribe, el nodo no tiene puertos de salida.


String _get_output_port_name(port: int) virtual const 🔗

Sobrescribe este método para definir los nombres de los puertos de salida del nodo personalizado asociado. Los nombres se utilizan tanto para los puertos de salida en el editor como identificadores en el código shader, y se pasan en el array output_vars en _get_code().

La definición de este método es opcional, pero se recomienda. Si no se sobrescribe, los puertos de salida se nombran como "out" + str(port).


PortType _get_output_port_type(port: int) virtual const 🔗

Sobrescribe este método para definir el tipo devuelto de cada puerto de salida del nodo personalizado asociado (véase PortType para los posibles tipos).

Definir este método es opcional, pero se recomienda. Si no se sobrescribe, los puertos de salida devolverán el tipo VisualShaderNode.PORT_TYPE_SCALAR.


int _get_property_count() virtual const 🔗

Sobrescribe este método para definir el número de propiedades.

Definir este método es opcional.


int _get_property_default_index(index: int) virtual const 🔗

Sobrescribe este método para definir el índice por defecto de la propiedad del nodo personalizado asociado.

Definir este método es opcional.


String _get_property_name(index: int) virtual const 🔗

Sobrescribe este método para definir el nombre de la propiedad del nodo personalizado asociado.

Definir este método es opcional.


PackedStringArray _get_property_options(index: int) virtual const 🔗

Sobrescribe este método para definir las opciones dentro de la propiedad de la lista desplegable del nodo personalizado asociado.

Definir este método es opcional.


PortType _get_return_icon_type() virtual const 🔗

Sobrescribe este método para definir el icono de retorno del nodo personalizado asociado en el diálogo de miembros del Editor Shader Visual.

La definición de este método es opcional. Si no se sobrescribe, no se muestra ningún icono de retorno.


bool _is_available(mode: Mode, type: Type) virtual const 🔗

Sobrescribe este método para evitar que el nodo sea visible en el diálogo de miembros para el determinado mode y/o type.

Definir este método es opcional. Si no se sobrescribe, es true.


bool _is_highend() virtual const 🔗

Sobrescribe este método para habilitar la marca de gama alta en el diálogo de miembros del Editor de Shaders Visuales.

Definir este método es opcional. Si no se sobrescribe, es false.


int get_option_index(option: int) const 🔗

Devuelve el índice seleccionado de la opción de la lista desplegable dentro de un gráfico. Puedes usar esta función para definir el comportamiento específico en _get_code() o _get_global_code().