Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Morph

Iniciado por DiegoC, 16 de Mayo de 2006, 05:07:59 PM

« anterior - próximo »

DiegoC

 Hola .

¿Alguien me podría informar si existe algun maxscript o documentación de como obtener los datos de los objetivos de un morph , es decir tengo una cara con 20 objetivos (mover ceja,arriba, izquierda, boca...) y la animación tiene 500 frames ¿hay alguna forma de sacar esos datos en un fichero .txt o .x?


Mil gracias

BeRSeRKeR

 En la documentación de MAXScript tienes todas las funciones necesarias para obtener la información que necesitas. Por ejemplo, este script te muestra algunos datos sobre los targets del modificador morph (que en este caso está asignado al objeto seleccionado, de ahí lo del $):

for i = 1 to 100 do (
       local active = WM3_MC_IsActive $.modifiers["morpher"] i
       local valid = WM3_MC_IsValid $.modifiers["morpher"] i
       local hasTarget = WM3_MC_HasTarget $.modifiers["morpher"] i
       local useVertSel = WM3_MC_GetUseVertexSel $.modifiers["morpher"] i
       local name = WM3_MC_GetName $.modifiers["morpher"] i
       local value = WM3_MC_GetValue $.modifiers["morpher"] i
       format "active: %\tvalid: %\thasTarget: %\tuseVertSel: %\tname: \"%\"\tvalue: %\n" active valid hasTarget useVertSel name value
)


WM3_MC_GetName te devuelve el nombre del nodo que se esta utilizando en el canal i y WM3_MC_GetValue te devuelve el porcentaje que se utiliza en un frame determinado para el canal i. Al parecer no se puede obtener el valor en un frame determinado con "at time" (como debería ser). En lugar de eso tendrás que mover la barra de tiempo al frame necesario:

-- Guardamos el frame actual para restaurarlo posteriormente
curTime = sliderTime
-- Especificamos el frame que nos interesa
sliderTime = 50f
-- Recogemos el porcentaje de morphing para el canal 1
WM3_MC_GetValue $.modifiers["morpher"] 1
-- Restauramos el frame anterior
sliderTime = curTime


Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

DiegoC

 Gracias ¿pero como visualizo esos datos o exporto ellos?

BeRSeRKeR

 He creado un pequeño script que muestra cómo exportar algunos de los datos del morpher a un archivo.

Descargar

Incluye un pequeño video demostrativo.

Aquí tienes la salida:

morphTargets 2 {
       target 0 "Sphere02"
       target 1 "Sphere03"
}

frames 26 {
       frame 0 0.0 0.0
       frame 1 1.8176 0.4672
       frame 2 6.8608 1.8176
       frame 3 14.5152 3.9744
       frame 4 24.1664 6.8608
       frame 5 35.2 10.4
       frame 6 47.0016 14.5152
       frame 7 58.9568 19.1296
       frame 8 70.4512 24.1664
       frame 9 80.8704 29.5488
       frame 10 89.6 35.2
       frame 11 96.0256 41.0432
       frame 12 99.5328 47.0016
       frame 13 100.0 52.9984
       frame 14 100.0 58.9568
       frame 15 100.0 64.8
       frame 16 100.0 70.4512
       frame 17 100.0 75.8336
       frame 18 100.0 80.8704
       frame 19 100.0 85.4848
       frame 20 100.0 89.6
       frame 21 100.0 93.1392
       frame 22 100.0 96.0256
       frame 23 100.0 98.1824
       frame 24 100.0 99.5328
       frame 25 100.0 100.0
}


Al principio se almacena la lista con los targets activos en el morpher y a continuación los frames de animación. El formato es el siguiente:

frame numFrame target{1}Value target{2}Value ... target{n}Value

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

DiegoC

 Muchas gracias   (ole)  






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.