Foros 3DPoder.  

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í. 3d




Retroceder   Foros 3DPoder. > :: Infografia y diseño grafico. > Tutoriales, Libros y Manuales. > Almacen de Tutoriales (Castellano) > Blender
Foro3D Galeria Privada Video3D Blueprints Software Blog3DPoder Buscar Empleo Donaciones


Noticias, Anuncios y Publicidad

Respuesta
 
Herramientas
Antiguo 18 sep 2005   #1
3dpoder
Administrador y fundador.
 
Avatar de 3dpoder
 
Fecha de Ingreso: abril-2002
Mensajes: 2,969
Entradas de portafolios: 3
Contactar con 3dpoder a través de ICQ Contactar con 3dpoder a través de MSN Contactar con 3dpoder a través de Yahoo
Blender Blender Game Engine --Andando--como mover el actor

Blender Game Engine ---Andando!

como mover el actor diferentes alternativas y consecuencias

Bueno! de nuevo en carrera. Si ya conseguis distinguir entre un actor dinamico y uno estatico, y entendes algo de las propiedades dinamicas de los materiales, no vas a tener problema en seguir esta guia.
Como escenario de pruebas, tome una caja (cubo) e inverti las normales hacia adentro (para que desde afuera sean tranparentes y nos permitan ver el contenido y sirvan de fondo) y las texturize (similar a la tecnica rotoscopia). le agregue nuestro actor dinamico (a partir de ahora la “nave”) que por cuestiones de normalizacion de criterios, el “adelante” de la nave coincide con el eje Y del objeto y visto desde arriba, el eje X apunta a la derecha del objeto. Con esto conseguiremos que mi adelante sea el tuyo tambien, y asi.



Presumo que ya sabes que es un Logic Brick (LB), y como agregarlos a los actores. Tanto a la nave como al cubo (que bautise “suelo”) tienen aplicado material, con los valores que tiene por defecto un material nuevo.
Con la nave seleccionada , entrar a la ventana del engine (el packman azul) y... que clase de movimiento queremos?
Si solo deseamos que se desplaze en una direccion (por ejemplo adelante) bastara con aplicarle una fuerza en el eje Y (como es en la direccion positiva del eje, sera una fuerza positiva). Observando la imagen de arriba, van a notar que el eje Y de la nave no cincide con el eje Y global (es hacia adonde apunta el dedo de mi hermano, no es el mio).





Eso es importante cuando la “L” del actuador no esta presionada. presionada=local no presionada=global. si esta local, la fuerza o desplazamiento (según sea el caso) se aplica en la direccion del eje del objeto, si es global, en la direccion del eje global. por defecto es como aparece en la imagen de arriba (donde escribi “local”y “global”al costado y los ejes debajo de cada columna).
Volviendo al ejemplo, conecte un sensor keyboard(uparrou en pulse mode,los tre puntitos arriba)>controlador and>actuador motion (force 10 en el eje Y) consiguiendo que mi nave se desplaze hacia adelante! (si no sabes como hacerlo, entonces busca algun tutorial mas basico para aprender)
Si tu nave no se desplaza hacia adelante, o lo hace hacia otro lado, revisa el tutorial desde el principio, y verifica el eje del objeto Y coincida con el frente de mesh del mismo.
La nave se desplazara hacia adelante cada vez mas rapido si mantenemos presionada la flecha “arriba” hasta impactar con algun objeto en su camino o caer al vacio. Lo que sucede es que le aplicamos una FUERZA, un empujon, y este empujon se repite varias veces por segundo si mantenemos presionada la tecla en cuestion. para que el impulso se aplique una sola vez es necesario desactivar el pulse mode, y entonces solo dara un empujon por cada presion de la tecla. A mayor fuerza, mayor empujon que se transformara en mayor velocidad. Si en lugar de aplicar una fuerza en el eje Y lo hacemos en el eje X, el desplazamiento sera lateral. Probar agregando otro juego de sensor>controlador>actuador, pero con otra tecla. para seleccionar la tecla a la que responde el sensor, simplemente presionar el boton izquierdo del mouse en el renglon gris a la derecha de “Key” e inmediatamente presional la tecla que deseamos actibve el sensor. Hay mas opciones de keyboard, pero para otro tutorial.
Si aplicamos la fuerza en el eje Z, que en este caso mira hacia arriba, sucedera que... por defecto la gravedad (no de grave, sino de atraccion gravitacional) del engine es de 9.8 metros sobre segundo cuadrado (en realidad la unidad la supongo yo, para que coincida con la gravedad promedio terrestre y sea mas comodo de usar), y tiene una direccion constante de menos Z, es decir que todos los objetos dinamicos son afectados por una fuerza de 9.8 hacia el eje -Z global (se puede modificar la magnitud desde la ventana World o la magnitud y la direccion mediante composicion de fuerza en los tres ejes desde python) ...retomando, si la fuerza positiva en el eje Z es menor o igual que 9.8, no observaremos diferencia, pero si es mayor a 9.8 entonces nuestro actor se desplazara hacia arriba con velocidad creciente. por ejemplo, con fuerza Z = 9.9 se elevara muy lentamente al principio.
Retomando la fuerza en el eje Y, como hasta ahora nuestra nave es un objeto no-rigido, no tendra tendencia a rodar al rozar con el suelo mientras se desplaza (como sucede con cualquier cuerpo esferico, no olvidemos que a los efectos del engine, por lo menos hasta la version 2.25, la evaluacion fisica se calcula tomando la esfera que rodea el centro del objeto de radio Size). Si activamos Rigid Body, la nave... es que esta loca? comenzara a oscilar hacia adelante y hacia atrás hasta que comienze una carrera demente por el escenario. Lo que sucedió es que aplica la fuerza en el eje Y positivo de la nave... que ademas sufre un torque (fuerza aplicada para hacer girar) que proviene de el rozamiento de las superficies de la nave y del suelo (como llevar un aro o barril rodando) y esta relacionado con el coeficiente de rozamiento de los materiales de los objetos. Si el suelo tiene rozamiento cero, entonces no habra torque, no habra giro extraño... pero la nave no se detendra al soltar el boton, que que las fuerzas que detienen a los cuerpos en movimiento son las de rozamiento o friccion. Tambien como amortiguacion del movimiento se puede utilizar Damp. Ademas, si no hay rozamiento, la nave nunca podra girar correctamente (dejemos los giros para mas adelante).
Que pesado que me estoy poniendo con las fuerzas y la fisica! mejor cambienos a movimientos mas sinteticos, simples.
podemos desplazar el objeto en cualquier direccion con dLoc (posicion relativa), que aumenta o disminuye la posicion del objeto en la cantidad y eje que elijamos. Estar atento con local y global!. La nave se va a mover contidades exactas, y no va a tener consecuencias secundarias como inercia o giros imprevistos. Claro, tampoco conviene aplicarle desplazamientos muy grandes, ya que al pasar INSTANTANEAMENTE de una posicion a otra, es perfectamente capaz de atravesar paredes y actores, con resultados no deseados, ademas de perder la sensacion de continuidad en el desplazamiento.
Y las rotaciones??? o siempre vamos a mirar para alla?
Los mas listos ya se habran fijado que tenemos casilleros dRot y Torque. Adivinaron, dRot aplica rotaciones en el eje (por ejemplo si aplicamos una rotacion dRot en el eje Z , que es el eje que mira hacia arriba, la nave girara hacia la derecha o hacia la izquierda, en cambio si aplicamos la misma rotacion al eje x, siempre local, la nave girara levantando o bajando la nariz). para que la nave gire exactamente 90 grados, la rotacion debera ser de 45 (???) esdecir, de la mitad del angulo medido en grados, por motivos que no comprendo, esto es asi.
Para Torque, es como si aplicaramos una fuerza, como si tomaramos el alambre del eje al que lo aplicamos con dos dedos y lo impulsamos como a un trompo. Y al igual que este, se ira perdiendo velocidad hasta detenerse, en funcion de su masa y de los factores de rozamiento.
Aun nos quedan dos filas por probar... son linV y angV, que podemos traducir como Velocidad Linear y Velocidad Angular. directamente se configura la velocidad en un eje (local o global) a lo largo del mismo o al rotar en el.
Es el podemos elegir si deseamos que nuestra nave avanze con continuidad, con inercia, pero a una velocidad constante, que no se incremente ni disminuya mientras la estamos aplicando. (con Force, la velocidad se incrementaba a cada instante, no aplicabamos una velocidad sino una aceleracion). Tenemos ademas la opcion de que SI incremente la Velocidad Linear a la existente precionando el boton add a la izquierda de la fila linV.
Y lo mismo podemos acotar respecto de angV, aunque sin la opcion add.
Mejor que decir es hacer
Vamos a algo practico que nos permita apreciar diferencias.
Si nuestranave se encuentra en la situcion de tener que sortear una rampa para avanzar en su peligrosa mision




vamos aintentar primero aplicando una fuerza Y positiva a nuestro actor dinamico “nave” de masa 1 y size 1, con el rozamiento en 0.05 tanto para el material de la nave como para el escenario y la rampa.




Pero que paso??? nuestra nave comienza a avanzar lentamente, timidamente intenta la rampa... y retrocede. Un fracaso. la aceleracion de 1 es insuficiente para alcanzar la velocidad de escape necesaria para subir toda la rampa, y finalmente la ley de gravedad gana. en rojo el reto, en verde el resultado.





Con fuerza 2 no creo que lo logre, mejor probemos con fuerza 3...



(que apurado estoy, ni siquiera edito bien las imagenes!)


Ahora cambiemos a dLoc. Borremos el valor de Force y escribamos en dLoc (columna Y) 0.10, es decir, que avance un decimo de Blender Unit (un cuadradito Blender de la grilla cuando esta mide 1)




Y probamos el resultado... FRACASO ESTRUENDOSO!!!
La nave avanza hasta la rampa lenta y constante, pero al llegar no puede subir mas que unos milimetros miserables y retrocede acobardada (grafico idem del fracaso con force 1). Lo que sucedió es que la nave avanza un decimo de unidad (en este caso un decimo de su propio Size o radio), lo que en el plano le representa avanzar a velocidad constante, cada iteracion (o instante del engine) avanza identica distancia. Pero al avanzar sobre un plano inclinado, se agrega al avance horizontal una fuerza hacia abajo y atrás por la accion de la gravedad, en este caso mayor em cantidad de desplazamiento que el avanze. no olvidemos que el engine continua evaluando al actor aunque lo que le aplicamos fuera un desplazamiento y no una fuerza. Por esto, si estaria en el vacio caeria como cualquier otro actor dinamico con el adicional del movimiento en el eje y (la componente de ambas acciones).
Para no extenderme el lector podra en este punto estudiar la alternativa de aumentar dLoc y probar linV por su cuenta y riesgo, variando magnitudes para ver que sucedera en cada caso.
Voy a tocar muy brevemente ahora el tema de
Subir la rampa, saltar el pozo.
Primero establescamos el escenario. En las mismas condiciones que veniamos manejando hasta ahora, pero con un foso de tres unidades de ancho. Si caemos, nunca nadie volvera a saber de nosotros (en un espacio virtual, existen los agujeros sin fondo, tengan mucho miedo. Si no lo toman en cuenta en un juego y no tienen tecla de abortar, la caida sera eterna en serio)




configuramos linV en X=0.0 Y=4.5 Z=4.0




y el salto al precionar la tecla “Uparrow” sera exitoso!...se puede probar con force para obtener un resultado similar, con la componente de dos fuerzar perpendiculares, se obtiene una resultante (suma de vectores, se puede hacer con lapiz y papel).
Pero lo que me preocupa es que fue demaciado facil... les aseguro que olvidamos algo.
Probemos de nuevo solo que precionemos varias veces la tecla de saltar, o activemos el pulse mode (da lo mismo). Oooops! la nave salta y salta en al aire, ya no necesita tocar tierra y el peligro de caer por los pozos es casi nulo, lo que arruinara nuestro juego de pricipio a fin. Como evitarlo? ya mismo aporto una alternativa al “salto compulsivo”
Agregamos un sensor “Touch” y conectarlo al controlador And existente. Configurar el casillero MA (material) con el material del suelo (en este caso los bloques del suelo estan con dicho material, es conveniente que todo lo que sea pared tenca asignado otro material para que ella nave no trepe por las paredes). y convendria asignar un boton para avanzar y otro para saltar.




Resalte todo lo que debemos tener en cuenta: la tecla con la que se activa el sensor, si al mantener precionada la tecla la activacion se repite (pulse mode), el material que debe estar tocando la nave al momento de presionar la tecla de saltar para que efectivamente aplique un impulso hacia arriba. Por separado el impulso hacia adelante, y cada Logic Brick con su nombre, para poder saber que funcion cumple (esto se puede volver muy confuso, hay que desarrollar criterios, normas y documentacion que nos permitan “mapear” el trabajo realizado). Ahora se puede avanzar y saltar en forma independiente, y solo saltara cuando la condicion tecla de saltar este presionada al mismo tiempo que la nave este tocando el material suelo. PRACTICA PRACTICA PRACTICA ETC.



... y hasta la proxima!!!



CJD (Claudio Javier Dobniewski)


__________________
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 17:01.
3dpoder is offline   Responder Con Cita
Respuesta


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Normas de Publicación
Usted no puede publicar nuevos mensajes.
Usted no puede responder mensajes
Usted no puede publicar archivos adjuntos
Usted no puede editar sus mensajes

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are deshabilitado
Pingbacks are deshabilitado
Refbacks are deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Trucos y Tips sobre Blender Mars Attacks Infografía General 60 20 jun 2008 13:45
Duda sobre cómo texturizar con LSCM en Blender elGordo Materiales y Texturizado 7 03 nov 2004 18:23
Como pongo Blueprints en Blender Cesar Saez Modelado 9 06 oct 2004 00:25

google adsense



La franja horaria es GMT. Ahora son las 12:21.


Powered by: vBulletin, para 3DPoder.com Versión 3.7.0 Beta 4
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.
3DPoder.com Foro3d.com © Al servicio de la infografia y el 3D desde 1997.
Remortgages | Montana Music | Loan | Cheap Car Insurance | Dieta dos Pontos
Content Relevant URLs by vBSEO 3.2.0