Gracias Gracias:  0
Resultados 1 al 2 de 2

Tema: desplazar sobre superficie

  1. #1
    Bushido Avatar de jmpinero
    Fecha de ingreso
    Dec 2008
    Ubicación
    Sevilla
    Mensajes
    293

    desplazar sobre superficie

    Buenas a todos, tengo la siguiente duda.
    Intento hacer que un dummy se desplace sobre la superficie de una esfera, parecido a lo que hace el surface constrains pero que en vez de controlar su posición UV con los spinner del controlador, se mueva con la herramienta de transformación mover.
    Espero haberme explicado bien ;P
    Alguien me puede arrojar un halo de luz en el tema que me indique el camino a investar para poder resorverlo?

    gracias.
    /* Jmpinero3D Blog´s */ | "Hasta el mas sabio se puede sentar encima de un hormiguero, pero solo el necio se queda sentado"

  2. #2
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: desplazar sobre superficie

    Hay fórmulas y procesos para convertir un espacio UV en un espacio XYZ (encontré esto buscando por ahí):




    Pero como después de probarlo así a lo bruto, los resultados no son lo que buscamos, se me ocurren dos maneras distintas (que funcionan):

    1.- RAY CASTING

    a) No sé si conoces el concepto de 'raycasting'. Basicamente, tienes la esfera y un punto. Pues bien, MAXScript tiene funciones para lanzar un 'rayo' desde la posición del punto a la de la esfera. La función 'ray' necesita la posición inicial del objeto, y una dirección (que obtenemos restando las posiciones del punto y de la esfera):

    Código:
    oRay = ray P1.position (Sph.position - P1.position)
    b) ¿Qué hacemos con esto? Usar la función 'intersectRay': dándole como argumentos de entrada la esfera y el rayo, te devuelve la posición en que ese rayo intersecta la esfera:

    Código:
    oIntersect = intersectRay Sph oRay
    c) Y una de las propiedades de 'intersectRay' es '.pos', que es la posición que buscas:

    Código:
    P2.position = oIntersect.pos
    Esto puedes ponerlo dentro de un 'script controller' en P2, que es el punto que quieres que esté siempre sobre la superfície de la esfera. No olvides poner P1 y Sph (esfera) como variables (nodo, por ejemplo), porque de lo contrario la posición no se actualizara en tiempo real.

    2.- LOOK AT

    Esto es mucho más sencillo: si tienes una esfera de radio X, crea un hueso de esa longitud, y hazle un 'look at' al punto que vas a mover por ahí. Coloca el punto que quieres que esté sobre la esfera a esa distancia X del centro, y vincúlalo al hueso, o usa un 'position constraint' al 'nub' que se creó (así no tienes posible problemas por la torsión del hueso derivados del 'upnode').
    character TD @ Walt Disney Animation Studios

    mi curso de rigging facial :: https://www.domestika.org/en/courses...je-3d/ikerclon
    blog :: www.somosposmodernos.com
    twitter :: www.twitter.com/soyposmoderno
    linkedIn :: www.linkedin.com/in/ikerj

Temas similares

  1. Cinema 4D Proyectar imagenes sobre una superficie
    Por Borja Nieto en el foro Render, Iluminación y Cámaras
    Respuestas: 1
    Último mensaje: 24-10-2012, 13:32
  2. proyectar un plano sobre superficie
    Por rubbin en el foro Modelado
    Respuestas: 3
    Último mensaje: 25-06-2011, 15:38
  3. Rodar Bojeto sobre superficie
    Por Nc666 en el foro Animación y Rigging
    Respuestas: 0
    Último mensaje: 28-02-2011, 16:50
  4. Diamantes sobre superficie l
    Por Diegrich en el foro Modelado
    Respuestas: 1
    Último mensaje: 06-07-2009, 19:24
  5. z sobre superficie
    Por Zuria en el foro Programación y Scripts
    Respuestas: 12
    Último mensaje: 24-10-2008, 11:55

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.
  •