Animar un objeto con un archivo externo de cordenadas y angulos
Hola. Me encuentro con un problema a la hora de importar coordenadas x y, z y los tres ángulos. Tengo un script, pero tiene un error en el x.value y no sé cómo seguir.
This script Will reset your scene, so save before running it.
Resetmaxfile #noprompt.
S = sphere ().
Spaz =, pues, controller.
Function definition.
Fn addkeysfromfile Control file =
(.
Local f = openfile file.
T=0.
While (not eof f) do.
Local x = addnewkey Control t.
Local a = [readvalue f, readvalue f, readvalue f].
X.value = a.
Te += 10).
Close f).
Evaluate function.
Addkeysfromfile spaz infiniti, dat.
Con el archivo infiniti.
-15.7436,9.4353,-11.2804.
96.011, -150.876, 138.0289.
-5.2103, -230.7725, 122.3503.
29.9328, -212.5843, 9.2386.
92.5178, -120.9492, -57.7814.
-0.5455, 1.8896, 11.4197.
-91.7734, 124.0946, 122.0455.
-28.3564, 213.9283, 164.8463.
4.4424, 231.2096, 84.569.
-102.4511, 155.1786, -55.0066.
-15.7436, 9.4353, -11.2804.
Me gustaría saber que error tengo y como añadir también las rotaciones. Muchas gracias.
Animar un objeto con un archivo externo de cordenadas y ángulos
El problema es que estas tratando de darle un valor a una key entregando un Vector de 3 valores. Si animas algo manualmente veras que cada componente de la posición tiene su propio controlador y por ende su propia colección de keys.
Una forma de resolverlo sería usar la opción animate, prueba con esto.
Código:
Fn addkeysfromfile Control file =
(.
F = openfile file.
T=0.
While not eof f do.
Animate on.
At time te Control, value = [readvalue f, readvalue f, readvalue f]).
Te += 10).
Close f).
S = sphere ().
Addkeysfromfile, pues, controller infinity, dat.
)
Animar un objeto con un archivo externo de cordenadas y angulos
Muchas gracias por tu rápida contestación. Pero he probado lo que me has dicho y no me funciona, y no sé qué pasa. Si puedes ver qué pasa, muchas gracias.
Hasta lueo.
Animar un objeto con un archivo externo de cordenadas y ángulos
Guardaste el script en la misma carpeta que el archivo infinity, datí quizás es eso.
Animar un objeto con un archivo externo de cordenadas y ángulos
Ahí mismo en cgtalk dan la respuesta a este script y varias opciones más. El error está en la variable x que retorna ok en lugar del key como lo indica zeboxx2. http://forums.cgsociety.org/showthre...ddkeysfromfile.
La respuesta de bobo es muy buena:
Cita:
Código:
- This script Will reset your scene, so save before running it.
Resetmaxfile #noprompt.
S = sphere ().
Function definition.
Fn animateobject spaz file=
(tlocal f = openfile file tt=0 while (not eof f) do t(t with animate on at time te spaz, pues = [readvalue f, readvalue f, readvalue f] te += 10 t).
Close f.
).
Evaluate function.
Animateobject s test, dat
Animar un objeto con un archivo externo de cordenadas y ángulos
Que coincidencia, sugerí exactamente lo mismo que bobo, vaya honor.
Animar un objeto con un archivo externo de cordenadas y ángulos
Muchas gracias. Ya para marear un poco la perdiz estoy intentando aparte de mover la esfera hacer que rote en sus tres ángulos de giro.
¿Cómo podría hacerlo?
Muchas gracias de adelantado.
Animar un objeto con un archivo externo de cordenadas y ángulos
Depende cómo tengas la información en tu archivo.dat, suponiendo que tengas la información intercalada (una línea para posición y la siguiente rotación) podrías hacerlo así:
Código:
Fn addkeysfromfile obj file =
(.
F = openfile file.
T=0.
While (not eof f) do.
Animate on.
At time t.
Obj, position = [readvalue f, readvalue f, readvalue f].
Obj, rotation = eulerangles (readvalue f) (readvalue f) (readvalue f)).
).
Te += 10).
Close f).
S = sphere ().
Addkeysfromfile s infinity, dat).
Ojo, el número de líneas con información de posición debe ser igual al de rotación.