![]() |
Cambio de textura mediante script - Versión para impresión +- FORO Railsim.es (https://www.railsim.es/foro) +-- Foro: Train Simulator (https://www.railsim.es/foro/forumdisplay.php?fid=6) +--- Foro: Lua Script (https://www.railsim.es/foro/forumdisplay.php?fid=44) +--- Tema: Cambio de textura mediante script (/showthread.php?tid=2226) Páginas:
1
2
|
Cambio de textura mediante script - AEC - 06-14-2014 Hola a todos. Me interesaria saber si es posible mediante script configurar si un objeto lee una textura u otra, es decir, por ejemplo, tenemos dos texturas a mostrar y apretando un boton en cabina, cambie la textura de un objeto por medio de renombrar las texturas con LUA y que el simulador lo lea en el acto sin necesidad de reiniciar. Si existe algun metodo efectivo, seria de gran utilidad, ya que no puedo hacer el clonar el objeto y con animacion lo oculto y muestro otro identico con la otra textura. Gracias de antemano. Un saludo, Alberto Re: Cambio de textura mediante script - el_pinchos - 06-14-2014 Por supuesto que se puede, aunque es necesario que en archivo de forma IGS (GeoPcDx una vez exportado), se hayan declarado todas las texturas del vehículo con las diferentes libreas. Después habría que hacer un control en la locomotora que apuntara a la librea que quisiéramos cambiar. Con ese control ya sólo deberíamos activar las libreas como nodos del modelo. Una teórica función de script LUA para cambiar las libreas podría ser: Código: function ControlLibrea( Librea ) Cada librea debería ser un nodo del archivo de forma nombrado como "engine_x', que se activaría con la librea que hubiéramos seleccionado con el control 'Librea'. Re: Cambio de textura mediante script - AEC - 06-14-2014 el_pinchos Por supuesto que se puede, aunque es necesario que en archivo de forma IGS (GeoPcDx una vez exportado), se hayan declarado todas las texturas del vehículo con las diferentes libreas. Después habría que hacer un control en la locomotora que apuntara a la librea que quisiéramos cambiar. Con ese control ya sólo deberíamos activar las libreas como nodos del modelo.Muchiiisimas gracias el_pinchos :maestro: :maestro: En este caso, ¿el nodo sería el nombre del material o del map? por ejemplo engine_1 seria "Material #25" (de los nombres de materiales por defecto) :?: Gracias de nuevo. Un saludo, Alberto Re: Cambio de textura mediante script - madroño - 06-14-2014 Sería la malla con esa textura. El nombre que hayas dado a esa pieza. El sistema que te ha propuesto se basa en hacer varias piezas con distintas texturas, y mostrar/ocultarlas mediante script. Re: Cambio de textura mediante script - AEC - 06-15-2014 madroño Sería la malla con esa textura. El nombre que hayas dado a esa pieza. El sistema que te ha propuesto se basa en hacer varias piezas con distintas texturas, y mostrar/ocultarlas mediante script.Pues entonces no me sirve, porque es un velocimetro digital al que le tienen que cambiar de color los numeros (o sea cambiar la textura) y no vale el clonar porque entonces deja de funcionar el script. :oops: Re: Cambio de textura mediante script - AEC - 06-17-2014 Hola de nuevo. Aprovecho el hilo para preguntaros sobre el "*:ActivateNode". A mi esta funcion no me funciona asi que no se si lo hago bien. Agradeceria un explicacion. Yo pensaba que simplemente dentro de tu archivo de Max tenias un objeto llamado por ejemplo "1_0500_nombre" (en el ejemplo que pongo es para hacer aparecer en la pantalla de ordenador de abordo de una cabina un icono) y al usar: Call("*:ActivateNode", "nombre", 0) el objeto no desaparece y se sigue viendo en el simulador tal y como se ve en Max, asi que no puedo controlar la visualizacion de 1_0500_nombre mediante el script. Gracias de antemano. Re: Cambio de textura mediante script - HANNIBAL SMITH - 06-18-2014 ActivateNode lo que hace es mostra u ocultar el objeto en cuestión, habría que ver si ocultando el objeto los fotogramas aumentan, no sea que lo oculte pero siga estando ahí y se renderice. Re: Cambio de textura mediante script - madroño - 06-18-2014 El código está bien puesto Call( "*:ActivateNode","nombre", 0) -- desactiva Call( "*:ActivateNode","nombre", 1) -- activa No se si tendrá algo que ver, pero si es para una cabina, las piezas se suelen llamar 1_0000_nombre. Ah y supongo que lo estás haciendo dentro de la función Update, ¿no? ¿Has probado a hacerlo de esta manera? http://forums.uktrainsim.com/viewtopic.php?f=368&t=132520 Re: Cambio de textura mediante script - AEC - 06-18-2014 madroño El código está bien puestoEl velocimetro funciona genial, ya que va con el SetControlValue, y los otros objetos que deseo mostrar, me gustaria ahorarme lo de escribirlos en el .xml, ya que con el SetControlValue funciona genial, aparecen y desaparecen, pero con el ActiveNode no lo consigo. Probare con lo de 1_0000_nombre, pero no se si eso hara algo. ¿Es posible que en vez de el asterisco tenga q referenciar la cabina? Es decir, Call("Cabina:ActivateNode", "nombre", 0) :?: Muchas gracias Re: Cambio de textura mediante script - madroño - 06-18-2014 No creo. A mi siempre me funciona como he puesto. ¿Has revisado el código anterior? A veces cuando hay fallos de sintaxis en líneas anteriores directamente se salta ese código, pese a no dar error. No se si has visto la otra solución que plantean, que es crear un cilindro de 11 caras y controlar su rotación, aunque personalmente me gusta más la forma de hacerlo de Reppo, pese a ser más pesada. Creo que se basa en el principio de las texturas animadas si no recuerdo mal. Que fácil sería con un blueprint tipo digital speedometer ![]() |