Enlazar objetos entre ficheros

viriathus - 18/07/2005 22:18
En Blender puedes importar objetos, texturas y demás desde otro fichero Blender, a través de shift+f1. Hasta ahí perfecto.

En el momento de importar un objeto tienes dos opciones: añadir a la escena (append) o enlazar a la escena (link). Esta segunda opción me parece interesante, pues teniendo un sólo modelo puedo reutilizarlo en varias escenas, y si modifico el objeto original todas las escenas se actualizan.

Ok, pero el problema que tengo es que cuando importo un objeto enlazado, no puedo hacer absolutamente nada con el en mí escena. Se importa en una posición y no se puede ni mover, ni rotar, ni nada de nada. ¿alguien sabe qué sentido tiene esto de enlazar objetos si no puedes recolocarlos como quieras?
Leander - 18/07/2005 23:28
Creo que eso se utiliza para decorados, para que trabajes solo con los elementos que interactúan en la escena original. Saludos.
viriathus - 18/07/2005 23:35
Pues es una pena que no puedan usar para nada más. Quizás es usable para hacerse una librería de materiales compartida entre ficheros blend.
Leander - 19/07/2005 00:03
¿Porque no lo propones por Blender, org?
viriathus - 19/07/2005 15:26
Ya he conseguido lo que andaba buscando. Mi objetivo:

Pasos:

A disfrutarlo.
elGordo - 19/07/2005 18:01
Muy interesante. Gracias viriathus. Un saludo.
Leander - 19/07/2005 18:12
Gracias varia, viriathus.
viriathus - 19/07/2005 18:32
A ver si cuando llegue a casa hago algún screenshot, para que se vea más claro. Y Leander.
elGordo - 19/07/2005 21:55
Y, además, el método que describes, viriathus, te permite deformar las referencias enlazadas con lattices, que es otra cosa muy interesante a tener en cuenta. Un saludo.
viriathus - 20/07/2005 01:39
Para terminar, paso algunas imágenes con explicaciones: Foto 1: He modelado una silla, con dos materiales. En el diagrama se ve como el objeto silla1 (con el icono de las 3 flechas) tiene asociada la malla silla1 y esta a su vez tiene asociados dos materiales (silla y silla001). En el panel inferior (links and materiales) ponemos el nombre al objeto (ob:) y a la malla (me:).


Foto 2:
Después de guardar el fichero, creamos uno nuevo e importamos la silla (shift+f1). El truco está en importar la malla (Mesh) y no el objeto. Marcamos el botón enlace porque queremos enlazar la malla, no copiarla.


Foto 3:
Tras importar la malla, vemos que nos hemos traído los dos materiales automáticamente, eso es porque la malla esta jerarquicamente por encima del material. Si los materiales tuvieran texturas, también los habría enlazado. Con la malla no podemos hacer mucho, salvo que la asociemos a un objeto. Para ello creamos un plano, por ejemplo, ¿cómo se ve en la imagen. Vemos que el objeto plane tiene una malla plane asociada.


Foto 4:
Ahora viene el segundo paso importante. Seleccionamos el objeto plane y cambiamos la malla que tiene asociada. Eso lo hacemos desde el panel enlaces and materiales. En el desplegable me: seleccionamos la silla. En esta fotografía se ven dos cosas más: tras asociar el plano con su nueva malla, Blender no repinta. Además, he añadido un modificador lattice que como vemos se aplica a nivel de objeto, por lo que no modifica la malla. Los objetos tienen sus propios datos de escala, posición y rotación, que no interfieren con la malla. También vemos en la jerarquía que tanto la malla silla como sus materiales asociados tienen cuadrados de colores: esto nos indica que esos bloques están enlazados con una librería. Se puede ver además que la malla plane sigue ahí, pero sin enlazar con nada.


Foto 5:
Tras guardar la escena y abrir de nuevo, esa malla plane desaparece. Vemos como ya aparece nuestra silla. En la imagen se ven dos por que cloné (Alt+d) el objeto. De hecho, en el diagrama se ve perfectamente como hay dos objetos silla asociados a la misma malla y con el mismo lattice. Puedo escalar las sillas, moverlas y rotarlas siempre que lo haga a nivel de objeto. Si intentáis editar la malla o el material os dará error.

Tras todo esto, si modificais el fichero con la silla, la escena anterior se verá modificada. Realmente no se modifica porque no guarda dentro la malla, sino que cada vez que abrimos la escena le de la librería asociada la malla y los materiales de la silla.

Si queremos que el objeto esté incrustado y no enlazado, podemos pulsar sobre el icono coloreado que se ve en la fotografía 5, rodeada por un círculo rojo. Esto mismo tendremos que repetirlo con sus dos materiales asociados.



-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #16329



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #16330



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #16331



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #16332



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #16333

pnc - 13/01/2006 12:59
Justo lo que andaba buscando. Gracias viriathus.
viriathus - 13/01/2006 13:26
Habría que probar que pasa si se enlazan grupos de objetos (sólo en la rama orange). Luego si tengo un rato lo pruebo, por curiosidad.
alexv - 13/01/2006 13:50
Excelente viriathus, gracias por tu explicación. Saludos.
Mars Attacks - 13/01/2006 13:51
¿No funcionaba simplemente el emparentarla a un empty?
SHAZAM - 13/01/2006 13:57
Muy interesante, me ha recordado la propiedad de a:m que permite importar modelos poligonales como props para utilizarlos como atrezo. Saludos.
viriathus - 13/01/2006 14:44

¿No funcionaba simplemente el emparentarla a un empty?

Yo no he conseguido asociar un Mesh con un Empty (en el panel enlaces and materiales sólo puedo cambiar el nombre del empty).
Klópes - 13/01/2006 14:51
Un objeto ya tiene su clase asociada, no se puede cambiar, y un Empty es siempre un empty. Edito: en Python existe el método (*.obj), gettype (), pero no (*.obj), sertype ().
Pepius - 13/01/2006 16:15
Klopes, te refieres a (*.obj), settype (), no (*.obj), sertype ().
otisnet - 13/01/2006 20:59
Bueno, yo no he enlazado ningún objeto, pero he importado objetos entre ficheros y a veces he de decir que me daba por culo con lo que cuentas en alguna versión de desarrollo. Lo que hacía era abrir con la última versión estable, importaba, guardaba y listo.
Mars Attacks - 14/01/2006 00:08
Me refiero a emparentar la cosa importada, el objeto, a un Empty y trabajar sobre el empty. ¿no se puede?
domenico - 23/08/2008 22:09
Hola a todos. Soy novato en Blender y el mensaje me resulto muy interesante, tanto que me asocie a la comunidad solo para hacer una pregunta referida al tema.

La pregunta que yo hago es ¿se puede hacer esto mismo que hicieron con la silla, pero de tal modo que también se pueda editar el objeto enlazado y estos cambios afecten al objeto y su archivo original? Saludos. Doménico.
carleptos - 24/08/2008 10:00
Muchas gracias por la explicación. Tan clara que hasta yo he creído entenderla.