IdealTwin Base Character
La clase IdealTwinBaseCharacter
proporciona una implementación base para ACharacter
. Esta clase integra funcionalidades esenciales que simplifican el desarrollo, brindando soporte tanto para controles estándar como para dispositivos táctiles. Ofrece una implementación básica que incluye:
Esta clase está diseñada para ser heredada y permitir la configuración rápida de un Character personalizado con las funcionalidades previamente mencionadas.
Esta clase es una clase Abstracta así que no se podrá usar directamente en el nivel. Para usarla hace falta crear una nueva clase de Blueprint que herede de esta o usar los otros Character
ya predefinidos.
Preset de configuraciones de Inputs
El componente IdealTwinInputComponent
utiliza el sistema EnhancedInput
, que permite configurar Inputs como Assets y utilizarlas entre diferentes proyectos sin necesidad de configurarlas en cada uno de ellos.
Este componente ya interactúa con las funciones creadas dentro del IdealTwinBaseCharacter
para funciones básicas como moverse, hacer zoom o rotar la cámara para la vista. Estos internamente son bindeados dentro de la clase para que se ejecuten directamente.
Gestión de las acciones de inputs desde Blueprint
Las implementaciones vinculadas se pueden utilizar llamando a las funciones que están expuestas y se pueden sobrescribir si no se utiliza el "Call Parent". Esto permite obtener los valores o cambiar completamente el comportamiento al recibir los inputs para gestionar el movimiento según se desee.

Esto permite que el personaje se controle de manera inmediata, eliminando la necesidad de configurar inputs desde cero.
Desplazamiento del Pawn ya Integrado
Gracias a los bindeos mencionado en el punto anterior, la implementación del movimiento del personaje está completamente configurada. Al colocar el personaje en el nivel, este podrá moverse de forma inmediata sin requerir configuraciones adicionales.
Esto se hace llamado directamente a las funciones de movimiento del UCharacterMovementComponent
que además de aplicarlo en todos los ángulos de movimiento permite configurar la sensibilidad de este.

Movimiento de Cámara Suave
La clase incorpora dentro del manejo de la cámara un componente USpringArmComponent
. Este componente se integra con la cámara para proporcionar características muy útiles para hacer diferentes funcionalidades:
Lag en los movimientos: Esto básicamente permite tener un movimiento retrasado en la rotación y el movimiento de la cámara respecto al personaje. Esto da la sensación de suavidad en el momento de desplazamiento y en el de rotación de la cámara, sirviendo tanto para visión en primera persona como en orbital.

Zoom de la Cámara con Parámetros
Utilizando el USpringArmComponent
también se ha agrega la posibilidad de hacer el zoom de la camara usando su caracteristica de TargetArmLength
que es el que define la distancia de la camara al centro de pivote del componente. Ajustando estos valores podemos tener un efecto de zoom teninedo estas caracteristicas:
Rango mínimo y máximo: Definido mediante propiedades expuestas en el editor.
Suavidad del zoom: Personalizable para crear transiciones de zoom más naturales.

Tanto en el IdealTwinWalkCharacter
como en el IdealTwinOrbitalCharacter
están presente esta configuración. La diferencia es que cuando se quiere una camara en primera persona la función de zoom estará desactivada pero seguirá teniendo la misma composición del componente al construirse con el valor a 0.
Implementación con SwitcherPawnComponent
IdealTwinBaseCharacter
está integrado con el componente SwitcherPawnComponent, que facilita el cambio dinámico entre diferentes pawns controlados por el jugador orquestado desde el Player Controller y usando GamePlayTags para hacer esta gestión.
Cada Character dentro del nivel puede crear el tag para cada uno de ellos y así poder hacer cambios entre ellos.

Soporte con el Modo Touch
La clase está diseñada para funcionar perfectamente en dispositivos táctiles. Usando los Preset Inputs, el personaje soporta:
Movimiento táctil: Toques en pantalla para mover el personaje.
Rotación de cámara táctil: Gestos táctiles para rotar la cámara.
Zoom táctil: Uso de gestos de pinza para acercar y alejar la cámara.

El soporte táctil está completamente integrado, eliminando la necesidad de implementar sistemas separados para dispositivos táctiles en lo que al Character
respecta.
Con esta implementación, IdealTwinBaseCharacter
proporciona una base sólida y versátil para personajes en proyectos de Unreal Engine, acelerando el desarrollo y facilitando la creación de experiencias de usuario altamente pulidas.