Resultados 1 al 10 de 10

Script alineación con viewport

  1. #1
    Fecha de ingreso
    Dec 2004
    Mensajes
    2,646

    Script alineación con viewport

    Hola a tod@s, llevo semanas rompiéndome la cabeza para encontrar la forma de hacer que un plano siempre esté orientado al viewport activo.

    Conozco la herramienta look at to camera para hacer que un plano siempre mire a determinada cámara, pero estoy buscando la forma de que lo haga un plano al viewport actual sea cual sea la cámara.

    También lo he intentado con Pcloud, Superspray, pero no hay manera de que las partículas no roten en X e Y. Sólo quiero que roten sobre su eje Z, es decir sobre su eje vertical. Como veréis, se trata de conseguir un RPC o billboard efectivo.

    He estado investigando MaxScript y puede que aquí esté la solución a mi problema pero lo cierto es que no lo controlo que quisiera.

    En principio cree un mini script que selecciona todos los objetos que empiecen por gen2d y los alinee automáticamente con el viewport activo. El problema es que cada vez que lo hace hay que darle ok a la ventana de alineado, y aparte me gustaría qué fuese continuo, es decir, que los planos se updaten continuamente.

    Otra opción que he visto es viewport, getTM, pero no tengo ni idea de cómo implementarlo.

    También he sopesado el crear un Particle Flow con cada uno de los personajes 2d y escribir un script en el script operator para hacer que ese plano esté alineado continuamente.

    Alguna idea de los expertos en MaxScriptú
    Muchas gracias.

  2. #2
    Fecha de ingreso
    May 2005
    Mensajes
    1,238

    Script alineación con viewport

    Yo lo haría con Particle Flow o TP, pero te hará falta una cámara o un null. Por script tiene que ser posible, pero ni idea.

  3. #3
    Fecha de ingreso
    Dec 2004
    Mensajes
    2,646

    Script alineación con viewport

    Gracias pyros.

    La alternativa es usar planos con un look at a un dummie que luego pueda mover a la posición de la cámara, pero estaba buscando algo más automático, que no requiera de dummie ni haya qué moverlo a la posición de la cámara.

  4. #4
    Fecha de ingreso
    Oct 2010
    Mensajes
    585

    Thumbs up Script alineación con viewport

    Hola, acortes, podrías hacer en esta manera.

    Ejemplo : si quieres que su cámara viaje, y que se vea su paisaje en cualquier ángulo ok.
    1.- utiliza una línea (line)
    2.- modificar path_constraint / Cámara.

    Y Listo con estos elementos y a viajar colega.-.

  5. #5
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,668

    Script alineación con viewport

    Buenas, Alberto.

    Luego lo miro más tarde en casa, porque hace la tira qué no abro MAX, pero así a bote pronto a lo mejor se puede hacer lo siguiente:
    - crear un punto, y en su posición, usar un Script Controller con esta linea: inverse(getViewTM()), row4. Eso te va a dar, presumiblemente, la posición de tu cámara perspectivaen coordenadas del mundo.
    - asumiendo que uno de los ejes de tu césped (o briznas) estará siempre apuntando hacia arriba, puedes usar un Lok At constraint, y hacer que el objeto mire a ese punto. Como upnode, usa el eje Z (que imagino será el que apunta hacia el cielo en tu escena).

    Eso debería funcionar.

  6. #6
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,668

    Script alineación con viewport

    Lo estoy probando y el problema qué hay es que el script controller no se evalúa constantemente. Vas tener que meterme en movidas de callbacks si quieres hacer eso. No sé qué tienes entre manos, pero a lo mejor es más sencillo usar una fre cameray orbitar con los controles del visor que lo que intentas hacer.

    Pero si aun así te decides a probar, he encontrado este código en Cgtalk te puede ayudar:
    with redraw of
    (
    callbacks, removeScripts id:#camFace
    deleete objects
    Fn cameraFaced node: = if isvalidnode node do
    (
    ntm = node, transform
    vtm = getViewTM()
    node, transform = translate (rotate (scalematrix ntm, scale) (inverse vtm, rotation)) ntm, pos
    )
    myText = text name:myText isselected:on
    cameraFaced node:myText callbacks, addScript #viewportChange cameraFaced node:myText id:#camFace
    ).
    Si decides tirar por aquí, te recomiendo leer sobre los callbacks. Pueden cargar bastante tu escena de 3DS Max si se te van de las manos.

  7. #7
    Fecha de ingreso
    Dec 2004
    Mensajes
    2,646

    Script alineación con viewport

    Chapolín, lo que trato de hacer es que planos con imágenes 2d de gente giren automáticamente para qué sea cual sea el viewport o la cámara actual se alineen automáticamente. Si conoces RPC de archivisión sabrás lo que quiero. De todas formas, gracias por contestar.

    IkerClon, vaya cuanto tiempo, cómo te va? Sigues en USA?
    Valiosa información me das. Encontraré un hueco para meterme con el script y con esta guía qué me das ya tengo un camino al menos por dónde investigar.

    De momento, para él presente proyecto, estoy usando las viejuas técnicas de rotar y ubicar los planos 2d con mapas de gente manualmente para cada punto de vista. Los Archivsion RPC ya los probé, pero tienen el inconveniente de que la única forma de poder usarlos en mediante un pago anual de casi 300 euros y eso no me mola, preferiría pillar los personajes individualmente y pagar de una vez por ellos. Además, el plugin no se puede usar con Rebusfarm. Bueno, que me enrollo.

  8. #8
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,668

    Script alineación con viewport

    Buenas, Alberto.

    Sí, sigo en Los Ángeles, cada vez más despegado de 3dsMax. Pero de cuando en cuando le doy un achuchón, para qué no se olvide de mí.

    Preparar un pequeño script que oriente todos los planos a la cámara/perspectiva qué necesites es relativamente sencillo si no necesitas que estén constantemente en sincronía. Los callbacks sirven precisamente para qué haya una actualización constante; en el caso que cité, cada vez que rotas el visor. Si eso no es necesario, y te basta con un ok, esta perspectiva me gusta; ahora aprieto el botón y todos los planos que necesito se quedan orientados a esta vistaes muy fácil.

    Aquí te dejo un trozo de código que crea, al ejecutarlo, un botón. Al pinchar el botón, lo seleccionado miraráa cámara, asumiendo que el eje que va a mirar hacia el punto de vista es el Z. Lo pruebas y me cuentas.
    Código:
    try (destroyDialog LokAtCamera) catch ().
    
    Rollout LokAtCamera 
    (
     Fn lokAtView nodeList =
     (
     viewTM = getViewTM() for each in nodeList do
     (
     eachTM = each, transform
     each, transform = translate (rotate (scalematrix eachTM.scale) (inverse viewTM.rotation)) eachTM.pos
    )
    ).
    button doIt_btn lok at Active View Camera on doIt_btn pressed do
     (
     with undo on
     (
     lokAtView selection
    )
    )
    ).
    
    CreateDialog LokAtCamera.
    .

    Un abrazo.

  9. #9
    Fecha de ingreso
    Dec 2004
    Mensajes
    2,646

    Script alineación con viewport

    Eres un crack. Muchas gracias. En cuanto tenga un hueco de trabajo lo pruebo.

    Saludos.

  10. #10
    Fecha de ingreso
    Oct 2010
    Mensajes
    585

    Thumbs up Script alineación con viewport

    Okey De nada acortes, si eh visto sobre los rpc, eh tenido la oportunidad de utilizarlo, está genial, creo que era una siluetas de la forma humana, y luego aparece en el render una persona, y me sorprendía cuando lo giraba se veía, todas las imágenes en diferentes ángulos, creo que era como el efecto Matrix está genial, ok tienes razón,.

    Guao están increíbles sus vídeos .
    Última edición por Miguel-Arte-3D-1990; 26-09-2014 a las 03:47

Temas similares

  1. Alineación Planetaria
    Por Soliman en el foro Noticias 3D
    Respuestas: 2
    : 28-02-2025, 17:55
  2. Respuestas: 2
    : 07-05-2015, 22:08
  3. Cómo cambiar un script a un macro script
    Por Miguel-Arte-3D-1990 en el foro Plugins y Scripts
    Respuestas: 11
    : 11-03-2012, 22:07
  4. Sugerencias con alineación de objetos
    Por kaahen en el foro Modelado
    Respuestas: 2
    : 31-03-2008, 12:35
  5. Viewport
    Por Kahoos en el foro Modelado
    Respuestas: 2
    : 03-06-2007, 18:57

Etiquetas para este tema