Gracias Gracias:  0
Página 2 de 5 PrimerPrimer 12345 ÚltimoÚltimo
Resultados 16 al 30 de 68

Tema: script en max

  1. #16
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    Re: script en max

    Bueno, el problema que tengo con Max es que mi conocimiento general del programa es bastante limitado (sobretodo el área de modelado). Lo que conozco mejor es el Pflow.
    Pero bueno, yo me apaño muy rápido, así que miraré a ver qué hago y cómo.
    Muchas gracias a todos de nuevo!
    E moet roeien met de riemen die je hebt.

  2. #17
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    Re: script en max

    Jai!
    ¿se puede acceder a la posición de las partículas de PFlow a través del scripting general?
    Es que por más que miro la ayuda no lo veo claro.

    Gracias!
    E moet roeien met de riemen die je hebt.

  3. #18
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: script en max

    Cita Iniciado por bealobo
    Jai!
    ¿se puede acceder a la posición de las partículas de PFlow a través del scripting general?
    Es que por más que miro la ayuda no lo veo claro.
    Hi!.

    Creo que sí puedes. Mírate la interface particleObjectExt.

    Aquí tienes un ejemplo que accede a la posición, rotación, escalado y tamaño de cada partícula.

    Código:
    pf = $"PF Source 01"
    
    for i = 1 to pf.numParticles() do (
    
    	pf.particleIndex = i
    
    	format "particle #%\n" i
    	format "particle position = %\n" pf.particlePosition
    	format "particle rotation = %\n" pf.particleTM.rotationPart
    	format "particle scale = %\n" pf.particleScaleXYZ
    	format "particle size = %\n\n" pf.particleScale
    )
    Si no me equivoco es similar a la forma que se utiliza en los scripts internos de particle flow. A ver si es lo que buscas.

    Saludos.

  4. #19
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    Re: script en max

    Gracias! qué rapidez.
    voy a hacer unas pruebas a ver.
    E moet roeien met de riemen die je hebt.

  5. #20
    Fractal de Excremento
    Fecha de ingreso
    Mar 2003
    Ubicación
    Tokyo
    Mensajes
    3,120

    Re: script en max

    Animo, Bea!
    Minor Bun engine made Benny Lava!

  6. #21
    Megalodon... Avatar de Ballo
    Fecha de ingreso
    Apr 2002
    Mensajes
    10,888

    Re: script en max

    Y al final que estas haciendo?

    Se me ha ocurrido hacer, por ejemplo a partir de geometría crear efectos. Con una esfera el kame-kame. Te creas una UI que controle de forma automática parámetros del sistema...y tal.yo que se.xD

    Por cierto me imagino que ya lo conoceras pero Bobo tienes algunos tutoriales de pflow y maxscript.

    http://www.scriptspot.com/bobo/

    Suerte!
    Aqui quiero poner una imagen bonita de mi pagina, pero no puedo...ojete.

  7. #22
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    Re: script en max

    Gracias por la sugerencia!
    creo que haré un script parecido al de slime pero más básico y que se complemente.
    Habra que crear una pistola y elegir el tipo (dardos, balas...), animarla (intentaré que sea con un target). Decir qué objetos son orgánicos y los impactos causaran un sangrado.

    Qué se yo, todo muy cutre y muy lento seguramente, pero es que estoy aprendiendo poco a poco.
    E moet roeien met de riemen die je hebt.

  8. #23
    Chico Houdini Avatar de MiguelPerez
    Fecha de ingreso
    Dec 2005
    Ubicación
    Valencia, España
    Mensajes
    940

    Re: script en max

    Que bien suena eso

    Ánimo!

  9. #24
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    3dsmax Re: script en max

    bueno, la cosa va yendo...
    de momento tengo semiacabada la UI. Sólo he puesto las opciones más básicas y si me da tiempo pondré alguna cosa más.
    Os dejo una captura.
    En el trozo vacío quiero poner las instrucciones para usarlo, aunque aún no se cómo se hace.

    Y bueno, el diseño es provisional, simplemente necesito algo para empezar a meter funciones y hacer que funcione.

    Me he dado cuenta de que todos los objetos van a ser internamente deflectores por si la sangre cae en alguno de ellos. Y estoy pensando que eso va a ser lento lento lento ¿no?
    Miniaturas adjuntadas Miniaturas adjuntadas script en max-ui_02.jpg  
    E moet roeien met de riemen die je hebt.

  10. #25
    Senior Member Avatar de Birkov
    Fecha de ingreso
    Dec 2004
    Ubicación
    Coruña - Barcelona
    Mensajes
    874

    Re: script en max

    Tengo ganas de ver esos avances, lo que preguntas si utilizas todos los objetos como deflectores sí que va a ser lento, me acuerdo cuando vi la demoreel de slime que me planteé esa misma pregunta, para personajes animados, creo que sería más rápido linkarles deflectores esféricos a las distintas partes del cuerpo que hacer que todo el cuerpo sea un deflector, ya que calcular colisiones de partículas contra una malla que se deforma debe de costar lo suyo, pero vamos slime te dira que es el experto


    Suerte con el script
    _________________________________________________
    Reloj de pulsera /\ Marine Starcraft 2 WIP /\ Motorola L6 /\ Canon Ixus II /\ La vigilante /\ Dragon WIP ________________________________________________

  11. #26
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    Re: script en max

    Es una movida sí... yo voy a seguir pensando a ver mientras voy haciendo más código.
    E moet roeien met de riemen die je hebt.

  12. #27
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: script en max

    Ante todo decir que sobre estos temas ando escaso. So keep that in mind!.

    ¿Todos los tests de colisión los vas a llevar a cabo a través de Particle Flow o por ejemplo la colisión proyectil/objeto la realizaras utilizando alguna función tipo intersectRay/intersectRayEx/rayMeshGridIntersectí.

    Lo digo porque en ese último caso, las intersecciones proyectil/objeto se precalcularían, con lo cual te ahorrarías que PF averiguara la intersección en cada frame.

    Es decir, al pulsar el botón "Go!", calcularías el punto de colisión de cada proyectil (dependiendo de la cadencia de disparo) y entonces crearías un PFSource en la posición de colisión, con una dirección igual a la normal de la superficie en el punto de colisión (esos datos te lo devuelven las funciones intersectRay/intersectRayEx/rayMeshGridIntersect). Ese PFSource sería el emisor de sangre.

    De hecho, con ese método creo que podrías hacer algo similar a lo que hace slime en el Impact System (¡aunque esto que lo confirme él que es el que lo programó!), es decir, podrías utilizar esa misma posición y normal de colisión para meter un space warp de tipo displace y así simular las hendiduras provocadas por los impactos del proyectil. Incluso tal y como hace él, meter teselación en las caras adyacentes al punto de colisión.

    Por otro lado, las colisiones sangre/objeto me imagino que sí se controlarían utilizando un test de colisión y deflectores en PF. En este caso, si hay muchos polígonos, me imagino que la simulación sí será lenta (ignoro cómo funciona PF y las optimizaciones internas que llevara a cabo).

    Pero hay que tener en cuenta que en una producción cinematográfica (y hablo desde la ignorancia en este caso) se maneja un entorno controlado por lo que se sabe qué objetos tienen que formar parte de la simulación y cuales no (al contrario que en un videojuego donde las posibilidades de interacción son casi infinitas). Eso quiere decir que no todos los objetos tienen por qué ser deflectores. Sólo aquellos que estén en el radio de acción de cada salpicadura de sangre. O sea, que en ese caso me imagino que es cosa del operador el marcar los objetos que formarían parte de la simulación. O incluso se podría automatizar utilizando algún tipo de heurística. Por ejemplo, sólo añadir como deflectores aquellos objetos que estén dentro de un cierto radio de acción (que dependerá de cosas como el tiempo de vida del sistema de partículas, la velocidad de las partículas, las fuerzas que le afecten, etc).

    Pero bueno, no tengo demasiados conocimientos en estos temas así que...¡invocamos a slime!.

    Saludos.
    Última edición por HalfVector; 27-06-2006 a las 15:41

  13. #28
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    Re: script en max

    Cuanta cosa! qué bien!
    la verdad es que en un principio lo quise hacer así, es decir colocando un "emisor" en cada impacto y estuve buscando y no encontré la manera (la ayuda de maxscript es un infierno).
    Lo quería hacer así porque el chorro de sangre no dependía del impacto de 1 bala y podía hacer más virguerías de manera más simple como simular el tamaño del agujero de la bala con el tamaño del emisor (el nodo collision y el colisión spawn se me quedaban un poco cortos).

    Ahora que se el nombre de las funciones lo voy a volver a investigar. Bieeen!

    y respecto a los deflectores, tal vez sea mejor que ponga un control para seleccionar los objetos sobre los que cae la sangre por aquello de que optimice quien quiera. A ver lo que puedo hacer!

    Muchas gracias a todos!
    E moet roeien met de riemen die je hebt.

  14. #29
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: script en max

    Cita Iniciado por bealobo
    la verdad es que en un principio lo quise hacer así, es decir colocando un "emisor" en cada impacto y estuve buscando y no encontré la manera (la ayuda de maxscript es un infierno).
    Aunque en la ayuda encontraras más información y más completa, ahí van las posibilidades que tienes utilizando las funciones que he mencionado.

    intersectRay

    Te devuelve el punto de colisión y la normal en dicho punto. Funciona con cualquier tipo de geometría.

    intersectRayEx

    Te devuelve el punto de colisión, la normal en dicho punto, el índice del triángulo en el que se produjo la colisión y las coordenadas baricéntricas. Sólo funciona con editable mesh.

    RayMeshGridIntersect

    Seguramente es la mejor opción de todas pero por alguna razón no tiene el comportamiento que yo esperaba de ella. Por ejemplo, yo pensaba que si añadías una serie de objetos con los que llevar a cabo el test de colisión, te devolvería el punto de colisión más cercano a la posición desde la que se lanzó el rayo pero al parecer sólo devuelve la colisión con el primer objeto que se añadió a la lista de nodos. Realmente es un comportamiento muy extraño.

    Así que, teniendo en cuenta el problema aparente de RayMeshGridIntersect, la mejor opción sería intersectRay si no necesitas saber el triángulo en el que se produjo la colisión o intersectRayEx si necesitas saberlo (por ejemplo para la teselación).

    Aquí te pongo un pequeño script que hice hace un tiempo que hace uso de intersectRayEx:

    Código:
    fn closestRayIntersection r = (
    
    	-- Inicializamos variables
    	local closestDist = 999999999
    	local closestNode = undefined
    	local closestInfo = undefined
    	
    	-- Recorremos todos los objetos geométricos de la escena
    	for n in $geometry do (
    	
    		-- Puesto que intersectRayEx sólo funciona con editable meshes,
    		-- añadimos un modificador Edit_Mesh
    		addModifier n (Edit_Mesh())
    	
    		-- Calculamos la intersección
    		local i = intersectRayEx n r
    		
    		-- Eliminamos el modificador
    		deleteModifier n 1
    		
    		-- Si hubo colisión...
    		if i != undefined do (
    			-- Calculamos la distancia desde el origen del rayo
    			-- al punto donde se produjo la colisión
    			local dist = distance r.pos i[1].pos
    			
    			-- Si dicha distancia es menor que la anterior
    			-- distancia más cercana almacenada...
    			if dist < closestDist do (
    				-- Almacenamos la nueva distancia
    				closestDist = dist
    				-- El objeto donde se produjo la colisión
    				closestNode = n
    				-- La información de la colisión
    				closestInfo = i
    			)
    		)
    	)
    	
    	-- Si  es distinto de undefined quiere decir que hubo
    	-- colisión, por lo que devolvemos la información de colisión
    	if closestNode != undefined do
    		-- Devolvemos:
    		-- La distancia al punto de intersección
    		-- El nodo donde se produjo la intersección
    		-- La información de intersección de la función intersectRayEx
    		return #(closestDist, closestNode, closestInfo)
    
    	-- ¡Después de todo no hubo colisión!
    	return undefined
    )
    
    -- Probamos la función...
    
    -- Limpiamos el listener
    clearListener()
    -- Calculamos la posible intersección
    i = closestRayIntersection ($Tape01 as Ray)
    -- Si hubo intersección...
    if i != undefined do (
    	-- Eliminamos el anterior objeto Point que pudiera existir
    	try(delete $Point01) catch()
    	-- Creamos un objeto point en el punto de colisión
    	point pos:i[3][1].pos wireColor:red
    )
    Para que funcione, tienes que crear una serie de objetos y un Tape que es el que hace de apuntador (el rayo). Si se detecta colisión, se crea un nodo de tipo Point en el punto de intersección.

    Saludos.

  15. #30
    Chico Houdini Avatar de MiguelPerez
    Fecha de ingreso
    Dec 2005
    Ubicación
    Valencia, España
    Mensajes
    940

    Re: script en max

    También podrías hacer que las partículas dejaran mancha en los objetos mediante una textura. Quedaría mucho más realista.

Página 2 de 5 PrimerPrimer 12345 ÚltimoÚltimo

Temas similares

  1. Respuestas: 2
    Último mensaje: 07-05-2015, 23:08
  2. Blender Uso del script BMG
    Por 3dpoder en el foro Blender Art Magazine nº 1
    Respuestas: 7
    Último mensaje: 30-07-2013, 12:38
  3. script
    Por minato en el foro Programación y Scripts
    Respuestas: 9
    Último mensaje: 20-07-2010, 23:17
  4. script
    Por altair_117 en el foro Modelado
    Respuestas: 2
    Último mensaje: 18-04-2009, 03:53
  5. max script
    Por Thule en el foro Modelado
    Respuestas: 5
    Último mensaje: 13-02-2005, 18:00

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •