Aquí os dejo un ejemplo sobre cómo simular el el día y la noche en Bennu 3D
DESCARGA: http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.0.2.zip (http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.0.2.zip)
Comprobaréis que es un "juego" muy parecido al que he publicado con distintos ejemplos como poner armas a un modelo md2, posicionador 3D, etc. Es que estoy creando utilidades de interés general para Bennu 3D a medida que "intento" hacer un juego decente... Quizás termine basando el tutorial en él.
Me queda pendiente: Hacer que el día/noche vaya en función de la fecha del sistema, añadir tonos rojos en el atardecer... Se admiten sugerencias.
EDIT: Se me olvidaba, el día y la noche dura unos 10 segundos, paciencia y veréis el efecto.
Creo que serias el hombre que me enseñaras de una vez como utilizar Bennu3D, o sea, las ultimas versiones y que no den error de la dll desaparecida ;)
No había probado nada de Bennu3D hasta hoy, excelente trabajo (+++ karma!!!), pinta muy bien esto del 3D para Bennu...
PD-Podrias bajar la camara para acercarla más al personaje y darle más velocidad a su movimiento, se me hace eterno recorrer el escenario xDD
@FreeYourMind: Con este juego puedes ejecutar usando el .bat, usa sus propias DLL así que podría servirte de plantilla para programar cualquier cosa. En cualquier caso, con las DLL del último Bennupack también funciona perfectamente Bennu3D.
@TRaFuGa: Para bajar la cámara puedes usar la ruleta del ratón si mal no recuerdo... Los controles son muy parecidos a World of Warcraft, con clic derecho pretado también puedes girar y con clic izquierdo y derecho a la vez puedes andar xD
Ahora mismo estoy a punto de conseguir que el día y la noche sea en función de la hora del sistema, aunque el problema de obtener la hora y los minutos y finalmente obtener la luz asociada a la hora ha sido más peludo de lo que esperaba.
¡Conseguido! El día y la noche va en función de la fecha del sistema, tanto la iluminación como la niebla oscura que se produce cuando anochece. La precisión y el efecto me ha dejado bastante satisfecho, aquí os dejo una captura:
(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09.png)
Y aquí la descarga de la nueva versión con diversas mejoras.
DESCARGA: http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.1.3.zip (http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.1.3.zip)
Os agradecería si me confirmáis que el efecto de día/noche parece correcto para la hora de vuestros respectivos países. Los cálculos que he realizado están en /prg/tiempo.prg
Ahora creo que voy a meter lluvia, aunque dudo si hacerlo superponiendo gráficos en 2D, usando pequeños modelos que caen del cielo o con emisores de partículas...
buenisimo!
Si ya me fije :)
Una cosa, sobre el tema de camára, es baseado en el irrlish no ?
Yo pensaba que internamente trataba el tema de las colisiones con las paredes en la camára, o sea, que al navegar por el mapa, las paredes no se cortarian y dejarian ver otros pasillos o el fondo.
Esto se tiene que programar o el engine tiene funciones para ello ?
Si la cámara es en primera persona es sencillo controlar las colisiones con el escenario para que la cámara no lo atraviese, en cambio si la cámara es en tercera persona es muy complicado, ya que el seguimiento es automático y si añades esa cámara a la lista de colisiones puede quedarse atascada...
Lo cierto es que el tema de la cámara en Bennu 3D no funciona demasiado bien... Quizás se pueda programar alguna solución para detectar si la cámara se quedó atascada y en ese caso volver a invocarla, pero sería complicado conseguir que funcionase bien.
Ahora mismo estaba programando el sol con un emisor de partículas gigante, también se posiciona correctamente en función de la fecha del sistema, os mantendré informados xD
Con la lluvia ha sido imposible, he hecho una gota en 3D pero meter la lluvia de modelos 3D satura la memoria... Habrá que buscar otra solución.
Esta interesante, siempre me fascino la campiña del Zelda OOT.
He visto que cambias los 3 componentes del RGB con la misma variable para hacerlo más claro o oscuro.
Has pensado en hacerlo por color independiente ? Para darle un tono anaranjado a la tarde, azul oscuro para la noche (luna llena), violeta al amanecer (con niebla más abundante)
Lo de la hora creo que no me funciona, quizas noto más niebla y el bitmap del fondo más oscuro, pero sigo viendo diferentes tonos de sombra proyectados en el escenario en el mismo angulo, nose si son preprocesados.
Sí, había pensado en aportar tonos como dices, de hecho si saco un momento me pondré a ello.
Siento comunicar que la versión anterior tenía un bug al calcular la hora... Me ha tomado mucho tiempo y no doy con un método apropiado para obtener un tono de luz entre 0 y 255 a partir de la fecha del sistema, de manera que a las 12:00 PM tengamos 255 y a las 0:00 AM tengamos 0 de iluminación, si alguien puede aportar algo...
Aquí dejo la nueva versión con un escuadrón de enemigos para probar el rendimiento, el sol funciona y la iluminación en función de la hora ya debería funcionar sin problema, aunque se puede mejorar.
DESCARGA: http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.1.5.zip (http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.1.5.zip)
suena muy bien :) revisando karma ++
a propósito, alguien sabe de las nuevas librerías 3d que serían compiladas para bennu el fin de semana?
edit.. wow, ¿cómo le haces para mover partículas al rededor del arma de uno de tus personajes? (¿cómo obtienes el punto sobre el cuál tienen que girar, y los ángulos para girarlas?)
l1nk3rn3l habló de compilar las nuevas librerías la semana, pero aún no lo ha hecho, yo también estoy canino esperando, todos los días miro el hilo de Bennu 3D deseoso :P
Las partículas no las muevo sobre el arma, los modelos eran así... Con M8E_ADDCHILD se podría hacer un arreglo, pero el ángulo de giro no sería más que una aproximación.
Me alegro que te haya gustado, si tengo alguna duda te preguntaré a tí Prg, por ahora estaba intentando conseguir un mecanismo para acceder fácilmente al identificador de proceso a partir del identificador de modelo... He leído por el foro que tú usas LOCAL, no me parece mala idea por el momento pero sigo investigando...
Una duda: ¿Cómo hiciste para que las barras de energía de tu juego de magia se acortasen?
con este método podrás colocar una barra sobre un enemigo y mostrar la sangre que tiene.
[code language="bennu"]m8e_getposmodel(prota,&posl); //tomas la posicion del modelo enemigo
posl.y+=altura; //altura a la que colocaras la barra
M8E_GETPOS2DFROM3DPOS(posl,miposi); //en miposi de tipo _pos2d guardas la proyeccion del posl
M8E_GUImove(mibarra, miposi.x,miposi.y); //imprimes la barra en pantalla sobre el enemigo
M8E_GUIGETRECT(mibarra, &rect_zon); //tomas la region del gráfico en una variable de tipo _TRect2D rect_zon;
rect_zon.LowerRightCorner.x=miposi.x+vc_ener*ener; //y calculas cuanto vas a mostrar de la barra (posicion x de la barra)+(energía)*(rango de energía)/(energía_total) donde (rango de energía)=la medida de la barra de energía
M8E_GUISETRECT(mibarra, &rect_zon); //ahora aplicas los valores anteriores para mostrar la energía en la barra[/code]
Aprovecho para preguntar por algo que nunca hice, imaginando la respuesta.
Si bennu3d es basicamente utilizar aparte de bennu, los modulos del engine 3d, y todo es por software, se pueden ejecutar juegos de bennu3d en el port para Wiz ??
Tu ejemplo funcionaria en la Wiz ?
Si es afirmativo (que lo dudo) entonces es un pecado que no se haya informado mejor a los mortales :)
bennu3d no es software.
¿No decían en otro hilo que si lo era? o que podía serlo porque las librerías 3d existen sin aceleración HW (irrlitch creo que iba por soft, por ejemplo).
De todas maneras, aun así, dudo que ande en la WIZ (a menos que la aceleración HW haga milagros), al menos lo suficientemente bien como para hacer un juego potable... pero son especulaciones.
http://es.wikipedia.org/wiki/Irrlicht
Renderizadores
* Direct3D 8.1
* Direct3D 9.0
* OpenGL 1.5
* Irrlicht Engine software renderer.
* BurningsVideo Software Renderer
pero tengo entendido que bennu3d requiere dx u opengl... de hecho no pude probar esta demo porque me da error al inicializar el opengl...
Hay un render por defecto si usas 0 como parámetro... Imagino que se tomará el Burning y según esa lista es software.
En cualquier caso, como creador de un render "casero" por software ya anticipio que es im-po-si-ble hacer que funcione por software de forma decente, incluso optimizando para no procesar vistas ocultas y aunque eliminase el Gouraud Shading seguiría siendo una basurita... Nada que ver con Bennu 3D, no daría ni para tener un md2 animado en pantalla.
Por cierto he descubierto que lo que más consume con diferencia son las listas de colisiones, si no los añades a las listas de colisiones puedes tener hasta 300 modelos animados con un comportamiento "decente" mientras que si hay colisión no puedes pasar de 20...
Por ahora acabo de meter varias "fases" y he despertado viendo cómo había amanecido y el sol brillaba en lo alto, ha sido muy bello, ahora voy a intentar meter lluvia y nieve con partículas, ya que con otros métodos consume demasiado.
Karma++ Prg por lo de las barras y por ser una persona así de especial :-*
cuidado que hay libs por soft que animan modelos md2... pero claro, 1 par de modelos, no puede mover la inmensidad que mueve bennu3d.
Dejo la nueva versión, estoy seguro de que os va a sorprender:
Lluvia, nieve y tormentas, con efectos de sonido incluidos, día y noche, el sol en el cielo, varias fases...
Sólo un detalle, en /prg/global.prg hay una variable llamada num_fase que vale 2, si la ponéis a 1 podéis ver la fase 1, en la fase 2 está la gran nevada mientras que en la fase 1 hay tormenta y lluvia.
También podéis modificar la línea 45 en main.prg y poner fase ( 1 ) o fase ( 2 ) para que se cargue la fase correspondiente.
DESCARGA: http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D/Kombat3D%200.1.7.zip
El próximo paso es que también esté la Luna por la noche y mejoras de eficiencia en la lluvia y la nieve para que sólo nieve en la cámara activa, ya que ahora nieve en un area grande y eso ocupa demasiada memoria. También unos giros aleatorios en el foco de nieve para conseguir el efecto de viento variable :P
Por cierto, estoy pensando en abrir un hilo específico para este proyecto llamado Kombat3D, ya que hay mucho más a parte de simular la día y la noche... Siento haber saturado el foro con hilos basados en el mismo proyecto, pero estaba probando diversas cosas de Bennu 3D y al final a desembocado todo en el mismo proyeto :D
Galería completa de capturas:
(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09.png)
(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09%202.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09%203.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09%204.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09.%20gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%202.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%203.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%204.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%205.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%206.gif)
wow, se ve genial en las capturas :) ya quiero verlo correr. Descargando y karma++ :)
Sin palabras me he, yo tambien descargo, aunque aun no esté con Bennu3D, algún día me será de muchísima utilidad.
Y no te preocupes por los temas esparcidos, mejor así: la información específica de cada parte se encuentra antes.