Acceder a atributos para copiarlos como instancia
Hola. Estoy creando un script para hacer lo siguiente. Tengo dos objetos, y mediante un script copio como instancia los valores de posición del objeto a al objeto b.
Supongo que hay alguna otra manera mejor de hacerlo, pero yo lo hago así.
$box.pos, controller.x_position, controller = $sphere, pues, controller.x_position, controller.
De esta manera me funciona, y cualquier cambio en la posición en x de la caja, se realiza en la esfera y viceversa.
El problema es el siguiente. Por otro lado, he creado mediante script unos atributos, recogidos con un attribute holder.
Def=attributes prueba.
Parameters pruebaparam.
1 type:#float.
2 type:#float).
).
Custattributes, add $.modifiers[1] Def.
Lo que quiero es acceder a esos atributos y que también sean instancia de la caja y la esfera.
Así, cuando mueva la caja, se moverá la esfera, y el atributo 1 tendrá también el valor de la caja.
He mirado el mensaje make instance of. Pero no creo que sea el mismo caso, o si es algo parecido, no consigo identificarlo. Saludos.
Acceder a atributos para copiarlos como instancia
A ver si esto funciona. Supongamos que tienes una esfera y le aplicas el custom attribute que has puesto al base object. Si ahora quieres crear una instancia del mismo en una tetera, debería ser:
Código:
append $teapot01.baseobject, custattributes $sphere01.baseobject, custattributes[1]
Siempre y cuando el custom attribute esté en esa posición del array de atributos. Saludos.
Acceder a atributos para copiarlos como instancia
Hola Halfvector. Por tu respuesta entiendo que también debo aplicar a la tetera un Custom Attributes. No estoy seguro de que sea exactamente lo que busco.
La idea es que la tetera no tenga custom attributes.
Pongamos una escena con dos elemento, una esfera y un rectángulo. La idea es que la esfera no tiene custom atributes, sino que lo tiene el rectángulo.
En el custom atributes del rectángulo he metido, mediante script, dos parámetros, uno para la posición en x y otro para la posición en y.
Lo que quiero es copiar mediante script, la posición en x de la tetera en el parámetro de posición en x del Custom Attributes que tiene el rectángulo, y copiarlo como instancia. Y lo mismo con la posición en y de la tetera, copiada como instancia en el segundo parámetro del Custom Attributes, para la posición en y.
Si la escena sólo tuviese dos elementos, una caja y una esfera, sin Custom Attributes ninguno de los dos, lo he solucionado como ponía en mí primer mensajes.
$box.pos, controller.x_position, controller = $sphere, pues, controller.x_position, controller.
El problema es que no sé cómo acceder a los parámetros que he creado en el Custom Attributes para hacer algo similar a lo de arriba.
$box.pos, controller.x_position, controller = $sphere, pues, controller.x_position, controller.
Donde pueda sustituir la expresión de la esfera por la del rectángulo con Custom Attributes. Saludos.
Acceder a atributos para copiarlos como instancia
Hombre Carlos, ¿Qué tal? No voy a decir nada interesante, solo era para saludar. Ya me contaras como vas por, allá. Adeu.
Posdata: lo siento por el offtopic.
1 Archivos adjunto(s)
Acceder a atributos para copiarlos como instancia
Podrías intentar de la misma manera que hiciste para copiar los controladores de la caja a la esfera:
Código:
Def=attributes prueba.
Parameters main ut:persiana.
Vara type:#float ui:a.
Varb type:#float ui:b).
Rollout persiana position.
Spinner a x range:[-999999,999999,0].
Spinner b y range:[-999999,999999,0]).
).
Custattributes, add $box01 Def.
$box01.prueba, vara, controller=$box01.position, controller.x_position, controller.
$box01.prueba, varb, controller=$box01.position, controller, y_position, controller.
$sphere01.position, controller.x_position, controller=$box01.position, controller.x_position, controller.
$sphere01.position, controller, y_position, controller=$box01.position, controller, y_position, controller
Esto teniendo una esfera llamada sphere01 y una caja llamada box01.
Archivo de ejemplo adjunto.
-- IMÁGENES ADJUNTAS --
https://foro3d.com/attachment.php?attachmentid=38917
Acceder a atributos para copiarlos como instancia
Perdón por revivir el hilo, pero tengo una duda, y este mensaje me a ayudado un poco, pero. Como hago para que los atributos estén en un attribute holder y no en la base del objeto (en este caso box).
Desde ya, muchas gracias.
Acceder a atributos para copiarlos como instancia
Hola. En teoría, suponiendo que tienes un custom attribute como, por ejemplo, éste:
Código:
foca = attributes foattributes.
(
Parameters main ut:parámetros.
(
Fo type:#float ui:fospinner default:10
).
Rollout parámetros myrollout.
(
Spinner fospinner fo type:#float.
)
)
y un objeto con un attribute holder, con esto lo añadirías sólo al attribute holder del objeto:
Código:
custattributes, add $.modifiers[attribute holder"] foca
creo que debería funcionar. Saludos.
Acceder a atributos para copiarlos como instancia
Gracias, ya mismo lo pruebo.