Jump to content

Jhonatan00_00

Registrados
  • Content Count

    112
  • Joined

  • Last visited

Everything posted by Jhonatan00_00

  1. Buenas tardes, he probado de todo tocando esos parámetros y no ocurre nada, sigue metiéndose un poco por debajo del suelo para después volver a su lugar. La versión que utilizo de Unity es la 4.7.2 aunque creo que no es por la versión. El personaje lo controlo con un Character Controller y con Raycast detecto el suelo para cuando toque iniciar la animación de agacharse y volver a la de reposo, pero no importa que el Raycast sea mas largo o menos que siempre actúa como si los pies del personaje fuesen de goma al tocar, cae, se hunde y vuelve a su lugar.
  2. Buenos días, a ver si alguien sabe decirme como solucionar esto, que a priori parece una chorrada y por eso mismo lo he ido dejando, pero que no hay forma de solucionar: Cuando salto con mi personaje, al tocar el suelo y pasar a la animación de agacharse para después volver a la animación de reposo, varia su altura metiendo los pies en el suelo y después volviendo a su posición normal. He probado a subir la altura (sin que toque el suelo) en la pose de agachado para que al hacer la transición no lo traspase y mejora un poco, pero si vas viendo la animación fotograma por fotograma desde Unity se puede apreciar que bien del todo no queda... ¿Como se soluciona este problema?, ¿por que se produce?. Un saludo y gracias.
  3. Buenas tardes compañero, no se que vamos a hacer sin su ayuda por el foro y espero que aunque no esté como administrador entre a ayudar a los mas novatos que seguimos en la guerra de conseguir cumplir nuestro sueño, que quizá no llegue a nada, pero es nuestro sueño. Cuídese mucho y un abrazo.
  4. Buenos días y gracias por la aportación, aunque mi problema no es que no sepa crear un joystick, si no que no se como controlarlo desde el joistick derecho del mano de control. Cuando queremos que algo suceda al usar el joystick izquierdo simplemente utilizamos Input.GetAxis("Horizontal"), pero cuando el joystick es el derecho ¿que usamos?.
  5. Buenas tardes, estoy tratando de hacer que con el joystick derecho del mando de control podamos mover la cámara o realizar cualquier otra acción pero no hay forma. He intentado configurar el joystick desde Edit > Project Settings > Input pero no lo consigo, ¿de que forma se configura?. Un saludo y gracias.
  6. Buenos días, me alegra que el foro vuelva a estar operativo después de todo este tiempo. He actualizado a Unity 5.2.0f3 y ya tengo todas las opciones de transiciones, etc para el Animator, pero he estado haciendo pruebas y aún así sigo sin poder conseguir exactamente lo que busco. Lo que quiero es poder interrumpir en cualquier momento una transición y que esa transición evolucione hacia la animación que yo quiera. Es decir, que si el personaje está cayendo y toca el suelo, no se agache y se levante para después correr, si no que si le damos a correr nada mas tocar el suelo el personaje interrumpa la transición de agacharse para evolucionar hacia la de correr de forma fluida. Solo he conseguido interrumpir la transición por medio de script usando GetComponent<Animator>().Play, pero no hace la transición si no que directamente reproduce la siguiente animación y no es lo que busco. ¿Alguna idea?. Saludos y animo, que ya queda menos de cuarentena.
  7. Gracias!!. No puedo indicar mas de un comentario como solución al problema del hilo por lo que he marcado el que soluciona lo que indica el titulo, pero he podido solucionar también lo de la transparencia gracias al último mensaje de Francoe1. Es una pasada lo que logran hacer con Shader. Viendo tutoriales, leyendo y aprendiendo un poco mas he podido simplificar todo mucho para poder crear un Shader con transparencia y que su vez tenga BumpMap, pero hay un problema y es que aún no me deja tocar el grado de transparencia. Muevo la barra de colores y el objeto si cambia de color, pero muevo la de la transparencia y no hace nada. El Shader que he creado es este: Shader "Custom/Transparent" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _BumpMap("Bump Map", 2D) = "bump" {} _Color ("Main Color", Color) = (1,1,1,1) } SubShader { Tags { "RenderType"="Transparent" } CGPROGRAM #pragma surface surf Lambert sampler2D _MainTex; sampler2D _BumpMap; fixed4 _Color; struct Input { float2 uv_MainTex; float2 uv_BumpMap; }; void surf (Input IN, inout SurfaceOutput o) { half4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; o.Alpha = c.a; o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); } ENDCG } FallBack "Diffuse" } A ver si alguien puede ayudarme.
  8. Buenos días Francoe1, eso es lo primero que hice y lo mas sencillo, pero los objetos 3D no actúan como los objetos 2D al hacerse transparentes. Una imagen 2D al no tener fondo si no que es plana simplemente se hace transparente y ya está, pero un objeto 3D como puede ser un cubo, cuando es semitransparente deja ver sus 4 caras. Si aplicamos esto a un personaje se puede ver como está modelado, que es hueco por dentro e incluso me genera fallos como caras invertidas, etc... No funciona. Lo que yo necesito es que ese personaje se haga transparente como si fuese 2D.
  9. Por lo que veo en el vídeo esta persona sabe programar lo que yo no voy a llegar a aprender en toda mi vida, pero por eso mismo ha realizado el Fade In/Out de la manera mas compleja que se te puede ocurrir y tampoco creo que me sirva para lo que yo estoy tratando de hacer (o no he entendido nada del video), que es hacer transparente la imagen que capta una de las cámaras y después que vaya apareciendo poco a poco... Para esto del FadeIn/Out lo que yo he hecho ha sido crear un Canvas, darle el tamaño de la pantalla y el color que yo quiera y por script tocar su transparencia para que la pantalla se encienda o se apague, no tiene mas historia. Lo complicado es cuando quieres hacer lo mismo con un personaje 3D o un objeto 3D y que aparezca progresivamente, no encuentro la forma.
  10. GRACIAAAAAAAAAAASSS!!, lo logré!!. Acabo de abrir una puerta a infinitas posibilidades, se pueden hacer montones de cosas con esto de usar varias cámaras para renderizar según que objetos, es una pasada!!. Solo me falta por saber hacer una cosa. He intentado que un objeto aparezca de la nada materializándose y para ello lo que he usado es un material transparente, el cual primero está completamente transparente y poco a poco va siendo visible. El problema es que cuando es medio transparente se puede ver que el objeto es hueco por dentro y quisiera saber si con esto de usar varias cámaras podría renderizar el objeto y esa imagen que me renderiza la camara hacerla transparente, ¿se puede?.
  11. Buenas tardes, he estado indagando sobre el tema de usar varias cámaras para renderizar diferentes objetos y supongo que a lo que se refiere es al Render Texture ¿verdad?. No encuentro la forma de indicar en que capa debe de estar cada objeto ni que capa debe de renderizar que cámara. A mi me aparece en opciones de la cámara la función "Depth" que sirve para indicar que cámara se renderizará primero, pero no importa el orden que le de que no hay ningún cambio...
  12. Francoe1 tiene usted que hacer un tutorial para que el mundo entienda como se aplica el RenderQueue, porque lo poco que he encontrado en Internet está en ingles y no he conseguido aún nada con las pruebas que he hecho... ¿Como se hace lo de usar dos cámaras para renderizar el personaje en una y mezclarlas después?, son cosas muy nuevas para mi y no tengo ni idea... Poco a poco por favor!!.
  13. No es eso exactamente nomoregames. Lo que intento es aprender a renderizar un objeto 3D sobre los demás como si se tratara de un objeto 2D para darle multitud de usos... Por ejemplo a parte de para usar un objeto 3D en un menú por ejemplo, ahora mismo necesito poder oscurecer todo el escenario menos el personaje y después hacer que se encienda progresivamente como si aparecieses en ese lugar desde la nada (porque te materializas) y puedo conseguirlo haciendo que todos los materiales sean negros, pero tendría que ir modificando uno por uno el brillo hasta que estuvieses en ese lugar, mientras que poniendo un plano en color negro frente a la cámara y renderizándolo justo después del protagonista podria conseguir el mismo efecto mucho mas fácil. Se le pueden dar muchas aplicaciones mas, por ejemplo cuando juegas a Tomb Raider y te pierdes, tiene una función que te muestra todos los objetos del escenario a lo lejos, para que puedas dirigirte hacia ellos sin perderte y eso se consigue renderizandolos sobre los demás. Es algo que la mayoría de videojuegos usan y que se debe de poder hacer... Buscando información parece que la solución debe de andar por aquí: https://docs.unity3d.com/ScriptReference/Rendering.RenderQueue.html
  14. Gracias a todos por responder!!. Veo que es mas complejo de lo que pensaba y me parece que lo mejor será renderizar el objeto 3D desde el programa de modelado y pasarlo a 2D para usarlo como una imagen corriente, de lo contrario el lío puede ser padre... De todos modos Unity debería de tener capas donde indicar que objetos se renderizan en primer lugar. He probado creando un shaders como dice Lightbug y no se hacerlo, no me funciona.
  15. Buenas tardes, estoy tratando de hacer un objeto 3D para renderizar siempre sobre los demás objetos del juego, como si tuviera un componente más del menú. Seguro que es una chorrada pero no se hacerlo. - ¿Como se hace ?. GRACIAS !!.
  16. Tiene razón Pioj, creo que la función de Has Exit Time no está disponible hasta Unity 5... o actualizo o actualizo...
  17. Gracias por responder, pero no soluciona el problema. Eso seria básicamente eliminar la transición y lo que busco no es recortar la transición si no que la interrumpa y vaya hacia otra animación en cuanto se cumpla una condición. Creo que no me estoy explicando bien... EDITO ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Haciendo comprobaciones he visto que puedo conseguir el efecto que quiero simplemente moviendo hacia atrás o hacia delante la animación hacia la que tiene que hacer la transición desde el inspector, el problema es que no es nada exacto porque tienes que hacerlo a ojo con el ratón y me gustaría saber si hay alguna manera de controlar esto de las transiciones por script, para que las animaciones se mezclen exactamente como y cuando quiero. He probado con animation.CrossFade pero solo sirve para acortar lo que dura la transición.
  18. No hay forma compañeros... sigo sin poder hacer las transiciones como las necesito y he buscado por Google pero es que no encuentro la solución... Les pongo en situación: tengo una animación donde el personaje se agacha para tomar impulso y saltar y otra donde corre. Si vamos corriendo y le damos a salto el personaje (aún corriendo) se agacha poniendo las dos piernas juntas y después salta, pero lo que necesito que haga es que me mezcle la postura entre agacharse y correr (porque estamos corriendo no en parado) y que se agache un poco con la pierna que tenga hacia delante al correr pero no lo hace. Lo que hace es parar de correr, reproducir la animación completa de agacharse sin mas y después saltar. Cuando cae al suelo hace igual, debería de interpolar entre la animación de agacharse al caer y correr, para seguir corriendo sin que se detenga pero tampoco lo hace, si no que pone las dos piernas juntas, se agacha, se levanta y después comienza la animación de correr, no me interpola bien entre una y la otra. - ¿Puede haber alguna forma de solucionar esto por medio de programación?. Saludos.
  19. Buenas tardes, tengo un problemilla con mis animaciones y es que hasta que no finaliza una de ellas no empieza a hacer la transición hacia la otra. Por ejemplo si salto y caigo, cuando toco el suelo hace una animación de agacharse y no comienza a correr de nuevo hasta que no ha terminado la animación por completo, por lo que se para y después sigue corriendo. En Internet he visto que existe la opción de Has Exit Time que sirve precisamente para esto, para indicar que la animación no tiene por que finalizar por completo para comenzar a reproducir la transición hacia la siguiente, pero en Unity 4 no la encuentro. A mi me aparece solo esto: - ¿Como puedo evitar que las animaciones se reproduzcan completas antes de pasar a hacer una transición?. (No me refiero a recortar el tiempo de la transición, si no a que comience a reproducirla nada mas cumplirse una condición). - ¿Como puedo cambiar el nombre del objeto que tiene aplicado el Animator?. Me aparece Cabeza.Reposo -> Cabeza.Impulso, pero el animator está aplicado a un personaje y no a su cabeza. Un saludo.
  20. Habría que probarlo, pero indicar con el ratón el tipo de golpe que quieres dar a tu oponente es un poco mas lento que con los botones de un mando o las teclas de un teclado y si el enemigo es rápido va a ser bastante difícil vencerlo.
  21. Buenas tardes, llevo mas de medio libro leído y la verdad es que no explican casi nada, únicamente te dicen lo que tienes que escribir y si tu tienes curiosidad por aprender buscarás lo que significan esos comandos, si no, pues simplemente harás el mismo juego que te van enseñando hacer desde cero con Unity y no sabrás hacer nada mas. Además la forma de hacer muchas cosas la veo absurda e incluso incompleta, por lo que el juego que vas a conseguir hacer con este libro es un juego mediocre mas del montón, que nadie piense que se va a hacer un profesional en la programación con este libro porque no es así. De todos modos solo por tener algún libro de C# no me arrepiento de haberlo comprado, pero podían haber empezado por explicar las condicionales IF, ELSE, Then... y aclarar muchos aspectos que a los novatos nos confunden (a mi ya no) como es el tema del uso del RigidBody para personajes u objetos, si es mejor CharacterController, etc... Por ejemplo te enseñan a hacer que tu personaje salte con una animación de salto simple y nada mas, pero no te dicen que dependiendo de la altura del salto el personaje tardará mas en caer y si caes sin haber saltado también tiene que tener otra animación hasta que toca el suelo... Son cosas demasiado básicas las que enseñan. Un saludo.
  22. Me recuerda a los juegos de la mítica videoconsola Atari 2600. Por aquel entonces estos gráficos eran graficazos jaajaj... como cambian los tiempos... Volviendo al tema, a mi me parece que funciona bien, aunque no se que aplicación quieres darle, si los enemigos vienen a por ti por varios sitios como en un juego de peleas de los que vas avanzando por un mapa o si es un juego de peleas tipo 1 contra 1... de igual modo está bien, es bastante original. Saludos.
  23. GRACIAS FRANCOE1!!, LA MADRE QUE ME PARIO!!, POR FIN LO HE CONSEGUIDO GRACIAS A SU ULTIMO MENSAJE!!. void OnControllerColliderHit (ControllerColliderHit Objeto_Colisionador) { Empuje = Objeto_Colisionador.transform.position - transform.position; if (Objeto_Colisionador.collider.attachedRigidbody == null || Objeto_Colisionador.collider.attachedRigidbody.isKinematic) { return; } Objeto_Colisionador.rigidbody.velocity = Empuje * 4; } Gracias de verdad, me tenia frustrado este tema.
  24. Madre mía!! esto cada vez pinta mejor, que físicas, como mola lo del coche fantasma, todo!!, pero si parece un GTA, la única diferencia son los gráficos y que no te puedes bajar del coche. MOLA!!.
  25. Se que está mal porque anulo las físicas, pero en este caso no las anularía, porque si tengo un objeto delante y lo único que quiero es moverlo y que por ejemplo caiga por una rampa, el empuje en si lo estaría haciendo con transform, pero conforme empezase a caer por la rampa ya si actuarían las físicas que es lo que me importa. No obstante lo he cambiado y lo he hecho con velocity. Lo que no me entra en la cabeza es que cuando creamos la fuerza de empuje, lo que el ejemplo de Unity dice es que usemos moveDirection para saber la dirección hacia donde se mueve el personaje y aplicarla sobre el objeto, pero ese moveDirection no va asociado al personaje si no al objeto que empujamos y no se está moviendo, no lo entiendo. Así es como dice Unity que deberíamos de hacerlo: void OnControllerColliderHit (ControllerColliderHit Objeto_Colisionador) { vector3 Empuje = new vector3 (Objeto_Colisionador.moveDirection.x, 0, Objeto_Colisionador.moveDirection.z); El objeto no tiene movimiento, por lo que el valor del moveDirection seria cero y solo en momentos en los que el personaje consiguiera empujar levemente al objeto es cuando actuaria alguna fuerza y funcionaria... pero mi personaje no suele empujar en absoluto ningún objeto y por eso no funciona. Como funciona es así: void OnControllerColliderHit (ControllerColliderHit Objeto_Colisionador) { vector3 Empuje = new Vector3 (GetComponent<CharacterController>().velocity.x, 0, GetComponent<CharacterController>().velocity.z); Ahí si tenemos en cuenta la velocidad y el ángulo desde el que empuja el personaje y funciona, aunque no entiendo por que según desde el ángulo que le de al objeto a veces tiene mas fuerza y a veces menos... no reacciona siempre igual de bien e incluso me quedo empujando al objeto sin que se mueva a veces, como si estuviese pegado al suelo, depende del ángulo.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...