Documentación del Programa Cinema 4D Referencia Cinema 4D Cinema 4D Características básicas XPresso
Función disponible en CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

Editor de XPresso

Menú
Menús Contextuales de XPresso
Gestor de XPresso
XPresso Pool

Para crear una nueva expresión y para abrir el Editor de XPresso, en el Gestor de Objetos, selecciona un objeto cualquiera y selecciona Etiquetas / Etiquetas Programación / XPresso. Puedes cerrar el editor en cualquier momento y volver a abrirlo haciendo doble click en la Etiqueta XPresso.

Los nodos son los bloques de construcción de las expresiones de XPresso. Los nodos pueden realizar una gran variedad de tareas, desde mostrar el número del fotograma actual de la animación hasta establecer un objeto en una posición en particular. Para crear tus expresiones, crea los nodos necesarios y conéctalos dibujando líneas, llamadas conexiones, entre los puertos de entrada y de salida de los nodos. De este modo los nodos pueden pasarse valores entre ellos mediante esos puertos y las conexiones.

La ilustración superior muestra dos nodos: uno para un cubo y otro para un cilindro. Los dos círculos, ambos llamados Rotación, son puertos. Los puertos situados bajo los cuadrados rojos son puertos de salida y envían valores a XGroups o a otros nodos. Los puertos situados bajo los cuadrados azules son puertos de entrada y reciben valores de otros nodos o XGroups. En este ejemplo, el valor de rotación del cubo se transfiere al cilindro. Esto producirá que el cilindro esté orientado del mismo nodo que el cubo en la vista del editor.

Para aprender XPresso lo más rápidamente posible, recomendamos que trabajes con los tutoriales en el manual Tutorial de Cinema 4D y, si no tienes algo claro, míralo en este manual de referencia para encontrar una descripción completa. Adicionalmente, encontrarás varios ejemplos de expresiones en tu CD de Cinema 4D, cada uno documentado con comentarios. Puede aprenderse mucho de esos ejemplos leyendo los comentarios y probando con tus propios cambios.

XGroups

Los XGroups son contenedores para nodos, para otros XGroups y sus conexiones. Como contenedores reales, los XGroups te ayudan a poner elementos relacionados en la misma caja para una mejor organización. Así encontrarás más fácil de entender, navegar y modificar la expresión. Además de actuar como contenedor, un XGroup puede conectarse a los nodos y a otros XGroups. Puedes guardar y cargar los XGroups para reutilizarlos en otros proyectos.

Usa XGroups para organizar los nodos en grupos.

Puedes navegar por el contenido de un XGroup de un modo similar a navegar por el panel de vista de Cinema 4D. Para mover o ampliar los contenidos, arrastra los iconos de mover o ampliar en la esquina superior derecha del XGroup. Además puedes mover los contenidos pulsando las teclas de cursor. Para añadir puertos al XGroup, selecciona los puertos deseados desde el menú de entrada del XGroup (el cuadrado azul) o desde el menú de salida (el cuadrado rojo).

Para minimizar un XGroup a su barra de título, haz doble click en la barra de título. Para restaurar la ventana de un XGroup a su tamaño original, haz doble click de nuevo en la barra de título. Para mover un XGroup, arrastra su barra de título. Para redimensionar un XGroup, arrastra el borde o una esquina.

Cuando creas tus propias expresiones, a menudo necesitarás seleccionar un XGroup para, entre otras cosas, cargar sus opciones en el Gestor de Atributos y así poder editarlas. Para seleccionar un XGroup, haz click en la barra de título del XGroup. Para seleccionar múltiples XGroups, arrastra el ratón para crear un recuadro sobre ellos, o bien selecciona uno de los XGroups y luego haz click+mayus sobre el resto de XGroups que quieras seleccionar; los XGroups seleccionados tienen los bordes de color naranja.

Primero Entradas

Al seleccionar un XGroup, en la pestaña Propiedades del Nodo en el Gestor de Atributos, hay una opción llamada Primero Entradas. Si se activa esta opción, los nodos que están situados fuera del XGroup seleccionado se evalúan primero. Esto es especialmente importante cuando el XGroup recibe valores de los nodos, para asegurar que el XGroup recibe valores actualizados.

Activar

Esta opción permite activar (activo) o desactivar el XGroup. Los nodos situados dentro del XGroup sólo se procesarán si el XGroup está activado. Además puedes activar el nodo enviando un valor Booleano de True (Verdadero) o un valor de 1 a su puerto Activar.

Proteger / Desproteger

Puedes proteger con una contraseña los XGroups usando este botón, que ocultará el contenido del XGroup hasta que se introduzca la contraseña.

Par proteger un XGroup, selecciona primero Vista / Bloqueado en el menú contextual. En el Gestor de Atributos, haz click en el botón Proteger. En la ventana de diálogo que se abre, introduce la contraseña para el XGroup. El XGroup estará ahora protegido con contraseña.

Para desproteger un XGroup, has de proceder al revés. Primero, haz click en el botón Desproteger e introduce la contraseña. Para mostrar el contenido del XGroup, desactiva Vista / Bloqueado del menú contextual y selecciona el modo de vista deseado de nuevo desde el menú contextual (para mostrar el contenido, selecciona Vista / Extendido).

Nodos

Los nodos de Cinema 4D funcionan en radianes. En otras palabras, los nodos usan valores angulares de 0 a 2*Pi en vez de en grados de 0 a 360º. Si quieres trabajar en grados, usa el nodo Grados para convertir de radianes a grados y viceversa.

Los nodos son los bloques de construcción primarios de las expresiones y están diseñados para realizar muy diversas tareas, desde extraer la posición actual de un objetos hasta procesar operaciones matemáticas. Dependiendo del tipo de nodo, puedes añadir varias entradas y salidas al nodo llamados puertos. Como en los XGroups, esos puertos se añaden usando los menús de entrada y de salida (los cuadrados azules y rojos respectivamente en la barra de título del nodo).

Cuatro nodos. El nodo Resultado muestra el valor 1 si el cono y el cubo tienen la misma altura (valor Y).

Puedes minimizar o maximizar un nodo haciendo doble click en su barra de título; para mover un nodo, arrastra su barra de título; para redimensionarlo arrastra un borde o una esquina. Haz click en un nodo para seleccionarlo y cargar sus opciones en el Gestor de Atributos. Para seleccionar múltiples nodos, arrastra un recuadro sobre ellos o selecciona un nodo y luego haz Mayus-click en los otros nodos para seleccionarlos; los nodos seleccionados tienen el borde naranja.

Puedes activar/desactivar un nodo mediante la opción Activar en el Gestor de Atributos o mediante la opción Desactivar del menú contextual del nodo, el cual se describe más adelante en este capítulo.

Para renombrar un nodo, selecciona el nodo e introduce su nuevo nombre en la pestaña Propiedades Básicas del Gestor de Atributos. También puedes establecer en el Gestor de Atributos, si está disponible, el tipo de datos del nodo; esto define el tipo de datos que maneja el nodo, como por ejemplo enteros o caracteres.

Puedes reasignar a un nodo Objeto, Material o Etiqueta un objeto, material o etiqueta distinto. Simplemente arrastra y suelta el objeto, material o etiqueta sobre la parte interna del nodo (la zona donde normalmente aparece el nombre de los puertos). Los puertos originales se preservarán si son apropiados para el nuevo objeto, material o etiqueta. Los puertos que no pueden aplicarse al nuevo elemento se establecerán al estado Sin Definir.

Cada nodo de XPresso se describe más adelante en este capítulo.

Puertos

Los puertos son las entradas y salidas de los nodos y XGroups. Para añadir un puerto, selecciona el puerto deseado desde el menú de entrada (cuadrado azul) o desde el menú de salida (cuadrado rojo); en esos menús los puertos que ya se hayan añadido se mostrarán atenuados.

Añade puertos usando los menús de entrada y salida (los cuadrados azul y rojo en las esquinas superiores del nodo).
Los valores se transfieren mediante los puertos. Los puertos de salida están situados bajo los cuadrados rojos y los puertos de entrado bajo los cuadrados azules.

Los puertos rojos son los puertos de salida y envían valores a otros nodos o XGroups. Los puertos azules son puertos de entrada y reciben valores de otros nodos o XGroups. Para conectar un puerto de salida con un puerto de entrada, arrastra y suelta el círculo de un puerto sobre el otro. Una conexión conectará los puertos tal y como se ilustra abajo.

Hay disponibles varios comandos que son específicos para los puertos desde el menú contextual del puerto.

Si se selecciona un nodo o XGroup y tiene puertos desconectados, normalmente se mostrarán en la pestaña Parámetros del Gestor de Atributos (no se aplica a nodos Objeto); puedes establecer valores en esos puertos introduciendo valores en esa pestaña. Esto puede ser especialmente útil para probar nodos con distintos valores. El Gestor de Atributos también permite enviar tus propios datos a los nodos (mira "Datos de Usuario" abajo).

Para mostrar el nombre de un puerto, sitúa el puntero del ratón sobre el puerto y su nombre aparecerá en la barra de estado del Editor de XPresso. (Para activar la barra de estado, activa la opción Mostrar Barra de Estado en el menú Entorno del Editor de XPresso). Para mostrar los nombres de los puertos, activa la opción Puertos / Mostrar Nombre en el menú contextual del nodo.

Haciendo doble click en un puerto se desconectará. Si ya está desconectado, haciendo doble click en el puerto lo borrará. Para cambiar el orden vertical del puerto, arrastra el puerto y suéltalo sobre su nueva posición.

Los puertos definidos para parámetros de elementos se mostrarán como una marca en el Gestor de Atributos:

Datos de Usuario

Los puertos de Datos de Usuario permiten enviar tus propios valores mediante el Gestor de Atributos.

Para crear un puerto de Datos de Usuario:

Conexiones

Las conexiones te permiten conectar los puertos de nodos y XGroups.

Para que nodos y XGroups puedan transferir valores a otros nodos, primero deben crearse los puertos necesarios y conectarlos usando conexiones. Para crear una conexión entre dos puertos, arrastra el círculo de un puerto y suéltalo sobre otro. Aparecerá una línea mientras arrastras que cambiará de color cuando el puntero esté situado sobre el segundo puerto.

Hay conexiones que no están permitidas. Por ejemplo, no puedes hacer conexión entre puertos de entrada o entre puertos de salida, tampoco puedes conectar puertos que tienen tipos de datos incompatibles. Mientras arrastras la conexión, su color cambia para indicar si es posible la conexión (verde) o no (gris oscuro). Si no se permite la conexión, la conexión de arrastre se borrará en cuanto sueltes el ratón.

Un puerto de salida puede conectarse a varios puertos de entrada, haciendo posible transferir en mismo valor a varios nodos o XGroups. Sin embargo un puerto de entrada sólo puede tener una única conexión.

Para conectar un puerto de salida a un puerto de entrada del mismo nodo, copia el nodo (mantén pulsado Ctrl mientras arrastras el nodo y al soltar el ratón se creará una copia del nodo) y conecta el puerto de salida del primer nodo al puerto de entrada del segundo nodo.

Si accidentalmente estableces una conexión al puerto equivocado, puedes reconectarlos arrastrando y soltando la conexión sobre el puerto correcto. Si sueltas la conexión sobre un espacio vacío (es decir, no sobre un puerto) la conexión se eliminará. También puedes eliminar una conexión haciendo click sobre ella o seleccionando la opción Eliminar Enlaces desde el menú contextual del puerto.

Si en una expresión las conexiones se enmarañan, reposiciona los puertos arrastrando cada puerto a una nueva posición. Sólo pueden reposicionarse verticalmente. No puedes, por ejemplo, arrastrar un puerto de entrada del lado derecho de un nodo al lado izquierdo.

Las conexiones convierten los tipos de datos compatibles automáticamente. Por ejemplo, si pasas un valor real, como 72.163, a un nodo que funciona sólo con enteros, la conexión convertirá automáticamente el valor real a un entero - en este caso, a 72.

Tipos de Datos

Cada nodo y XGroup tiene un tipo de datos que define el tipo de valor que usa, como Entero, Vector o Color. Si conectas dos nodos que usan tipos de datos distintos, la conexión entre ambos convierte el tipo de datos automáticamente si ambos tipos son compatibles. Por ejemplo, si un nodo Constante transfiere el valor real de 3.45 a un nodo Resultado con el tipo de dato establecido a Entero, el valor se convertirá a un entero automáticamente - en este caso, a 3.

Aunque algunos nodos tienen un tipo de datos fijo que no se puede cambiar, puedes cambiar el tipo de datos en la mayoría de los nodos en el Gestor de Atributos.

Color

Este tipo de datos consiste en los componentes de color rojo, verde y azul. Los valores RGB pueden también interpretarse como un vector - el color R:10, G:75, B:0 equivaldría al vector (10;75;0). Esto te permite, por ejemplo, usar un color para controlar el vector de posición o rotación de un objeto.

Enlace

El tipo de dato Enlace contiene información sobre los diversos elementos de una escena de Cinema 4D, incluyendo información de etiquetas y materiales así como de objetos. El tipo Enlace no puede convertirse a otros tipos de datos. El propósito del tipo de datos Enlace es permitir seleccionar un elemento de la escena (como un objeto, etiqueta o material) para examinarlo en detalle. Por ejemplo, puedes usar el tipo de dato Enlace para añadir un campo de dato de usuario en el Gestor de Atributos. Puedes entonces asignar materiales, etiquetas y objetos arrastrando y soltándolos en el campo. Mira también Objeto, abajo.

Nombre de Archivo

Este tipo de dato permite establecer una ruta de archivo. Por ejemplo, el nodo Sonido usa el tipo de dato Nombre de Archivo para establecer la ruta del archivo de sonido que quieres cargar.

Textura

Este elemento contiene referencia a una textura, es decir, a una imagen o un shader. Este tipo de dato es sólo útil con materiales.

Brillo de Lente

El tipo de dato Brillo de Lente es un contenedor para una configuración de datos completa - en este caso, para toda la información requerida para controlar el brillo de lente de una luz. Este tipo de dato no puede convertirse a otros tipos.

Booleano

El tipo de dato Booleano tiene dos posibles estados: True (Verdadero) o False (Falso). Estos estados están representados numéricamente por los valores 1 (True) y 0 (False). Aunque pueden usarse valores Booleanos en cálculos matemáticos, hay que tener presente que el tipo de dato Booleano puede manejar sólo el valor de 0 ó de 1. Cuando quieras combinar varios valores Booleanos, usa los nodos Lógicos.

Entero

El tipo de dato Entero soporta números enteros (números no fraccionarios) que pueden ser negativos, cero o positivos. Los números después del punto decimal se ignoran; esto puede producir resultados imprecisos si hay involucradas fracciones. Puedes usar el tipo de dato Entero con todos los formatos numéricos y vectoriales.

Cuando se convierte un vector a entero o a real, se calcula automáticamente la longitud del vector mediante el cálculo RAÍZ(V.x*V.x+V.y*V.y+V.z*V.z), donde V.x, V.y y V.z son los componentes X, Y y Z del vector y RAÍZ es la función raíz cuadrada. Por otro lado, cuando se convierte un valor entero o real a vector, se usa ese mismo valor para los componentes X, Y y Z del vector. Por ejemplo, el real 12.5 se convierte al vector (12.5;12.5;12.5).

Real

En contra de los enteros, los reales pueden ser números fraccionarios. El ejemplo típico de un real es Pi, es decir, 3.141592654. Usa el tipo Real cuando hay involucrados complejos cálculos y quieres un resultado preciso. Los reales pueden convertirse a vectores o enteros. Cuando se convierte un real en entero, se pierden todos los números después del punto decimal (es decir, los reales se redondean hacia abajo cuando se convierten a enteros).

Vector

El tipo de dato Vector es importante para manipular posiciones y rotaciones en el espacio 3D. Todas las posiciones de los objetos, ángulos HPB, colores y coordenadas de puntos son vectores. En el vector los valores se establecen uno a uno. Por ejemplo, las posiciones se establecen con el orden (posición X; posición Y; posición Z) y las rotaciones con el orden (ángulo H; ángulo P; ángulo B). En Cinema 4D un vector siempre tiene tres componentes. Si conviertes un vector a entero se convertirá la longitud del vector en vez de sus componentes individuales. Puedes usar también vectores con matrices.

Normal

Un vector normalizado es un vector con la misma dirección pero con una longitud de 1.

Matriz

Una matriz es un grupo de vectores, como la matriz global de un objeto, que contiene el vector de posición del vector y tres vectores para cada uno de los ejes del objeto. Los vectores de los ejes no sólo representan la dirección del objeto, también su escala (la escala se define por la longitud de cada vector de eje). Además la matriz global te da acceso a la posición, escala y rotación del objeto.

Los cuatro vectores se establecen para la matriz global en los siguientes registros: V0 para el vector de posición (llamado el vector Desfase), V1 (eje X), V2 (eje Y) y V3 (eje Z). Usando esos registros puedes leer o sobreescribir cualquier vector, como por ejemplo el V2 para el eje Y del objeto.

Tiempo

El tipo de dato tiempo te da acceso al tiempo actual de la animación. Ten en cuenta que este valor es afectado por el rango de fotogramas por segundo. Por ejemplo, si el rango es de 25 fotogramas por segundo, el valor de Tiempo del fotograma 24 es exactamente un segundo. El tipo de dato Tiempo es especialmente útil para controlar procesos dinámicos ya que permite tener en cuenta el progreso de la animación. Por ejemplo, puedes hacer que una pelota rebote una vez por segundo o hacer que un objeto siga a otro durante un periodo de tiempo en particular. Mira también Fecha/Hora abajo.

Caracteres

El tipo de datos Caracteres es para texto y cadenas de caracteres. Una cadena puede manejar letras, números y caracteres especiales. Por ejemplo, puedes usar el tipo de dato Caracteres para permitir al usuario introducir un nombre en un campo de texto. Adicionalmente, las conexiones de XPresso pueden convertir automáticamente secuencias numéricas en la cadena a vectores, matrices u otros formatos numéricos. Por ejemplo, puedes transferir la cadena 12;4;5 a un nodo en vez del vector (12;4;5).

Objeto

El tipo Objeto es un subtipo de Enlace y se usa para sólo para datos de objetos. Entre otras cosas, este dato te da acceso a las matrices global o local de un objeto. Mira también Enlace, arriba.

Gradiente

El tipo de dato gradiente consiste en un gran número de valores que representan un gradiente. No puede convertirse a otros tipos de datos. (Aunque los colores individuales pueden convertirse a vectores, no hay forma de especificar la posición del color en el gradiente para acceder a él).

Incluir/ Excluir

Usando las listas de Incluir y Excluir, las luces pueden retringirse a objetos específicos. Las listas de Incluir y Excluir contienen una lista de objetos. Dado que esto está diseñado específicamente para su uso con fuentes de luz, no hay conversión disponible. Usa un objeto o luz en su lugar para leer etiquetas, materiales u objetos, por ejemplo, en un campo Datos de usuario

Prioridad

El tipo de dato Prioridad contiene la XPrioridad y su valor numérico, más detalles del orden de evaluación. Este tipo de dato se usa para el puerto de prioridad de las etiquetas.

Fuente

El tipo de dato Fuente establece información de una fuente elegida, incluyendo si debe usarse como una fuente TrueType o PostScript. Por ejemplo, puedes usar el tipo de dato Fuente para variar la apariencia de una spline texto. El tipo de dato Fuente no puede convertirse a otros tipos.

Fecha/hora

En contraste con el tipo de dato Tiempo, Fecha/Hora extrae la hora de tu ordenador (en el formato horas:minutos:segundos y la fecha de sistema. Por ejemplo, podrías crear una expresión Sol que establezca la posición y color de una luz a la hora real.

Spline

Con el tipo de dato Spline puede dibujarse una spline en el Gestor de Atributos usando una gráfica. La gráfica va desde los valores extremos Mín X a Máx X a lo largo del eje horizontal y desde Mín Y a Máx Y a lo largo del eje vertical.

El XPresso Pool

El XPresso Pool proporciona un modo rápido de añadir nodos al Editor XPresso. El XPresso Pool contiene todos los nodos de Cinema 4D, en el que puedes crear tus propios pools y colocar en ellos nodos preconfigurados que se adaptan a tus necesidades. Por ejemplo, supongamos que necesitas crear muy a menudo un nodo Matemático para una resta de enteros (Tipo de Dato establecido a Entero y Función establecido a Resta). En vez de crear manualmente esos parámetros cada vez que necesites crear un nodo así, puedes añadir el nodo configurado al XPresso Pool. La próxima vez que añadas el nodo, puedes arrastrarlo desde el pool y soltarlo en el Editor de XPresso, ya configurado para restar enteros.

Haciendo clic en el icono de la lupa se abrirá un filtro de texto, que sirve para mostrar sólo los Nodos que estás buscando sin mostrar todos los subdirectorios.

Es un filtro de mostrado que funciona a tiempo real. Todo lo que tienes que hacer es introducir el texto referente a los Nodos que quieres mostrar. Se mostrará cualquier elemento que contenga ese texto en parte o completamente. Las mayúsculas no afectan al resultado. Haciendo clic en el botón X se borrará el campo de texto.

Para abrir el XPresso Pool:

Crear Pool

Selecciona este comando para crear un nuevo pool para tus propias configuraciones de nodos. Usa la ventana que se abre para definir una ruta de guardado para el pool (nota que los grupos se guardan en la carpeta Library / xnode dentro de la carpeta de usuario); el pool se guardará automáticamente y estará disponible cada vez que reinicies Cinema 4D. Para añadir tus propios nodos configurados al pool, primero configura los nodos como desees en el Editor de XPresso y luego arrastra y suelta los nodos en el pool.

Cargar Pool

Este comando permite cargar un archivo de pool.

Eliminar Preestablecido

No puedes eliminar nodos del pool original.

Elimina el preestablecido o carpeta seleccionada del pool.

Renombrar Preestablecido

Renombra el preestablecido. Por ejemplo,si has configurado un nodo Matemático para restar enteros, tal vez quieras renombrarlo a Restar Ent.

Crear Carpeta

Crea una nueva carpeta. Esto te permite organizar tu pool en carpetas. Arrastra y suelta los nodos que quieres colocar en la carpeta desde XPresso Pool o desde el editor XPresso en la carpeta.