Bueno, ya que estamos, no me cuesta nada poner los resultados para que todo el mundo pueda verlos también.
-- IMÁGENES ADJUNTAS --
![]()
Bueno, ya que estamos, no me cuesta nada poner los resultados para que todo el mundo pueda verlos también.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por 3dpoder; 27-06-2009 a las 03:38 Razón: Adjuntar los archivos al foro.
Hola, aquí pongo el código de prueba 01 que hice con un amigo, un proyecto a futuro. La prueba no muestra mucho (casi nada), el único objetivo de este simple código es mostrar el tipo de inteligencia que queremos darle a la cámara.
saludos y a ver si suben sus opiniones y consejos, a ver si lo optimizo.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por KiusteR; 29-06-2009 a las 23:39
AMD Dragon PLatform:
_CPU AMD Phenom II X4 810
_AsRock M3A780GXH/128M
_ATI HD4870 xFx
_4X 1GB Mem DDR3 1600Mhz
_Thermaltake Mid-Tower m9
A propósito, buen resultado pioj.
AMD Dragon PLatform:
_CPU AMD Phenom II X4 810
_AsRock M3A780GXH/128M
_ATI HD4870 xFx
_4X 1GB Mem DDR3 1600Mhz
_Thermaltake Mid-Tower m9
Gracias, era un pequeño arreglo. Hoy estoy usando las uvtextols, os la recomiendo encarecidamente, porque aceleran de una forma bestial el ritmo de trabajo, para exportar la escena en blitz3, d.
Hay bastantes más tools o plugins que podéis bajar para acelerar vuestro trabajo y tener los juegos acabados en menos tiempo. De vez en cuando voy dejando los enlaces en gamedevelopers, org, así que, ya sabéis, visitadla alguna vez.
Hola tengo un problema quiero hacer un juego de coches y quiero poner la cámara en el interior, pero no consigo realizarlo he cogido ejemplos de aquí, pero nada alguien me echa un cable?
¿Alguien podría ayudar a este buen hombre, con su cámara en 1era persona, por favor?
Esta iniciativa es flipante, por primera vez he conseguido gracias a este mensaje llevar a 3d en tiempo real mallas del 3ds Max con texturas entendiendo un poco las cosas y animándome al conseguir algún resultado.
Me gustaría que esto avanzase hasta el punto de ver cómo se pueden gestionar ciclos de animación distintos para que un personaje corra, gira, se agache al dar a las teclas. Es decir, hacer ciclos de animación en 3dsmax y exportar a Blitz3d y así que, en vez de un coche vaya un personaje caminando.
Podríais comentar algo de la exportación de huesos? Hay que usar md2 o el pipeline y cargar b3d?
Seria estupendo un minitutorial sobre deformación de mallas con Bones y mallas con modificadores como bend, twist.
Tengo este problema con el comando rotatemesh y Turn Entity, cuando hago un box en 3ds Max el pivote no está centrado por defecto, lo centro yo en 3dsmax y luego exporto a 3ds. Después cargo con loadmesh ese 3ds, pero el pivote no está centrado, esta donde estaba en un principio en 3dsmax antes de que yo lo centrara, por lo que los objetos no me rotan bien, con el formato b3d me pasa lo mismo.
Como se soluciona? No exporta pivotes el pipeline ni el formato (*.3ds)?
Dices que sólo es una caja? Asegúrate de centrar el pivot en el centro del objeto. Prueba a usar Reset XForm antes de exportar un ejemplo, por si acaso.
Al transformar el pivot o el objeto, con el botón derecho sobre la herramienta mover/rotar/escalar puedes ver las coordenadas locales y globales tanto del objeto como del pivot. Asegúrate de que son correctas.
Recomiendo siempre exportar a formato. B3d, que es el nativo de Blitz3d. Además, de cargar más rápido, soporta animación por huesos, y algunas cosas más.
Me parece genial lo de tratar el tema de la animación de personajes. Si alguien se anima y publica un ejemplo, haremos la prueba con él, ¿ok?
Oye gracias, así ya funciono, además exporte desde las coordenadas del 3ds Max 0,0,0. Tenía problemas de parpadeo a distintas resoluciones y pensé que igual era mi GeForce 5700, pero parece que era por las letras que imprima en pantalla con print que seguían imprimiéndose en el mismo sitio y de hay el parpadeo.
Última edición por danielblanco3d; 02-07-2009 a las 13:52
Un consejo en Blitz3d: Jamás uses print en una aplicación gráfica, usa en su lugar text, combinado con doble buffer (backbuffer). Es mucho más efectivo, y no parpadea.
Cuanto más texto haya mostrado en una pantalla 3d, más lento ira el juego.
Incluir fuentes true-type todavía lo empeora más.
Si quieres mostrar texto en tu juego, pero no quieres perder rendimiento, olvídate de escribir texto, y usa bitmap fonts (imágenes con caracteres).
Gracias. Aquí está el programa que parpadeaba, con text se solucionó. Es el primero que hago. http://dbr3d.blogspot.com/2009/07/re...n-Blitz3d.html.
-- IMÁGENES ADJUNTAS --
![]()
Quisiera introducirme en Blitz3d y lo primero que he notado con antiguos modelos míos con skin y Bones es que, si no desactivo el modificador TurboSmooth en lo alto de la pila de modificadores del 3ds Max el exportador b3d pipeline falla. Por ejemplo, si hago un cilindro, meto Bones y skin y meto TurboSmooth para que quede suave la malla al exportar falla. Supongo que debería meter el turbo smooth, colapsar a Edit Poly y meter el skin, pero eso dificulta mucho el skin. Mi duda es se puede bakear la animación para tener exactaemnte la malla del visor del 3ds Max en Blitz3d? Como se haría?
Además, tengo el problema de que el cilindro en Blitz3d permanece estático, aunque está animado. Este es el código que utilizo, pero no se mueve:
Cargar mallas con deformación con Bones y skin.
Graphics3d 640,480.
Setbuffer backbuffer().
Cámara=createcamera ().
Positionentity cámara,0,70,-200.
Light=createlight().
Cargar malla.
Cilindro=loadanimmesh (Bones, b3d).
Extractanimseque (cilindro,1,10).
Animate cilindro,2.1,1.
Updateworld.
While not keydown(1).
Renderworld.
Flip.
Wend.
End.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por danielblanco3d; 07-07-2009 a las 14:28
Hola pioj, revisando este mensaje que siempre tiene buenas cosas me encontré con los consejos que dabas sobre el print. El tema es que tengo un programa que parpadea. No estoy usando print en él. Sin embargo, tuve que usar mousespedy() para captar el movimiento del mouse en las y. Esta función es necesario ponerla dos veces para que devuelva un resultado, por lo que yo ponía:
Esto resulta en un titileo aberrante. Supongo que podré encontrar algún sustitutorial para captar el desplazamiento del mouse en un eje, pero el problema es que, al sacar esa parte del código el programa sigue parpadeando ocasionalmente. (estoy usando double buffering) ¿puede ser un tema de estar muy grande mi código? O es alguna función o comando del Blitz que me enlentece el programa.Código:mousespedy(). Delay 100. Mousespedy()
¿Cuales son las causas comunes del parpadeo?
¿Qué otros además del print lo producen? Gracias a todos los que me puedan contestar, ya que vengo con esta duda desde hace un tiempo. Saludos.
El aprendiz 3d.
JFGI
Oniromante, creo que el b3dpipeline no está preparado para usarse con modificadores como el turbosmoth, prueba a cambiarlo por MeshSmooth (aunque sea una caca), y a ver si lo coge. Es muy importante que en el diálogo de exportar a b3d, actives todas las casillas de la izquierda.
Creo que has de activar la de Morph también, un poco más abajo, en la sección dedicada a la animación de la malla. Nunca me he puesto a mirar en serio ese tema, lo siento. Intentaré tener algún ejemplo listo para verlo, ¿ok?
Sigue probando.
____________________________________________.
aprendiz 3d, creo recordar que concretamente la gestión del mouse suele parpadear un poco. El delay() está claro que ayuda, y recomiendo no usarlo casi nunca, excepto unos casos concretos que ya explicaré.
Mousespedy no es que devuelva el resutlado la 2ª vez que lo usas, es que sólo devuele el resultado cuando hay algún cambio moviendo en el eje Y. Si necesitas saber su posición, te sirve perfectamente mousex y mousey.
yo uso otro método: (hay muchas formas de hacerlo, ¿eh?)
Además, de esto, es probable que hagas algo que ralentice el dibujado en la pantalla, como, por ejemplo, abusar de llamadas a text, o dibujado 2d.Código:variable=mousey() ;recojo mousey. If variable <> mousey() then ;si la y ha cambiado. Text 10,10, ariable ;muestro el último valor de mousey. Endif.
Eso provoca el parpadeo. Usar CLS lo provoca también, pero se puede quitar con un truco: usando double buffer, graphics3d y una cámara.
Si te lo quieres quitar de encima, usa cualquier otro método, o contacta conmigo por MSN o Gmail y tal vez le pueda echar un ojo al código y mejorarlo.
Última edición por pioj; 07-07-2009 a las 17:06
Gracias por la respuesta pioj. MeshSmooth tampoco funciona, pensé que podría funcionar porque hace tiempo había un plugin para 3ds Max que no recuerdo, algo, así como virtua4, no recuerdo que creo que lo hacia, pero bueno.
Yo no tengo prisa en que me contestén, pero no se esté hilo ya dio todo lo que tenía que dar.
Alguien sabe porque este código con el debug enabled da error, es algo que se comentó a lo largo de este hilo, pero no se explico.
Cargar mallas con deformación con Bones y skin y manejar secuencias extraidas.
Graphics3d 640,480.
Setbuffer backbuffer().
Cámara=createcamera ().
Positionentity cámara,0,140,-400.
Light=createlight().
Cilindro=loadanimmesh(cilindro_rota, b3d), cargar malla animada con Bones.
Extractanimseq(cilindro,0,30) ;anim sequence 1: dobla a la izquierda ;como es lo primero que extare por defecto es la secuencia 1.
Extractanimseq(cilindro,31,60) ;anim sequence 2: dobla a la derecha;como es lo segundo que extrae por defecto es la secuencia 2.
While not keydown(1).
If keydown(203) then animate cilindro,3,0.5,1, esto es si pulsas flecha izquierda lanza secuencia de animación 1 con velocidad 0.5 y modo 3 que es animar una vez y parar.
If keydown(205) then animate cilindro,3,0.5,2, esto es si pulsas flecha derecha lanza secuencia de animación 2 con velocidad 0.5 y modo 3 que es animar una vez y parar.
Updateworld;debe estar dentro del whie wend.
Renderworld.
Text 0,400,pulsa flecha izquierda para doblar a la izquierda;text debe ir después de renderworld para que texto quede encima.
Text 0,430,pulsa flecha derecha para doblear a la derecha.
Flip.
Wend.
End.
Nota al exportar hay que activar en pipeline enable extensiones.
Pero hay que desactivar export scene root (si esta activado esa casilla no funciona).
-- IMÁGENES ADJUNTAS --
![]()
Última edición por danielblanco3d; 07-07-2009 a las 21:36
Después de probarlo casi todo, me temo que has topado con un bug de Blitz3d. Claramente el error lo da en el end() tratando de cerrar/liberar la malla animada.
Eso me sugiere que hay algo que no debería estar ahí.
También podría ser que el objeto no estuviera exportado del todo correcto, debido a cualquier pequeño fallo que no hayamos tenido en cuenta, aunque cargue bien.
Por si acaso, bug fantasma, y prueba otra malla.
Pues para las cuatro cosas que he hecho encontrar un bug, lo que si he leído es que le pasa a más gente, esto me lleva a otra duda, cuando se exporta desde el pipeline del 3ds Max o desde el max a (*.3ds) da igual que la malla sea paramétrica, Edit Poly o editmesh porque el exportador ya se encarga de triangular esa malla o hay que tener precauciones?
No, al exportar a. B3d o.por la malla permanece intacta, que es lo que toca. Si se exporta desde 3ds Max a.3ds el propio max triangula la malla (cosa que veo como error). Esto siempre ha echado por tierra muchos modelos míos hechos con otros software, y desde hace años.
La teoría nos dice que la malla ha de permanecer siempre intacta a cómo la dejemos, y nos olvidemos de triuangularla, que de eso ya se encarga siempre la VGA al procesarla internamente.
Gracias pioj. Estoy bakeando texturas por primera vez y tengo este problema a ver si puedes ayudarme:
1)preparo la escena en 3dsmax con Lightracer.
2)los objetos de la escena no tiene modificador uvwmap ni Unwrap.
3)hago el render to texture y consigo los mapas y el max mete a los objetos el modificador automatic UVW.
4)aplico en la escena los mapas bakeados y la escena en los visores se ve bien, pero al exportar a.b3d no salen los mapas en Blitz3d, aunque están en la misma carpeta que el archivo.bb. Creo que es porque no exporta el modificador automatic uvwmap que mete el render todo textyre. Como lo hago?
Antes de exportar, tienes que convertir/crear los materiales a b3dbrush. Luego en los slots para maps, creas un submaterial de tipo b3dmap y le asignas la textura que has generado, es fácil.
Gracias de nuevo. Estoy teniendo muchos problema spara exportar la cámara, no entiendo la sintaxis de la extensión del pipeline.
Cuando se exporta una cámara del 3ds Max con target se exporta también el targetí.
Yo lo que hago es ajustar las unidades en 3dsmax para que coincidan con las unidades en el mund Blitz y después si en los visores en 3dsmax la cámara está en 0,20,30 pongo esos valores en positionentity cámara (en los ejes locales del camar en Blitz que parece que son los que exporta). Pero qué pasa con el target de la cámara, como lo posiciono? Y como hago coincidir el Fov de la cámara de lo svisores del 3ds Max con blotz3d?
Última edición por danielblanco3d; 12-07-2009 a las 15:58
Si quieres exportar la cámara no hace falta incluir las extensiones (aunque sí activarlas en el dialog de export a b3d, y marcar la casilla cameras).
yo lo que hago es esto:.
Luego le hago un Point Entity para que apunte donde quiero.Código:global Camera=createcamera (). Positionentity Camera,entityx(findchild(scena,Camera)),entityy(findchild(scena,Camera)),entityz(findchild(scena,Camera)). La Camera es el nombre que he dado a mi cámara en 3ds Max.
Vale, es un poco más manual, pero así me ahorro todo el inlcude del extensiones, que no me sirve para nada.
A fin de cuentas, realmente no exporta la cámara, exporta un pivot, y luego el include ese le crea una cámara en las cords que tiene, y apunta el target a dónde haya el pivot camera_target de 3ds Max. Viene a ser lo mismo que hago yo manualmente, pero con types, y unos 20kb más de código.
Buenas a todos, tengo un problema, sabéis algún comando de Blitz que sea como el rnd pero que no sea aleatorio? Aquí dejo el código de lo que estoy haciendo, es para un juego para personalizar el personaje. Si encontráis alguna forma mejor de hacerlo decirlo.
-- IMÁGENES ADJUNTAS --Código:Graphics3d 640,480. Setbuffer backbuffer(). Camera=createcamera (). Positionentity Camera,0,0,-3. Light=createlight(). Rotateentity light,90,0,0. Cubo=createcube (). Rotateentity cubo,0,50,0. Textura1=loadtexture (textures\cubo\textura1.jpg). Textura2=loadtexture (textures\cubo\textura2.jpg). Textura3=loadtexture (textures\cubo\textura3.jpg). Textura4=loadtexture (textures\cubo\textura4.jpg). Entitytexture cubo, textura1. While not keydown(1). Textura=rnd(1,4). If keydown (205) tselect textura t case 1 entitytexture cubo, textura2 case 2 entitytexture cubo, textura3 case 3 entitytexture cubo, textura4 default entitytexture cubo, textura1 tend select t. End if. Renderworld. Flip. Wend. End.
![]()
Lo siento, pero no le veo coherencia a tu pregunta. Rand/rnd es precisamente para sacar un aleatorio. Si no quieres un número al azar, es porque en su lugar quieres un orden concreto (secuencial, por ejemplo).Sabéis algún comando de Blitz que sea como el rnd pero que no sea aleatorio?
Explica un poco más la idea que quieres, y te ayudaremos.
Enhorabuena por el código, es legible y ordenado. Te aconsejo cambiar el keydo, por keyhit, para que el cambio sea menos brusco. Para añadir algo más de variedad al random, debajo de la línea de setbufer, puedes poner esto:
Indícale un número al azar de 3-4 cifras, y mejorara la generación de aleatorios la próxima vez que uses el random.Código:sedrnd (número)
Buenas, si te fijas, cuando cambia la textura la (*.ace) aleatoria yo lo que kero es que me lo haga en orden.
Genial pioj. Y sobre el Fov de la cámara en 3dsmax lo ajustas con camerazom en Blitz? Porque, aunque la cámara tenga la misma posición y mire al mismo sitio la vista a veces no coincide por el Fov.
Así me queda con un camerazom 1.6.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por danielblanco3d; 13-07-2009 a las 00:59
Como es eso del Camera zoom exactamente? Yo sé que para que coincida hay que poner Fov 90, pero claro, si quieres otra Fov ya ni idea.
Prueba a darle con botón derecho al visor perspective y a show safe frame.
Me refiero a que una vez que creo la cámara en el pivote que se exporto uso esto. Camerazom Camera, zoom#. Parameters:
Camera - Camera handle.
Zom# - Zoom factor of Camera.
Description:
Sets zoom factor for a Camera. Defaults todo 1.
Para poner el zoom a 1.6, así la vista se parece un poco más.
Entonces quieres decir que pones el Fov en 3dsmax en 90? No hay comandos para variar el Fov en Blitz3d?
Con el método de pioj y poniendo en 3dsmax el Fov de la cámara a 90 la vista es idéntica en 3dsmax y en Blitz3d. Si el Fov en 3dsmax no es 90 ya no puedo hacerlo.
Duda sobre exportar luces:he usado el mismo método para exportar el pivote que retiene la posición de la luz en 3dsmax y después crear una luz en ese punto llamando a las coordenadas del nodo con entity x y los findchild, pero sin éxito, este método no funciona con las luces?
Última edición por danielblanco3d; 13-07-2009 a las 11:36
Efectivamente, para el Fov de la cámara se usa camerazom. El valor de Fov 90, si no recuerdo mal, equivale 1.6 en Blitz3d.
El problema es que no hay una relación entre el Fov de 3ds Max y el de Blitz3d, y toca mirarlo a ojo, o aplicando esta fórmula.Well if you take my equation above there.
Camerazom Camera, 1.0 / tan(Fov#/2.0).
The important bit:
Zom = 1.0 / tan(Fov#/2.0).
We know Blitz default zoom is 1.0. So we substitute that into the euqation.
1.0 = 1.0 / tan(Fov#/2.0).
Then we multiply both sides of the equation by tan(Fov#/2.0) todo simplify it.
Tan(Fov#/2.0) = 1.0.
And then we have todo get rid of the tan. So we take the arctan of both sides.
Arctan(tan(Fov#/2.0)) = arctan(1.0).
Which ends up being:
Fov#/2.0 = arctan(1.0).
And arctan(1.0) is 45, so.
Fov#/2.0 = 45.
And them we multipy both sides by 2.0 todo get the result:
Fov# = 90.
So there you have it. Blitz default zoom of 1 is equivalent todo a 90 degre Fov.
Damian1985, si lo que querías es que hiciera un orden secuencial basta con sumarle +1 cada vez que pulsas la tecla, y evalúa con un if, que cuando el valor sea mayor que el último número, el valor pase a ser el primero.
ejemplo:.
Y debajo de eso ya le añades tu select textura..Código:If keyhit(205) then. If valor > 5 then. Valor = 1. Else. Valor = valor +1. Endif. Endif.
Fíjate tú, si era fácil.
Por dónde puedo empezar para conseguir un buen seguimiento de cámara? He visto varios códigos todos muy superiores a mi nivel, lo que quisiera es mover la cámara con el ratón y el avance con los cursores, que la cámara siga a una entidad, sabéis de algún ejemplo o código libre para aprender lo más sencillo posible?
Tengo más o menos clara la idea de poner un pivote a la entidad, orientar la cámara a la entidad y calcular la distancia del pivote a la cámara para ir reposiciónando la cámara, pero también quiero que la cámara vuelva a la posición inicial si colisiona con algo y se separa mucho del pivote.
Gracias pioj, la verdad que la programación no es lo mío, lo mío es más el modelado, estoy empezando ahora con la programación.
Estoy intentando reproducir el control de cámara que se ha explicado en este mensaje con funciones y translate cámara y el código me da un error raro de que no encuentra la entidad pivote cuando si esta, alguien me ayuda?
Control de cámara básico.
Graphics3d 640,480.
Setbuffer backbuffer().
Caja=loadanimmesh (cubo, b3d).
Esfera=loadanimmesh (bola, b3d).
Punto_camara=loadanimmesh(escena, b3d), esto carga el punto con coordenadas de la cámara en 3dsmax para llamarlo después.
Punto_luz=loadanimmesh(escena2.b3d), esto carga el punto con coordenadas de la luz en 3dsmax para llamarlo después.
Pivote_esfera=createpivot(esfera).
Moveentity pivote_esfera,0,100,100.
Cámara=createcamera ().
Ahora posicionamos esa cámara en el pivote que exporta el pipeline con la posición de la cámara en 3dsmax.
Position entity posiciona la cámara en unas coordenadas x y z.
Entityx devuelve la coordenada x de una entidad.
Findchild busca en el archivo escena. B3d la cámara que se llama en 3dsmax Cam.
Positionentity cámara,entityx(findchild(punto_camara,Cam)),entit yy(findchild(punto_camara,Cam)),entityz(findchild( punto_camara,Cam)).
Nota i cuando exportas desde el max das hacer preview y das tabulador ves todo lo que se exporta, el nodo llamado Cam esta en las coordenadas 131,0,-98 que son las que estamos llamando.
Camerazom cámara,1 ;con esto puedes hacer zoom, el zoom por defecto es 1, así ajustas la vista como harías en 3dsmax con el valor Fov.
Foco=createlight(2).
Positionentity foco,entityx(findchild(punto_luz,luz)),entityy(fin dchild(punto_luz,luz)),entityz(findchild(punto_luz ,luz)).
Lightrange foco,200, esto determina la intensidad de la luz para que me todo.
Mover la cámara.
While not keyhit (1) ;mientras no se pulse escape. Aquí se inicia el bucle principal del programa t.
Movimientos_esfera ().
Movimientos_camara ().
Updateworld.
Renderworld.
Flip.
Wend.
End.
Function movimientos_esfera ().
If keydown(200) then ;al pulsar flecha up mover el cubo adelante.
Moveentity esfera,0,0,1.
Endif.
If keydown(20 then ;al pulsar flecha down movel el cubo hacia atrás.
Moveentity esfera,0,0,-1.
Endif.
If keydown(203) then ;al pulsar flecha left mover cubo a la izquierda.
Turnentity esfera,0,1,0.
Endif.
If keydown(205) then ;al pulsar flecha right mover cubo a la derecha.
Turnentity esfera,0,-1,0.
Endif.
End function.
Function movimientos_camara ().
Dx#=entityx(pivote_esfera)-entityx(cámara).
Dy#=entityy(pivote_esfera)-entityy(cámara).
Dz#=entityz(pivote_esfera)-entityz(cámara).
Translateentity cámara, dx# *.015, dy# *.015, dz# *.015.
Pointentity cámara, esfera ;esto posiciona el target de la cámara donde queramos, la bola se cargara antes de esta orden.
End function.
Nota:este sistema de exportar la cámara del 3ds Max funciona mejor si el target de cámara en 3dsmax esta en o,o,o.
-- IMÁGENES ADJUNTAS --
![]()
. I am back
.Hola Oniromante. En tu código todo está ok, lo único que está faltando es que la llamar a las funciones es necesario enviarles lo objetos que son nesesarios para la función, cosa que no ocurre con gosub.
Así en tu código:
Movimientos_esfera ()
Movimientos_camara ().
Lo correcto sería:
movimientos_esfera (esfera)
Movimientos_camara (cámara, pivote_esfera, esfera).
Porque por ejemplo la función movimientos de esfera es:
Function movimientos_esfera () if keydown(200) then.
Moveentity esfera,0,0,1
Endif end function.
Como podemos observar usa el objeto esfera entonces el código correcto sería:
function movimientos_esfera (esfera) if keydown(200) then.
Moveentity esfera,0,0,1
Endif end function.
Otra forma de hacerlo seria poner a los objetos del tipo global.
Así ya no tendríamos que enviarle los objetos a la función, pues al ser globlaes, estos estarán presentes en cada parte del código del programa.
global caja=loadanimmesh (cubo, b3d)
global esfera=loadanimmesh (bola, b3d)
global punto_camara=loadanimmesh(escena, b3d), esto carga el punto con coordenadas de la cámara en 3dsmax para llamarlo después.
global punto_luz=loadanimmesh(escena2.b3d), esto carga el punto con coordenadas de la luz en 3dsmax para llamarlo después.
global pivote_esfera=createpivot(esfera)
global cámara=createcamera ().
Ahí te dejos las dos formas del código, para tener el resultado que estas buscando.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por Cibertronic; 25-07-2009 a las 04:50
Hola a todos, aquí les dejo mi solución al problema de emasq, el del hilo ayuda con el tenis lo subo aquí también para quetodos lo veamos y comentemos.
Como siempre el código fuente y el ejecutable están el adjunto. Un saludo.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por Cibertronic; 27-07-2009 a las 15:28
Muchas gracias por la explicación Cibertronic. Estoy intentando conseguir un buen seguimiento de cámara con colisión y la cosa va avanzando.
Por si a alguien le interesa esto en la parte del código que posiciona la cámara respecto al pivote hay que añadir el true quedando así.
Function movimientos_camara ().
Dx#=entityx(pivote_esfera, true)-entityx(cámara).
Dy#=entityy(pivote_esfera, true)-entityy(cámara).
Dz#=entityz(pivote_esfera, true)-entityz(cámara).
Translateentity cámara, dx# *.015, dy# *.015, dz# *.015.
Pointentity cámara, esfera ;esto posiciona el target de la cámara donde queramos, la bola se cargara antes de esta orden.
End function.
Así con el true toma el pivote del objeto pivote (elpropio objeto), si no lo pones toma el pivote del objeto padre (que en este caso es la esfera).
Última edición por danielblanco3d; 27-07-2009 a las 14:56
Hola Cibertronic, te felicito por ese acabado del mundo, estoy tratando de hacer un rrecorrido virtual con esta cálida de iluminación y no he podido trabaje con tu archivo lo único que hice fue modificar el archivo del 3ds Max, bueno te adjunto mi archivo, te agradecería cual quier ayuda, me urge terminar.
-- IMÁGENES ADJUNTAS --
![]()
Hola dyonyzyoz. Tome tu modelo y hay ciertos problemas con tu mallaen las columnas desaparecen algunos vértices, a mi me paso.
Bueno reice tus columnas.
Y le aplique un render to texture le hice unos pequeños retoques a tu programa, tamiben dejo el ejecutable para los que deseen probarlo.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por Cibertronic; 05-08-2009 a las 05:10
Hola chavatars. Ya he vuelto de las vacaciones en la campus party. Veo que le estáis dando al proyecto tecno ese. Chachi.
Qué tal el deled, no lo había probado hasta ahora, pero me gustó, es como un gile[s](revisar muchos mensaje atrás) solo que no es gratis, pero su versión gratuita es funcional. http://www.delgine.com/.
-- IMÁGENES ADJUNTAS --
![]()
Una inteligencia artificial no muy i. Esta solo busca el camino blanco y si encuentra un punto rojo, busca otra dirección por la cual pueda seguir su camino el control lo hace si el próximo punto s negro entonces busca otra dirección el punto blanco. Y todo con un corto, sencillo y simple programa de 50 líneas muy fácils de entender.
conclusión:
Segir aleatoriamente el camino dibujado.
Este algoritmo sería la base para un comecocos.quien se anima en el programa están scritos los valores que obtengo al darle clci en los colores rojo, blanco, negro, espero que sean los mismos en sus máquinas, si no pasen la vos por favor.
. Confirmado en cada máquina cambia el valor del color. Nago raro sucede no funca.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por Cibertronic; 11-08-2009 a las 15:06
Aquí la inteligencia artificial un pcoc mejorada, espero que está si corra en todas las máquinas. Avisarme por favor si no corre en sus máquinas pd, le puse un pac para hacerla más divertida si solo se va por los bordes cambiar la línea marcada está el valor 248, ponelrle 255, ¿cómo se ve en la figura.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por Cibertronic; 13-08-2009 a las 14:56
Hola, soy nuevo en este foro. Nunca había relacionado la programación con el modelado 3d como lo he visto en este foro. Existe alguna versión reciente del Blitz3d o complemento que usen para ejecutar los ejemplos.
Porque al importar el objeto y sus secuencias con.
Objeto=loadmesh(obj, b3d).
Extractanimseq(objeto,1,5).
Extractanimseq(objeto,6,7).
Me da que las funciones no existen.
Y al probar los ejemplos del foro me dan los giguientes errores.
Me dan los siguientes errores:
Error| memory acces violation.
Error| entity doest not exist.
Error| function doest not exist.
Eso mismo pe saba a mí. Tenía una versión comercial(pirata) y para que funciones era necesario que se le pongan 3 upgrates.
Busca y ponles las acutlaizaciones.
Para no complicarme la vida, ahora.
Yo uso la versión demo que hay en la misma página del Blitz.
Es total mente funcional.
Hola, disculpa que siga con lo mismo, pero. No encuentro actualizaciones para el bliz, al parecer la página de Blitz ya no existe.
Hola jyrokproblemas con Blitz? Mi mail es kiuster_91@hotmail.com así te puedo dar una mano con esto, también te ayudo a localizar las actualizaciones. Saludos.
AMD Dragon PLatform:
_CPU AMD Phenom II X4 810
_AsRock M3A780GXH/128M
_ATI HD4870 xFx
_4X 1GB Mem DDR3 1600Mhz
_Thermaltake Mid-Tower m9
Algunas imágenes de la demo 2.1 de conquest, a ver qué les parece, pasen por el proyecto y descargenlo (apenas 5 Mb, salado.) pero vale la pena, bah para mí vale. Saludos.
-- IMÁGENES ADJUNTAS --
![]()
AMD Dragon PLatform:
_CPU AMD Phenom II X4 810
_AsRock M3A780GXH/128M
_ATI HD4870 xFx
_4X 1GB Mem DDR3 1600Mhz
_Thermaltake Mid-Tower m9
Sigue la página oficial del Blitz. http://www.blitzBasic.com/file/get.p...tz3demo183.exe.Hola, disculpa que siga con lo mismo, pero. No encuentro actualizaciones para el bliz, al parecer la página de Blitz ya no existe.
Hola, aquí muestro un paisaje que me estaba haciendo.
-- IMÁGENES ADJUNTAS --
![]()