Primero, para crear nuestro personaje, creamos un blueprint de clase Carácter y le damos nombre a nuestro personaje (para este ejemplo, le llamaremos Jack).


Colocamos un Player Start en el escenario en el lugar donde queremos que se genere el personaje. Para decirle al motor qué personaje queremos que se genere en el Player Start le damos a la pestaña superior Blueprints y en Project Settings: Gamemode: Gamemodebase le damos a Create - GameMode para crear un nuevo Modo de Juego.


Abrimos el GameMode que acabamos de crear y en Detalles, en Default Pawn Class seleccionamos nuestro personaje que acabamos de crear (en este caso, Jack). En Ajustes de nuestro proyecto seleccionaremos el GameMode que acabamos de crear.


Turno de configurar nuestros controles. Abrimos los Ajustes del Proyecto y en Motor - Entrada configuramos nuestros controles de la siguiente manera (podemos seleccionar otros controles distintos a los de este tutorial).


Vamos a configurar esos controles en nuestro personaje, para ello, abrimos nuestro personaje y configuramos el blueprint del personaje de la siguiente manera.



Y ya tendremos nuestro personaje listo para que funcione con los controles. Para más información, aquí os dejo el vídeo.






Primero, importamos la animación a nuestro personaje y nos fijamos en cuántos segundos dura la animación.

Seleccionamos un botón de acción para nuestro personaje en Ajustes del proyecto - Motor - Entrada


Configuramos el Blueprint de nuestro personaje para que se ejecute la animación al pulsar el botón acción que hemos configurado, creando la variable de tipo boolean "reproanim".


En donde reproduciremos la animación de golpear seleccionándola en "reproducir la animación", pondremos el retraso de lo que dure la animación y después volveremos al blueprint de animación del personaje con "ajustar clase de instancia de animación". Todo ello se puede hacer más ordenado desde el blueprint de animación del personaje, pero para este tutorial básico lo realizaremos así.

Creamos la variable "golpeando" de tipo boolean. Colocamos un "Componente de la escena" en nuestro personaje para hacer el Linetrace y lo configuramos de la siguiente manera. Creamos dos variables de tipo vector llamadas "ImpactPoint" e "ImpactNormal" y las ajustamos a la salida de "Romper resultado de golpe".


Hora de crear el material ladrillo. Abrimos cualquier material ladrillo ya creado en Starter Content y le hacemos las siguientes modificaciones colocándolo en "desplazamiento de la posición global". En donde hacemos un Vector Parameter que llamaremos "Posición", un ScalarParameter que llamaremos "RadioRebote" ajustado a 300 por defecto; y un Vector Parameter que llamaremos "Impacto". Una vez creado, hacemos Instancia de Material sobre nuestro material.


Creamos un Blueprint de clase actor y colocamos un muro seleccionando cualquiera que incluya el Starter Content y le colocamos la Instancia de Material que acabamos de hacer. También, añadimos un Box Collision en el muro para que detecte si nuestro personaje está cerca del muro.


Creamos la variable de tipo Boolean "estadentro?". Seleccionando el Box Collision, configuramos el Blueprint de la siguiente manera.


En el evento Begin Play seleccionamos nuestro muro y en la función "Crear instancia de material dinámico" click derecho a "return value" y hacemos "promote to variable" y la llamamos "Material".


Configuramos el Evento Marcar. Seleccionando el muro utilizamos la función "En componente golpear" y obtenemos la variable Impact Point de nuestro personaje que conectaremos con "ajustar valor del parámetro del vector" con la variable Material que hemos hecho antes, así como la variable "golpeando".


Creamos una línea de tiempo y una pista de punto flotante y la configuramos tal que así.


Conectamos la salida del "ajustar valor del parámetro del vector" anterior y obtenemos la variable Impact Normal de nuestro personaje para configurar el blueprint de la siguiente manera.


Ya está todo preparado para funcionar. Vídeo del funcionamiento del tutorial.