Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 44,01€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales
lightbug

[Asset Store] Kinematic 2D

Recommended Posts

Primero un cuento corto:

Me he decidido por al fin subir algunos assets al asset store (de los tantos que tenía, actualmente 3, Kinematic2D, GrabIt y LaserMachine) , pense "bueno esto es fácil, me registro, doy subir al asset store y probablemente dos días después me llegue un mail diciendome gracias por su tiempo Sr. Lightbug" bueno, no fué del todo así, pero después de medio mes de malabares, curso autodidacta intensivo de html+css (duración 1 día) y algunas luchas con Unity Connect acá estoy :16_relieved:.

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

K2D_Icon.png

DESCRIPCIÓN


Kinematic2D es un controlador de personaje 2D Totalmente Kinematico (no basado en físicas) que te permite realizar el movimiento de tu personaje 2D mientras se encarga de manejar las colisiones correctamente. Basicamente ofrece las funcionalidades del Character Controller (Componente) que viene por defecto con Unity (y más), pero con tres grandes diferencias:

  • Está preparado para movimiento bidimensional (de aquí el 2D)
  • La forma del cuerpo del personaje es una caja (en vez de una capsula, esto es genial para platformers)
  • Funciona con colliders 2D y 3D (Ej: colliders de sprites y 3D mesh)

El principal objetivo de este asset es darte la posibilidad de que tú construyas encima un controllador de movimiento del personaje (Ej maquina de estados, habilidades, etc), sin preocuparte por la parte aburrida de las colisiones, así te puedes enfocar en el diseño y mecánicas de tus personajes ... lo divertido! :5_smiley:


JUEGOS
 

Este asset fue inicialmente diseñado y pensado para juegos 2D de plataformas (platformers) en general, aunque tú puedes usarlo de alguna manera ingeniosa y hacerlo funcionar de la manera que quieras (futuros ejemplos a incluir), por ejemplo con en un típico 2D topDown.


CONTENIDO

El contenido principal se divide en dos partes:


- El "Core": La parte principal del paquete corresponde a la clase "Character Body" (manejo de colisiones) y al componente "CharacterMotor2D" (Movimiento), con estos script de C# puedes configurar los aspectos básicos de tu personaje, consideralos como el equivalente al clásico "Character Controller" de Unity pero para 2D.

- La Implementación: Consiste en algunos scripts que implementan la funcionalidad del core, tal como input, control de movimiento, animación, IA. Esta parte del paquete hace de implementación ejemplo, aunque es super útil y práctica (basado en juegos como Hollow Knight y Celeste).


DETECCIÓN DE COLISIONES
Una de las principales diferencias con otros productos similares es que Kinematic 2D integra un método de Boxcast para detectar colisiones (junto con el tradicional método de Raycast), esto no solo significa precisión fina sino también performance. El Boxcast es una solución genial para formas complicadas y es muy eficiente (testeada con cientos y cientos de personajes corriendo a 60 fps sin problemas). El componente "CharacterMotor2D" te permite seleccionar cualquiera de los dos métodos en cualquier momento.


REQUERIMIENTOS

Incluso si todo va bien de entrada es recomendado tener al menos unos conocimientos básicos de C# (intermedio recomendado) para tomar ventaja al máximo del asset, por ejemplo para extender el Character Controller, agregar nuevos estados o habilidades, personalizar a gusto el sistema de animaciones o crear uno nuevo, crear una inteligencia artificial, etc.


ESPECIFICACIONES PRINCIPALES

Core:
- Completamente kinemático.
- Colisiones basadas en forma de caja (Box Collider 2D).
- Métodos de Raycast y Boxcast para detectar colisiones.
- Puede manejar escalones.
- Puede manejar pendientes.
- El personaje nunca va a atravesar paredes.
- Soporta suelos dinámicos (plataformas móviles).
- "Ground clamping" (el personaje se queda pegado al suelo, distancia configurable).
- Funciona para cualquier rotación (perfecto para escenarios donde la gravedad cambia).
- Viene con un set de eventos (delegates), listos para ser utilizados por cualquier script.
- Código completo C# comentado.

Character Controller (Implementación):
- Movimiento horizontal configurable
- "Air control" (que tan audaz es el personaje para controlar movimiento horizontal en el aire).
- Multiples saltos.
- Cancela el salto soltando un botón.
- Multiple "Dash".
- "Dash" basado en Inputs (inspirado en juegos como "Celeste”).
- Deslizamiento sobre muros.
- "Wall Jump" basado en Inputs.
- Movimiento basado en acciones (No en inputs directas! es útil para abstraer este aspecto, por ejemplo al integrar IA, o usar diferentes dispositvos).

Extras:
- Controlador de Plataformas Móviles.
- Cámara 2D.
- Dos escenas "Demo".
- Y más…

FUTURO

Se pretende actualizar/mejorar este paquete cuanto sea posible con:
- Nuevas funcionalidades al character controller.
- Nuevas funcionalidades al detector de colisiones.
- Un mejor editor UI.
- Integration de IA.
- Más cantidad de componentes extras.
- Pathfinding 2D (Para la IA).
- Documentación decente.
… y por supuesto, resolver cualquier Bug ! :)

IMÁGENES

Step.png

Slope.png

slopeSteep.png

slopeUglyshape1.png

slopeUglyshape2.png

slopeUglyshape3.png

groundClamping.png

DownSlope.png

wallClimbing.png

slopeAlignment.png

CornerAlignment.png

 

VIDEO

 

 

 

DEMO

WebGL --->   Demo versión 1.2.1

 

ASSET STORE

Link ---->   Kinematic 2D

 

Versión "oficial" de Unity Forums:  https://forum.unity.com/threads/released-kinematic-2d.621577/

 

 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PD: Después de haber creado (creo que por primera vez) un hilo en el foro oficial de Unity debo decir, que UnitySpain está años luz adelantado, en todo aspecto, volver aquí es como dejar de usar el intel pentium 2 para subirte a i7 realmente, (y ni hablemos del código) ... felicitaciones @pioj :91_thumbsup:

Edited by lightbug
nueva versión 1.2.1

Share this post


Link to post
Share on other sites
5 minutes ago, Bamf said:

Maravilloso trabajo! @lightbug

Gracias :91_thumbsup:ahora mismo estoy probando algunas cosas con la IA que es lo que quiero meter en la v1.1

Share this post


Link to post
Share on other sites

Gran aporte!

 

Yo sólo quiero saber una cosa: ¿Cuando está bajando una rampa, considera que está "caminando", o considera que está "cayendo"?

Share this post


Link to post
Share on other sites
7 hours ago, pioj said:

¿Cuando está bajando una rampa, considera que está "caminando", o considera que está "cayendo"?

Gracias Pioj, ¿En algun momento en particular (de gifs o videos) o en general? Cuando está bajando una rampa pronunciada equivale a "caminar sin control", lo digo desde el punto de vista de las colisiones (Aire no funciona igual que suelo) y no de las acciones/entradas del personaje. Existen dos mundos cuando se está en suelo: el estable y el no estable, dentro del estable siempre se "camina" (aca si es caminar porque la acción es controlada con walkSpeed desde el character controller), en el no estable se pueden realizar dos acciones configurables:

1 - Deslizar (como en el personaje de la derecha de la imagen del título) aca el jugador/IA no tiene control del personaje, la velocidad de descenso está configurada en una animationCurve

2 - Caminar de manera descendente: si el angulo es pos  (rampa pronunciada a la der) solo es posible caminar hacia la izq , y si el angulo es neg solo hacia la derecha, así se comporta por defecto el character controller (componente) de Unity.

Share this post


Link to post
Share on other sites

Estuve jugando con el "Ground Alignment" y el "Wall Climbing", (a partir de un interesado en Reddit) y salió esto:

groundAlignCompi_2_0_64.gif

groundAlignmentUp.gifgroundAlignmentDown.gif

 

 

Claramente esto va en la v1.1 :5_smiley:

Edited by lightbug

Share this post


Link to post
Share on other sites

×