![]() |
|
Bienvenido a Foros 3DPoder.. Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! ! Si usted tiene algún problema con su registro, por favor , díganoslo aquí.
|
![]() ¿Te ayudo? |
|
|||||||
|
|
|
|
#1 |
|
Administrador y fundador.
|
COMENZANDO CON EL BLENDER ENGINE Si nuna utilizaste el Blender Engine, o te frustraste intentandolo, repasemos algunas cosas basicas. el Blender Engine NO ES una aplicación que tenga que ver con el modelaje o el renderizado, asi que aunque este integrado (lo que nos facilita trabajar en un unico entorno) tiene sus caracteristicas particulares. En principio, el BE simula propiedades fisicas como la impenetrabilidad de los objetos (colisiones), el rozamiento, la aplicación de fuerzas, velocidades, rotaciones. El Datablock o pantalla desde donde controlamos la mayoria de las propiedades que afectaran los objetos es la que se identifican con un “packman” azul ![]() Diferenciemos categorias de objetos por sus propiedades: si el objeto en cuestion no es un actor, el boton ´actor´ estara desactivado, y el objeto en cuestion no sera evaluado por el engine (lease que no rebotara ni se movera deacuerdo a las leyes de la fisica) pero si se le podran aplicar movimientos, rotaciones, efectos de material que interactuaran con los actores, IPOs, Armatures,Logic Bricks. ![]() Pos actores dinamicos SI son evaluados por el engine, y si los colocamos donde no hay piso, y si con el cursor en una vetana 3d precionamos la tecla ''P'' entonces el engine se activa, y comienza la simulacion el actor que no tenga suelo debajo, caera indefinidamente y se perdera del campo visual. Si presionas la tecla ''ESC'' la simulacion se aborta, y todos los objetos estaran tal y como estaban al iniciarse el engine. Es importante tomar en cuenta los layers activos antes de ejectutar el engine, porque solo ''existiran'' los objetos que esten en layes activos, y los que esten en layes inactivos ''no existiran'', salvo como objetos almacenados que pueden ser ''creados'' por un objeto en un layer activo, durante la simulacion (es como si fueran modelos a ser copiados al momento de ser llamas por un objeto activo), pero el objeto en si no pueden cambiar de layer durante la simulacion, esta es una diferencia importante con el modo normal del Blender (como ya debe saber Taz). Por ahora no intentaremos hacer un juego, sino solo practicar, probando las distintas cosas que trae el engine. En este caso utilizo la version del Blender 2.23, aunque la 2.25 trae algunas mejoras en los logic brick y en el interprete Python.. Con un sesion nueva del Blender, creemos un objeto (a gusto del usuario, puede ser un cubo, una esfera, un cilindro,etc.) no importa la forma, ya que sera nuestro actor, y, por ahora, los actores dinamicos son evaluados solo como esferas de un tamaño ''Size'' (cuando presionamos el boton ''Actor'' y ''Dynamic'' se despliegan otros justo abajo que definen propiedades fisicas), de una masa (que no es lo mismo que peso) ''Mass''. Asimismo es conveniente aplicarle un material (cualquiera), aunque si no lo hacemos el Blender evalua el material por defecto (ese ''Material'' gris que aparece cuando cramos un material nuevo). El material asigna propiedades al objeto, que se configuran con el boton DYN (de DYNAMIC) que se encuentra al costado del cuadrado donde nos muestra el color del material. Por ahora dejamos la manipulacion del material para mas adelante. Bien, ya tenemos nuestro objeto testigo, es un actor dinamico, y supongo que tiene un material por defecto. ![]() Lo ubico en la pantalla 3D. Observemos que tiene un circulo de linea de trazos! esta es la forma en que Blender nos indica que es un objeto dinamico, y el tamaño esferico respecto de su centro. es impenetrable por objetos ''solidos'' dentro de ese circulo. Y no olvidemos colocarle un piso, que puede ser un plano agrandado para que tenga un poco de espacio, con el mismo material. No queremos que sufra de vertigo. ![]() Ahora presionamos la P-key y... a) Si el plano tiene el material por defecto, el actor caera hasta chocar con el plano y quedara estatico ahi. No rebota. b) Si el plano no tiene material asignado el objeto testigo (el actor!) rebotara indefinidamente, o lo tiene y la Restitution (restitucion:indice con que devuelve la fuerza de impacto) esta entre cero y uno rebotara cada vez mas bajo hasta detenerse. La cuestion es que LA RESTITUTION LE INDICA AL MATERIAL CUANTA DE LA FUERZA DE IMPACTO DEVUELVE PARA EL REBOTE, es decir, si el indice es cero, nada rebota en el. dicho material absorbe LA TOTALIDAD del impacto, aunque si ambos son actores dinamicos, el rebote de cada uno dependera del material del otro. Por el contrario, una restitutio de uno, devuelve la totalidad de la fuerza (el objeto que rebota lo hace con la misma fuerza que impacto, amen de que pierda fuerza por factores de ''Damp'' (son atenuaciones de la velocidad similar al rozamiento) en nuestro ejemplo, no tiene mucha gracia ver rebotar (o no) un objeto sobre un plano. Avancemos un poco, aseguremonos de que el plano restituya la fuerza del impacto. dejemos la restitutio en uno. Que sucederia si inclinamos el plano solo un poco? a probar!!! (P-key) (observamos...) (ESC-key) ![]() Que raro... el testigo reboto a un lado, paso en caida libre y desaparecio del campo visual... indefinidamente. Que le sucedió? se murio? o esta justo ahi, solo que no lo vemos? La triste realidad es que nuestro testigo se cayo al espacio infinito, y caera eternamente hasta que detengamos el engine. Los actores respetan rigurosamente sus restricciones, y si no hay nada que detenga su caida, la omnipresente gravedad artificial del Blender lo atraera por siempre. El Blendermaniaco debera tener en consideracion para sus juegos y simulaciones que LOS LIMITES DEL ESCENARIO DEBERA PONERLOS EL, YA QUE SINO SUS ACTORES SE PERDERAN EN UNA CAIDA INFINITA O VAGARAN POR AREAS RESTRINGIDAS, estropeando la dinamica.. Ya siento que se estan aburriendo de pelotas que rebotan. Que mas se puede hacer con esto? Reemplazemos el plano que utilizamos de piso por un cubo (pueden borrar el plano y crear un cubo que contenga a nuestro actor testigo o extrudear el plano hacia arriba, da lo mismo). para aplicar texturas (no en el material!) asegurarse que la normal de todos los planos/caras del cubo esten mirando hacia adentro, ya que por defecto el BE solo dibuja las caras del lado de la normal. si no saben hacer eso, es material de otro tutorial (no mio). En principio si ejecutamos el BE la unica diferencia con lo anterior es que si el plano sobre el que rebota el actor esta inclinado, el ector terminara rebotando entre el suelo y la pared. Habria que utilizar otras herramientas para dessarrollar un poco el ejemplo, por ejemplo los fabulosos LOGIC BRICK'S que encontraremos aquí ![]() Pero primero (siempre hay un pero?) repasemos la logice de los logic brick's : constan de sensores SENSORS , controladores CONTROLLERS y actuadores ACTUATORS, y hay que pensar mas o menos asi: yo quiero ''controlar'' una situacion dinamica, que cumple condiciones exactas pero que en conjutno e impredecible al milimetro, cuanto mas compleja la escena, mas dificil es saber que sucedera a cada instante, y si finalmente los acontecimiento estaran dentro del abanico de posibilidades que intente probocar.(ganar, perder, sumar puntaje, una movimiento creible del protagonista, etc.), y para conseguirlos tenemos que saber cual es la situacion a cada iteracion (o instante), informacion que recolectamos con los sensores. Tenemos que procesarla (por ejemplo la IA de los malos, porque si son muy tontos, el juego tambien lo es) aun las decisiones mas sencillas deben ser tomadas, o no se producen las acciones deseadas. y finalmente, cuando sucedió lo que esperabamos y decidimos que habia que hacer, hacerlo. Para eso son los actuadores. Pueden experimentar hasta el cansancion con ellos, no producen ningun daño permanente. comenzamos con lo mas sencillo: aplicarle una fuerza continua a nuestro testigo para ver que sucede. precionando los botones Add se agrega debajo un logic brick, agregemos uno de cada uno ![]() En este caso utilizamos los LB que aparecen por defecto: Sensor Always (siempre) este sensor siempre emite el mismo pulso. el pulso es lo que activa el controlador, y si la condicion se cumple, entonces genera un pulso (o uno o valor positivo o true) que activa todos los controladores que esten a su salida.. En este sensor el prime boton (que esta presionado) repite el pulso en cada iteracion, en tanto que si estuviera no-presionado entonces solo emitiria un pulso la primera iteracion, al comienzo de la simulacion, y permaneceria ocioso el resto del tiempo. con el puntero del cursor unimos el puntito amarillo del sensor con el puntito amarillo del controlador (si lo hicimos exitosamente veremos una linea negra que transmitira nuestro pulso positivo al controlador), y lo mismo con el punto amarillo de salida del controlador y el de entrada del actuador. ya esta casi listo. Controller AND (''Y'') este controlador es el mas rudimentario. su ''condicion'' a controlar es que todos los sensores que esten a su entrada esten enviando pulso al mismo tiempo. Es un operador logico muy comun. Si todos los sensores que estan a la entrada (puede haber mas de un sensor conectado a un controlador, mas de un controlador conectado a un sensor, etc.) envian ''uno'' (siempre hablamos en cada iteracion) entonces el controlador AND envia un ''uno'' a todos los actuadores que esten a su salida. genericamente seria si recibo pulso 'positivo' de todos los sensores conectados a mi entrada (sensor 1 “Y” sensor 2 “Y” sensor 3 “Y” ... “Y” sensor n) entonces enviar un pulso 'positivo'a todos los actuadores que esten a mi salida. Actuator Motion(“movimiento”) este actuador es el que utilizamos para aplicar desplazamientos y rotacions que no esten previamente grabados (existe el actuador IPO), aplicando fuerzas, fuerzas de rotacion (torque), velocidades, velocidades de rotacion y desplazamientos y rotaciones especificas. Las pequeñas letras “L” de la derecha en cada opcion indican si se debe aplicar LOCALMENTE o GLOBALMENTE. En el primer caso, la rotacion en el eje 'X' se producira CON RESPECTO AL EJE 'X' DEL OBJETO, en cambio en el segundo caso la rotacion se aplicara RESPECTO DEL EJE 'X' DEL UNIVERSO DEL ENGINE, es decir los ejes ortogonales que utilizamos como referencia al editar. Si la L esta presionada, es local. Otra observacion mas: la aplicación de fuerzas y velocidades a objetos que no sean actores dinamicos no tendran ningun efecto, ya que (nunca me canso de repetirlo) NO SON EVALUADOS POR EL ENGINE. se los considera perfectamente fijos en el unverso, y solo se desplazan a posiciones on en distancia/angulos especificos. Una fuerza aplicada, para calcular un movimiento debe tomar en cuenta la masa y el rozamiento del objeto, y en este caso no hay una ni otra. En el LB>>Motion agregemos una fuerza (Force) en la primera el primer casillero de -2.00 (menos dos) quitando la “L”. La primera columna corresponde al eje X, la seguna al eje Y y la tercera al eje Z. Si terminaron de conectar el sensor con el controlador y este con el actuador, entonces al comenzar el engine, el actor deberia tender a aumentar su desplazamiento en el eje X del Blender. probar con distintas fuerzas en distintos ejes, y tambien alterar la restitution y friction de los materiales, y observar. Quizas ya hayan notado que nuestro testigo se desplaza y rebota alegremente, pero no gira. no rueda. siempre permanece “parado”. Si lo que queremos es un hombrecito que corre, estaria bien. pero si güera una bola del pinball, o una rueda de auto o bola de bowling, entonces necesitariamos que ruede como si fuera de verdad. para que esto suceda, precionar en el actor correspondiente el boton “Rigid body”(cuerpo rigido). y probar de nuevo el engine. Fantastico! ahora se pueden tirar bolas con efecto en un juego de pool, o jugar a la bolita (tradusca canicas). por ahora ignoraremos todos los botones que aparecieron al precionar “Rigid body”, sigamos una linea de pensamiento por ves. No voy a transcribir aquí la lista completa de logic bricks con sus caracteristicas, con presionar el botoncito blanco en donde esta la qtiqueta con el tipo de logic brick se desplegara un menu con todos los disponibles, según estemos en sensores, controladores o actuadores. En cualquier caso, podemos renombrarlos presionando en su nombre (por defecto sensor,sensor1, etc. esto es muy util cuando trabajamos con python o para poder gestionar la telaraña de bloques interconestados), y se pueden borrar presionando “x” que tienen a su izquierda en cada uno. Para ir terminando este tutorial iniciatico, vamos a tomar el control con el teclado (no es eso lo que querian?) en primer lugar, configurar los LB del actor asi: ![]() probarlo. ya pueden controlar un actor en forma rudimentaria. practiquen y diviertanse hasta la segunda entrega. TIP: prueben colocando mas de un actor. prueben aplicandole rotacion u otros en lugar de fuerza. prueben conectar la salida de un controlador de un actor a la entrada de el actuador de otro (para eso presionar los botones “Sel” que se encuentran arriba de los LB y seleccionar ambos actores al mismo tiempo) CJD (Claudio J. Dobniewski) Buenos Aires, Argentina en marzo 6 de 2003
__________________
MUY Importante: Por favor, adjuntar los archivos al foro, ya sean imágenes ó vídeos, un poco mas abajo de la ventana donde se escriben los mensajes, hay un botón "Gestionar Archivos Adjuntos" utilizadlo, gracias. Última edición por 3dpoder fecha: 13 oct 2007 a las 16:32. |
|
|
|
| Enlaces patrocinados |
![]() |
| Etiquetas Identificativas |
| blender, con, engine, iniciacion |
| Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes) | |
| Herramientas | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| VideoTutoriales, tutoriales escritos y más para Blender | SHAZAM | Tutoriales, Libros y Manuales. | 306 | Hace 2 Semanas 17:30 |
| Blender Game Engine --Andando--como mover el actor | 3dpoder | Blender | 0 | 18 sep 2005 04:43 |
| Nuevo Blender 2.33 | 8tintin | Infografía General | 9 | 16 may 2004 12:44 |
| :::Blender 2.31a + Raytrace + game engine ¡Blender Power!::: | SHAZAM | Infografía General | 18 | 14 ene 2004 04:34 |
|
|