Maxscript make instance of

HalfVector - 13/09/2006 20:01
Hola. Aquí estoy con un nuevo script. Se trata de una utilidad que humilde una lista de nodos en instancias de otro. Como siempre, va con un video explicativo. El código también esta comentado.

El script es muy sencillo. La funcionalidad principal del script se reduce al uso de la función instancereplace. Lo demás es código para manejar la lista de nodos y poco más.

En cualquier caso, comprendo que a pesar de comentar el código, no está lo suficientemente desmenuzado como para que el que no sepa nada de scripting/programación lo entienda. Espero poder sacar algún día los tutoriales que tenía pensado. Saludos.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #36264

Molok - 13/09/2006 20:08
Gracias Halfvector. No paras. Un saludo.
Fiz3d - 13/09/2006 21:15
Tio, genial, y esta comentado de miedo, un pregunta, podría mirarlo y eso, pero estoy de un perro que no veas, lo de GC() del final, el colector de basura, es una función que te has currado tu o ya viene con Maxscript. Mil gracias.
HalfVector - 13/09/2006 21:41

Lo de GC() del final, el colector de basura, es una función que te has currado tu o ya viene con Maxscript.

Sí, es una función propia de Maxscript.

En realidad, max llama al colector de basura automáticamente cuando la memoria disponible escasea. El hecho de llamarlo explícitamente es para forzar a max a liberar la memoria reservada que ya no se utiliza. Además, cuánta más memoria se tenga que liberar de golpe, más se tardará en hacerlo por lo que con esto también evitamos tirones en la ejecución de la aplicación. Y además veremos que si teníamos dos copias del mismo objeto, al instanciar, enseguida vemos que la memoria consumida se reduce drásticamente.

Por ejemplo, si tengo una tetera de 60 subdivisiones (230.400 polys), ocupa en memoria 27mb. Si hago una copia, ambas teteras ocupan 54 Mb. Si ahora ejecuto la utilidad ésta y hago que una de ellas sea instancia de la otra, el total de memoria consumida por ambas es de 33mb. Si no llamase al colector de basura, esta diferencia de memoria no se vería reflejada al instante.

Pero bueno, como he dicho, no sería estrictamente necesario llamar al colector de basura. Max ya se encargaría de llamarlo si viera que falta memoria. Saludos.
slime - 13/09/2006 23:12
Eres un fenómeno, Halfvector.
essmigol - 14/09/2006 00:18
Muchas gracias Halfvector, voy a probarlo.
Nessito - 14/09/2006 14:50
Interesante como practica. Sobre todo, para la gente que está tratando de meterse en esto del Maxscript, revisar el código ajeno es lo mejor para aprender.

Pero la funcionalidad ya existe sin necesidad de ningún script, al menos en la versión 8.
mesh - 14/09/2006 15:40
Muchas gracias tío, muy útil.
HalfVector - 14/09/2006 17:43

Pero la funcionalidad ya existe sin necesidad de ningún script, al menos en la versión 8.

La verdad es que, antes de crear el script busqué un poco, pero no encontré esa opción. ¿dónde se encuentra? Saludos.
Nessito - 14/09/2006 18:37
En el tracaviu, seleccione el track object de un objeto y lo copias (como si fuera un controlador, pero lo que realmente copias es el stak de geometría), luego seleccione uno o más tracks object de otros nodos y pegas, y ya está.
Nessito - 15/09/2006 16:21
No sé qué problema ha habido con la base de datos, y mi mensaje anterior no aparecía como el último, sino el de Halfvector. Por eso escribo esto, a ver si así se actualiza.
HalfVector - 15/09/2006 16:44

En el tracaviu, seleccione el track object de un objeto y lo copias (como si fuera un controlador, pero lo que realmente copias es el stak de geometría), luego seleccione uno o más tracks object de otros nodos y pegas.

Y ya está.

Ah claro. No había caído en el Track View. Entonces me imagino que también se podría en max7. Gracias.
Nessito - 15/09/2006 21:23

Ah claro. No había caído en el Track View. Entonces me imagino que también se podría en max7. Gracias.

Pues no. Creo que lo metieron en el ocho, con la idea principalmente de poder sustituir la geometría de los bípedo.

Pero no me hagas mucho caso.
dc0110 - 06/10/2006 21:38
Ya lo eh bajado y probado, está muy bien y para mí es realmente útil, siempre quise que el max haga algo parecido, muchas gracias Halfvector.
HalfVector - 06/10/2006 22:00

Ya lo eh bajado y probado, está muy bien y para mí es realmente útil, siempre quise que el max haga algo parecido, muchas gracias Halfvector.

De nada. Me alegro que sea de utilidad. Saludos.