Jump to content
Sign in to follow this  
lightbug

[Asset store] Character Controller Pro

Recommended Posts

Ostia! Vine a actualizar el hilo del asset, y me di cuenta que nunca lo hab√≠a creado ūüėÖ ... bueno aqu√≠ va...

KeyImage_Cover.png

Links:

Breve descripción:

Character Controller Pro es un controlador de personaje (o character controller) de tipo dinámico que funciona con físicas 2D/3D, y tiene forma de cápsula.

El paquete se separa en 3 partes:

  1. Core: El character controller con todo lo necesario para que exista y funcione por si solo [Lógica no implementada]
  2. Implementation: incluye un sistema construido encima del controlador que ayuda a 1) administrar inputs (sin importar su origen, viejo sistema de Unity, nuevo sistema, Rewired, etc) para luego convertirlas en acciones, y 2)  proveer de una maquina de estados (FSM). [Lógica no implementada]
  3. Demo: Dentro del paquete se incluyen escenas de demostración,  estados (implementaciones de lógica de gameplay), acciones predefinidas (movement, jump, crouch, etc),  y más.  [Lógica implementada]

 

 

 

 

  • Like 4

Share this post


Link to post
Share on other sites

Está muy pero que muy chulo, 

 

Mi √ļnico problema con unity es que compr√© 2 veces y ped√≠ reembolso pero no por el material comprado, es que no tengo ni idea como poner esto en unity para que luego pueda funcionar correctamente. Me aparecen 100 carpetas y ni s√© como ordenar o hacer que funcione. lo que me compr√© fue algo de FPS y al final ni lo us√© por no tener ni idea como se usan -_-¬°.

Pero tu proyecto es muy chulo!!!

Es increíble la verdad. 

  • Like 1

Share this post


Link to post
Share on other sites

Gran asset, lo compré hace un tiempo y es muy versátil, además el bueno de @lightbug tuvo el detalle de ayudarme a configurarlo en mi proyecto y resolverme algunas dudas.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
On 4/3/2021 at 4:28 PM, Satangel said:

Está muy pero que muy chulo, 

 

Mi √ļnico problema con unity es que compr√© 2 veces y ped√≠ reembolso pero no por el material comprado, es que no tengo ni idea como poner esto en unity para que luego pueda funcionar correctamente. Me aparecen 100 carpetas y ni s√© como ordenar o hacer que funcione. lo que me compr√© fue algo de FPS y al final ni lo us√© por no tener ni idea como se usan -_-¬°.

Pero tu proyecto es muy chulo!!!

Es increíble la verdad. 

Gracias! ūüėÄ No me qued√≥ bien claro si no supiste/pudiste hacer funcionar este asset o ese "FPS" (?).

On 4/3/2021 at 7:59 PM, Bydark said:

Gran asset, lo compré hace un tiempo y es muy versátil, además el bueno de @lightbug tuvo el detalle de ayudarme a configurarlo en mi proyecto y resolverme algunas dudas.

Gracias Bydark! Espero que siga funcionando ūüėĄ

 

Ya que estoy, la version 1.3.3 debería estar lista dentro de algunas horas. Una cosa que no he mencionado aquí es la existencia de un bug que imposibilita descargar versiones actualizadas de asset (afecta a todos sus asset).

Versiones con el fix incluido:

  • 2021.1.0b3 o mayor
  • 2020.2.3f1 o mayor
  • 2019.4.19f1¬†o mayor

Fix manual:

  1. Ir a C:/Users/***your-user-name***/AppData/Roaming/Unity/Asset Store-5.x/
  2. Encontrar al autor del asset (/Lightbug/)
  3. Borrar "Character Controller Pro.unitypackage"
  4. Ir al package manager y descargar el asset nuevamente.

 

 

  • Like 1

Share this post


Link to post
Share on other sites
21 hours ago, lightbug said:

Gracias! ūüėÄ No me qued√≥ bien claro si no supiste/pudiste hacer funcionar este asset o ese "FPS" (?).

Gracias Bydark! Espero que siga funcionando ūüėĄ

 

Ya que estoy, la version 1.3.3 debería estar lista dentro de algunas horas. Una cosa que no he mencionado aquí es la existencia de un bug que imposibilita descargar versiones actualizadas de asset (afecta a todos sus asset).

Versiones con el fix incluido:

  • 2021.1.0b3 o mayor
  • 2020.2.3f1 o mayor
  • 2019.4.19f1¬†o mayor

Fix manual:

  1. Ir a C:/Users/***your-user-name***/AppData/Roaming/Unity/Asset Store-5.x/
  2. Encontrar al autor del asset (/Lightbug/)
  3. Borrar "Character Controller Pro.unitypackage"
  4. Ir al package manager y descargar el asset nuevamente.

 

 

Justo ahora estaba intentando implementar tu asset en un nuevo proyecto pero he olvidado algunos pasos...

El esqueleto de mi personaje est√° estructurado de esta forma (imagen abajo).

Es necesario seguir la misma estructura que t√ļ usas? (Armature/Nombres de los huesos - Character Mesh)

En caso de que sí, los huesos deben tener los mismos nombres?

Pregunto todo esto porque no s√© si a nivel de c√≥digo haces referencia a los nombres de los huesos, a ver si puedes explicarme como cambiar tu personaje por el m√≠o (hace tiempo me configuraste un proyecto incluso, pero por m√°s que lo busco..no hay manera, perdido) o pasarme alg√ļn sitio d√≥nde ya lo hayas explicado, desde ya millones de gracias.

 

EDITO: He conseguido hacerlo, pero sí que tengo una duda que no consigo resolver:

 

El "Planar Speed" del animator está definido dentro de "States" como "Base Speed Limit", estoy haciendo una animación realista, primero empieza a andar, luego al trote y finalmente empieza a correr, me gustaría que todo el proceso fuera mucho más lento, pero para ello necesito subir el "Base Speed Limit", porque dentro del animator sino el "PlanarSpeed estaría limitado a 6" y en tan poco tiempo no se logra una transición de las animaciones realista. Hay alguna forma de poder subir el "Base Speed Limit" sin que el jugador gane velocidad?? A mí me gusta a 2 de velocidad, como mucho a 4, pero de esa forma es imposible ver bien la animación.

He cambiado la sensibilidad y gravedad en el Input pero a√ļn as√≠ necesitar√≠a m√°s "rango" en el animator para el par√°metro "PlanarSpeed", para as√≠ lograr el realismo que quiero en mi animaci√≥n.

Espero haberme explicado bien, mil gracias.

 

skeleton.png

Edited by Bydark

Share this post


Link to post
Share on other sites
On 4/6/2021 at 8:13 PM, Bydark said:

Es necesario seguir la misma estructura que t√ļ usas? (Armature/Nombres de los huesos - Character Mesh)

Perdón por responder tan tarde!

No, no es requerido, las referencias a componentes se buscan automaticamente. La estructura que yo propongo es una estructura óptima, es decir que puedes hacer varias cosas interesantes separando la parte visual de la parte física (collider + rigidbody). Lo que sí o sí es requerido es que todo lo relacionado al personaje esté contenido dentro de un "root" u objeto maestro (padre).

On 4/6/2021 at 8:13 PM, Bydark said:

En caso de que sí, los huesos deben tener los mismos nombres?

Pregunto todo esto porque no s√© si a nivel de c√≥digo haces referencia a los nombres de los huesos, a ver si puedes explicarme como cambiar tu personaje por el m√≠o (hace tiempo me configuraste un proyecto incluso, pero por m√°s que lo busco..no hay manera, perdido) o pasarme alg√ļn sitio d√≥nde ya lo hayas explicado, desde ya millones de gracias.

No, de hecho CCP no hace referencia a los huesos de ninguna manera. En la "Demo" mi personaje es un humanoide, gracias a esto puedo usar el avatar que Unity ofrece para acceder a los IK (por ejemplo).

Por ejemplo (estado LadderClimbing )

public override void UpdateIK( int layerIndex )
{
	if( !useIKOffsetValues )
		return;

	UpdateIKElement( AvatarIKGoal.LeftFoot , leftFootOffset );
	UpdateIKElement( AvatarIKGoal.RightFoot , rightFootOffset );
	UpdateIKElement( AvatarIKGoal.LeftHand , leftHandOffset );
	UpdateIKElement( AvatarIKGoal.RightHand , rightHandOffset );

}

void UpdateIKElement( AvatarIKGoal avatarIKGoal , Vector3 offset )
{
        
	CharacterStateController.Animator.SetIKPositionWeight( avatarIKGoal , 0f );
	Vector3 originalRightFootPosition = CharacterStateController.Animator.GetIKPosition( avatarIKGoal );


	CharacterStateController.Animator.SetIKPositionWeight( avatarIKGoal , 1f );
	CharacterStateController.Animator.SetIKPosition( avatarIKGoal , originalRightFootPosition + offset );
}

 

On 4/6/2021 at 8:13 PM, Bydark said:

Hay alguna forma de poder subir el "Base Speed Limit" sin que el jugador gane velocidad??

Ahora mismo el método usado para movimiento es muy pero muy simple, un MoveTowards que modifica la velocidad linealmente con el tiempo.

El base speed limit indica el target del MoveTowards (función de Vector3) del walk (no de run). Este valor será el valor final de velocidad obtenido, es decir que técnicamente no es posible, ya que mayor límite de velocidad + aceleración implica obtener una velocidad mayor.

Ya que es un MoveTowards (incluso si fuese un Lerp), quizás lo que más te importe a la hora de modificarlo es su "t factor" (el tercer argumento de este método). Si tienes el control de "t" entonces puedes controlar la velocidad como quieras, independientemente de sus límites. En mi caso uso acceleration/deceleration como variables "t".

 

On 4/6/2021 at 8:13 PM, Bydark said:

porque dentro del animator sino el "PlanarSpeed estaría limitado a 6" y en tan poco tiempo no se logra una transición de las animaciones realista

Jugar entre los valores de velocidad y los umbrales (threshold) del animator es fundamental. Quizás tratar de cubrir varios tipos de movimiento (parada, arranque suave, trote, correr, etc) todos al mismo tiempo (usando una simple funcion lineal) no sea una buena solución en tu caso.

Si realismo en las animaciones es lo que necesitas se pueden hacer dos cosas:

  1. Mejorar el script de movimiento. Meter curvas para lograr un movimiento menos lineal y más personalizable es algo que voy a introducir en 2.0.0. Ya esto pasa por el lado de la implementación de la lógica (por parte del usuario) y escapa al alcance del asset. De todas formas siempre trato de meter este tipo de cosas, de manera de facilitar un poco la parte del gameplay.
  2. Usar root motion, piensa en GTA 4/5 por ejemplo. No hay scripts ni nada de eso, el clip contiene la información de movimiento y solamente se lee el input del player. Con 1.3.3 puedes usar root motion para planar velocity y seguir usando la gravedad de NormalMovement.

 

 

Edited by lightbug
  • Like 2

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...