Materialbyobject por materialbyelement

Pit [reloaded] - 21/05/2008 09:25
Puse el tema en modelado, pero lo repito aquí por si la hipotética solución fuese mediante scripts. Necesito saber si existe la posibilidad (quizás con un script, no lo sé) de que el modificador materialbyelement funcione byobject.

Me explico, tengo una serie apartamentos y quiero jugar con colores aleatoriamente.

Si uso el materialbyelement, me combina los colores, pero en un apartamento hace combinaciones que diferencian muros, diferentes muros, la pieza del forjado.

En realidad, yo lo que querría es atachar todos los elementos de un apartamento (forjado, sus muros, piezas), seleccionar los apartamentos (pongamos 50 apartamentos), aplicarles a todos esos apartamentos (que ahora cada uno de ellos es un objeto) el materialbyelement, y que cada apartamento recoja un sólo color cuando juego con el modificador.

En realidad, lo que busco es que el materialbyelemente se comporte como si fuese materialbyobject.

Materialbyobject por materialbyelement.
Pit [reloaded] - 21/05/2008 15:00
Si tengo 80 apartamentos como los de la imagen 01. Atachados y convertidos cada uno en un objeto y les asigno un material multisubobjet de 5 materiales (porque voy a jugar con 5 colores o materiales).

Si selecciono todos los apartamentos y les aplico el materialbyelement.

Resulta que asigna materiales aleatoriamente a cada elemento.

Como se ve en la imagen 02.

Yo lo que quisiera es que, asignase aleatorialmente materiales, pero por objetos, no mor elementos.

De esa forma puedo combinar colores de apartamentos aleatoriamente.

Es decir en vez de repartir aleatoriamente materiales a elementos.

Hacerlo a objetos.

Yo creo que de poder hacerse sería mediante un script.

Creo, no sé.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #73640



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #73641

Basie - 21/05/2008 16:34
Igual es muy cutre, pero si atachas todos los elementos del objeto que tienen que ser del mismo color en un sólo elemento no te valdría?
Pit [reloaded] - 21/05/2008 16:38
Eso es lo que he hecho. Cada apartamento ha de ser de un mismo color y esta todo atachado. Selecciono todos los apartamentos.

Pero el modificador reparte aleatoriamente los materiales a los elementos.

No a los objetos, que es lo que yo necesitaría.
maxtoon - 21/05/2008 16:53
Y si conviertes cada apartamento en un elemento, o sea en una misma malla? Has probado con grupos?
Pit [reloaded] - 21/05/2008 16:54

Y si conviertes cada apartamento en un elemento?

¿Y cómo puede hacerse eso?
maxtoon - 21/05/2008 16:55
Investiguemos, pues.
maxtoon - 21/05/2008 17:24
Es que llevar una serie de objetos/polígonos a un solo elemento. No sé, algo así. Y una carcasa, podríamos probar.
hobokaman - 21/05/2008 17:26
Una vez un profesor de informática me vio trabajar en una de sus clases y me dijo que yo era bueno con los ordenadores. Le pregunté porqué decía eso y me dijo que porque había preferido apretar 10 veces Control + z antes de coger el ratón, seleccionar el objeto y borrarlo directamente. Lo tuyo Pit suena a algo parecido. Probablemente pierdas más tiempo buscando el método que te ahorre el trabajo, que haciendo el trabajo en sí. Vamos, lo que hacemos todos.

En cuanto a tu duda, siento no poder ayudarte, más que nada porque no he acabado de entenderlo con tanto vaivén de byobject byelement.
Pit [reloaded] - 21/05/2008 17:54
No hombre materialbyelement es para eso, es la forma más rápida de solucionar esas cosas lo que pasa es que en el caso que me ocupa quiero que ha un apartamento entero se le asigne un color por eso necesitaría que si se puede, fuera materialbyobjetcy, en lugar de materialbyelement.

El que use a menudo el modificador sabe lo que busco.
fidelmg - 21/05/2008 18:14

No hombre. Materialbyelement es para eso, es la forma más rápida de solucionar esas cosas. Lo que pasa es que en el caso que me ocupa quiero que ha un apartamento entero se le asigne un color.

Por eso necesitaría que si se puede, fuera materialbyobjetcy, en lugar de materialbyelement.

El que use a menudo el modificador sabe lo que busco.

Ya estoy en ello Pit. :q).
fidelmg - 21/05/2008 18:27
Estoy topándome con tus mismos problemas.
mesh - 21/05/2008 18:35
Pregunto por preguntar. ¿habéis mirado en scriptspotí. search | scriptspot.
maxtoon - 21/05/2008 18:42
La cuestión es, porque te toma como element un polígono cuadrado, y no un objeto o un triángulo? Mesh he estado buscando, la cuestión es ¿Qué busco?
Pit [reloaded] - 21/05/2008 19:07

Pregunto por preguntar. ¿habéis mirado en scriptspotí. search | scriptspot.

A ver, no he mirado pero estoy destruido si sabes si esta dímelo y no me hagas sufrir.
mesh - 21/05/2008 19:07
Randomize material id es lo que yo he buscado y solo por el nombre hay un par que suenan bien.
Pit [reloaded] - 21/05/2008 19:12
Sí. Suenan bien. Acabo los apartamentos y los pruebo. Mesh, cuando te vea te daré un beso en el trasero. Recuerdamelo.
fidelmg - 21/05/2008 19:25
Es esto lo que deseas verdad. Mañana te digo cómo se hace, con el material by element.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #160943

Pit [reloaded] - 21/05/2008 19:38
Pues parece que sí, pero se ve la imagen muy pequeña. A ver.
fidelmg - 21/05/2008 19:41
Espera te publico la escena, pillala y lo ves por ti mismo. Me ha salido tras media hora de probar cosas.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #73676

maxtoon - 21/05/2008 19:57
Como lo has hecho Fidelmg(perdón)? Que me va a estallar la cabeza.
Pit [reloaded] - 21/05/2008 20:06
Yo mañana mismo a las 07:00 destripo el archivo a ver cómo lo hizo.
maxtoon - 21/05/2008 20:10
Habrá que esperar.
Pit [reloaded] - 22/05/2008 09:29
Ostias, pues sí, Fidel, eso es. Te llamo y me cuentas cómo lo has hecho y hacemos un mini-tutorial.
Pit [reloaded] - 22/05/2008 15:07
Fidel. Dónde estas. ¿Cómo diablos lo has hecho?
Nessito - 22/05/2008 18:38
Y si cada apartamento es un objeto suelto, y tienes un multimaterial. ¿No puedes asignar un material del multisub a cada objeto por separado?
¿Por qué tiene que ser un modificador como el materialbyelement?
Es que se me ocurre un script muy chorra que asigna materiales aleatoriamente a los objetos que tengas seleccionados.

Algo así (y no funciona, es solo un esbozo):
[code]
Mismateriales = meditmaterials as array for obj in $selection do (*.obj), material = mismateriales[random 1 mismateriales, count]
[/code]
Pit [reloaded] - 22/05/2008 18:47
La razón es que, lo utilizo para buscar combinaciones de materiales aleatorias. Selecciono todos los apartamentos y les aplico un material multisubobjeto de 5 materiales que son 5 cerámicas distintas.

Luego le aplico un materialbyelement para buscar combinaciones aleatorias, en las que, por ejemplo, una cerámica oscura tenga un porcentaje de presencia del 50%, otra un 10%.

Para elegir las combinaciones, la que me guste, necesito que todo el apartamento tenga el mismo material, por la forma en que ha sido modelado.

Pero al aplicar el materialbyelement, en un mismo apartamento asigna una cerámica a un muro, otra a otro, y otra, por ejemplo, al forjado.

Para elegir los materiales del edificio y poder jugar aleatoriamente con las combinaciones de materiales y elegir.

Necesito que el modificador asigne una sola cerámica a cada apartamento.

Y que las combinaciones sean 5 cerámicas distribuidas aleatoriamente entre 85 apartamentos.

Es decir, en lugar de un materialbyelement, necesito un materialbyobjet, puesto que cada apartamento es un objeto que resulta de atachar muros y forjado.
Vicent - 22/05/2008 20:59
Probando con el archivo de Fidel, se consigue lo mismo clonando el módulo y después asociándolos todos en un mismo objeto.

Al aplicar el modf (*.mat) by element se consigue igual la aleatoriedad, ya que, cada apartamento a nivel subobjeto sólo tiene un elemento.

Si ya está modelado, asociando no consigues que tenga un sólo elemento, quizás utilizando el ProBoolean consigas que sea un sólo elemento.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #73770

Fiz3d - 23/05/2008 00:42
Yo me he perdido a mitad de camino y, es más puede que incluso no me entere ni de la pregunta, pero yo suelto mi tontería a ver qué tal.

Tenemos 20 apartamentos con sus tejados sus ventanas sus puertas etc y queremos cierta aleatoriedad entre ellos, yo atacharia todas las puertas en un objeto todas las ventanas en otro todos los muros en otro, y aplicaría materialbyelement a esos objetos, pero creo que no es esto, en fin, muchas horas de curre. Saludos.
maxtoon - 23/05/2008 01:16
Bueno, aquí está. Esperaré que Fidel lo explique.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #73783

Pit [reloaded] - 23/05/2008 08:20
Cabronazos. Maxton. Dímelo. Bueno, me pongo, a ver si doy con ello.
Vicent - 23/05/2008 09:03
Lo que ha hecho Fidel. Pero yo no entiendo qué ventajas tiene. Yo haría lo que dice Fiz, partiendo de lo ya modelado, disociaría en un objeto las partes que deben tener aleatoriedad.

O se disocia primero el elemento que debe tener aleatoriedad y después se hacen los clones y se asocian.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #73799

Pit [reloaded] - 23/05/2008 09:06
Pues las tiene. Con matbyelement. La aleatoriedad es para cada elemento, un muro, otro, un forjado. Yo lo que quiero es que la aleatoriedad abarque un apartamento entero, es decir, que para el modificador, un elemento sea un apartamento entero.

Lo que busco es jugar combinando 5 cerámicas en 85 viviendas.

De forma que a una vivienda entera le corresponda en cada combinación una sola cerámica.

No que ha un apartamento ñe pueda corresponder una cerámica a un muro, otra a otro, otra a un forjado.
Vicent - 23/05/2008 09:13
Me refería a las ventajas del método de Fidel. Esta claro lo que buscas y creo que ya tienes posibles soluciones.
Pit [reloaded] - 23/05/2008 09:21
Estoy stresado. Menos mal que ya es viernes.
Pit [reloaded] - 23/05/2008 10:56
Siempre lo he dicho, lo vuestro no tiene ningún mérito mérito, lo que se dice mérito, es lo mío haber llegado donde he llegado con apenas 5 puntos de coeficiente por encima del retraso Mental severo.
maxtoon - 23/05/2008 11:09
Venga hombre, que hoy es san viernes.
radimov - 25/05/2008 23:37
Aquí tiene usted, es bastante sencillo for i in selection do.
(
I, material = meditmaterials[1].materiallist[random 1 5]
) i es el array de la selección, el 1 en meditmaterials es el banco del editor de materiales donde se encuentra el multimaterial y el random es que te elija aleatoriamente desde 1 hasta el número de materiales de que dispones. Simplon, pero funciona.

Posdata: no estoy completamente seguro que sea esto lo que busques.
maxtoon - 26/05/2008 10:27
Sr Radimov. Y con eso que se supone que pasa? No lo entiendo muy bien, ni tampoco como y cuando hay que usarlo, podría explicarlo un poco mejoré saludos.
radimov - 26/05/2008 10:54
Pues con ese script lo que haces es asignar un material id, previamente definido en un material subobjeto de forma aleatoria a los objetos seleccionados. No es tan complicado de entender creo yo.

Create un script nuevo con ese código y en el banco 1 del editor de materiales un material multisubobjeto con 5 materiales dentro. Y ejecuta el script verás cómo van asignándose materiales de forma aleatoria a lo que tengas seleccionado.
maxtoon - 26/05/2008 12:23
Pues sí, señor Radimov esto funciona estupendamente. Era eso lo que se estaba buscando, pero lo habíamos hecho de otra forma, sin ayuda de script, a lo bestia.

Muy bueno el script, gracias.

Si queréis también podemos poner la versión a lo bestia ya que Fidel no responde, fidell.
Pit [reloaded] - 26/05/2008 12:35
Este mediodía lo pruebo.
maxtoon - 26/05/2008 12:46
Pit, atacha los tabiques y luego clonas el piso, selecciónalo todo, pero si agrupar ni nada, y entonces corres el script con el multimaterial seleccionado.

Así me ha funcionado a mí.
radimov - 26/05/2008 14:39
Que conste que tenéis que cambiar el 5 que está dentro del random por el número de materiales dentro del multimaterial que tengáis.
maxtoon - 26/05/2008 15:30
Ok Radimov, yo he creado 5 materiales directamente. Para ver cómo funcionaba con 5. Gracias de nuevo.