Materialbyobject por materialbyelement
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.
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
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?
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.
Y si conviertes cada apartamento en un elemento, o sea en una misma malla? Has probado con grupos?
Y si conviertes cada apartamento en un elemento?
¿Y cómo puede hacerse eso?
Es que llevar una serie de objetos/polígonos a un solo elemento. No sé, algo así. Y una carcasa, podríamos probar.
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.
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.
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).
Estoy topándome con tus mismos problemas.
Pregunto por preguntar. ¿habéis mirado en scriptspotí.
search | scriptspot.
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?
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.
Randomize material id es lo que yo he buscado y solo por el nombre hay un par que suenan bien.
Sí. Suenan bien. Acabo los apartamentos y los pruebo. Mesh, cuando te vea te daré un beso en el trasero. Recuerdamelo.
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
Pues parece que sí, pero se ve la imagen muy pequeña. A ver.
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
Como lo has hecho Fidelmg(perdón)? Que me va a estallar la cabeza.
Yo mañana mismo a las 07:00 destripo el archivo a ver cómo lo hizo.
Ostias, pues sí, Fidel, eso es. Te llamo y me cuentas cómo lo has hecho y hacemos un mini-tutorial.
Fidel. Dónde estas. ¿Cómo diablos lo has hecho?
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]
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.
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
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.
Bueno, aquí está. Esperaré que Fidel lo explique.
-- IMÁGENES ADJUNTAS --
🖼️
Estamos trabajando para mostrar las imágenes del foro
Adjunto #73783
Cabronazos. Maxton. Dímelo. Bueno, me pongo, a ver si doy con ello.
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
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.
Me refería a las ventajas del método de Fidel. Esta claro lo que buscas y creo que ya tienes posibles soluciones.
Estoy stresado. Menos mal que ya es viernes.
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.
Venga hombre, que hoy es san viernes.
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.
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.
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.
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, 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í.
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.
Ok Radimov, yo he creado 5 materiales directamente. Para ver cómo funcionaba con 5. Gracias de nuevo.