Mixamo
Para comenzar debemos descargar
nuestro personaje y sus animaciones. Para este ejercicio utilizaremos la página
web de Adobe, Mixamo.
Primero, descargamos nuestro
Character en pose T, es decir, con las piernas rectas y los brazos
horizontales.
Click en el Character -> Download
-> Format -> FBX For Unity(.Fbx)
Por último, debemos descargar las
animaciones, que para esta actividad serán Idle, Walking y Running.
Click en la
animación -> Download
-> Format -> FBX For
Unity(.Fbx)
-> Skin -> Without Skin
Unity
Una vez tengamos los personajes
debemos importarlos en Unity. Para ello los arrastramos a la ventana Project.
Sin embargo, y a pesar de que
tengamos el personaje y las animaciones, no podemos utilizarlas, ya que no
existe ningún elemento que las organice y les mande información de cuándo
actuar.
Xbot -> Character
Animator
El primer paso para hacer nuestro
Character Controller es crear algo que controle a nuestro Character. Para ello
vamos a usar el Animator
Window -> Animator
Entonces creamos un Animator Controller al que llamaremos
xbot_animation
Project -> Click der. -> Create -> Animator Controller
-> xbot_animation
Para que el Animator Controller
afecte al Character debemos seleccionar el personaje y
Inspector -> Animator -> Controller -> Click arrastrar
xbot_animation
A continuación, tenemos que insertar
las animaciones que queremos usar. Para ello las arrastramos al Animator.
Primero arrastramos la animación Idle, ya que necesitamos que esa sea nos salga
de color naranja, es decir, que sea el Default State (estado de serie). Después
tenemos que arrastrar las animaciones Walking y Running. Para que las tres
animaciones se repitan en un bucle y no se paren ni vuelvan al lugar de inicio
una vez terminadas, debemos seleccionar cada animación y:
Inspector -> Animation
-> Loop Time -> Activar
-> Loop Pose -> Activar
Después tenemos que crear
transiciones entre las distintas acciones mediante:
Click der. en el State -> Make Transition -> Click arrastrar
hacia la siguiente acción
Las transiciones deben realizarse en
ambos sentidos.
De Idle a Walking y de Walking a Idle
Empezaremos con las transiciones
necesarias para que el Character pase de estar inactivo (Idle) a andar
(Walking) y a volver a estar inactivo.
A pesar de tener las transiciones
hechas entre estas dos animaciones, aún no podemos controlarlas. Para ello
debemos crear un Parameter en las transiciones, al cual llamaremos Animation
Magnitude, y que indicará a la animación en qué momento debe comenzar.
Animator -> Parameter -> + -> Float -> Animation
Magnitude
Entonces realizaremos dos variantes
de este Parameter:
·
En
la transición de Idle a Walking. Seleccionamos esta transición y:
Inspector ->
Conditions -> Animator Magnitude -> Greater -> 0.1
-> Has Exit Time -> desactivar
·
En
la transición de Walking a Idle. Seleccionamos esta transición y:
Inspector ->
Conditions -> Animator Magnitude -> Less -> 0.1
-> Has Exit Time -> desactivar
Playmaker
A partir de este momento debemos
utilizar PlayMaker, para así poder añadir distintos estados para hacer posible
que el jugador controle al personaje.
El primer paso es seleccionar el
Character y añadir un FSM al que llamaremos Movement, y al que añadiremos
varios estados.
Inspector -> Add Component -> Play Maker FSM -> Movement
ESTADO 1 -> Idle
A este estado, de momento, le tenemos
que añadir tres acciones:
·
La
primera acción que debemos añadir es un Get Axis Vector.
State -> Action
Browser -> Get Axis Vector
-> Store Vector -> New
Variable -> Input Vector
-> Store Magnitude -> New
Variable -> FSM Magnitude
·
La
segunda acción se trata de un Set Animation Float.
State -> Action
Browser -> Set Animator Float
-> Parameter -> Animation
Magnitude
-> Value -> FSM Magnitude
-> Every Frame -> Activar
·
La
tercera acción consiste en un Float Compare
State -> Action
Browser -> Set Animator Float
-> Float 1 -> FSM Magnitude
-> Float 2 -> 0.1
-> Greater Than -> New Event
-> To walk
-> Every Frame -> Activar
Al terminar
de configurar esta acción nos aparecerá una nota avisando de un error. Solo
debemos hacer Click en ella y Unity la solucionará.
ESTADO 2 -> Walking
A este estado debemos añadirle 4
acciones:
·
Para
la primera acción debemos copiar el “Get Axis Vector” del ESTADO 1 - Idle
·
Para
la segunda acción debemos copiar el “Set Animation Float” del ESTADO 1 - Idle
·
Para
la tercera acción debemos copiar el “Float Compare” del ESTADO 1 - Idle, aunque:
-> Less Than
-> New Event -> To Idle
-> Greater Than ->
None
Aquí
también tenemos que hacer Click en la nota del error.
·
Si
dejásemos aquí nuestro trabajo el personaje solo andaría hacia delante. Es por
eso que hay que añadir una nueva acción que será “Smooth Look At
Direction”
State -> Action
Browser -> Smooth Look At Direction
-> Target Direction ->
Input Vector
Al terminar estos dos estados,
debemos añadir dos transiciones con Click arrastrar:
To Walk -> ESTADO 2 - Walking
To Idle -> ESTADO 1 - Idle
Animator
De Walking a Running y de Running a Walking
De vuelta en el Animator, debemos
crear las transiciones que llevarán al personaje de andar (Walking) a correr
(Running) y viceversa. Una vez creadas, debemos añadir un nuevo Parámetro, que
esta vez será Boolean, y lo llamaremos Running. Este hará que al pulsar un
botón (true) se active la acción de correr y que, por el contrario, al dejar de
pulsarlo (false), vuelva a andar.
Animator -> Parameter -> + -> Bool -> Running
Aquí también debemos crear dos
variantes de este Parameter:
·
En
la transición de Running a Walking
Inspector ->
Conditions -> Add Condition -> Running -> False
-> Has Exit Time ->
Desactivar
·
En
la transición de Walking a Running
Inspector ->
Conditions -> Add Condition -> Running -> True
-> Has Exit Time ->
Desactivar
Playmaker
Para hacer que el Jugador pueda
accionar la acción correr con un botón, debemos añadir y modificar una serie de
estados y acciones en Playmaker:
ESTADO 3 -> Running
A este estado le añadiremos una
acción que será Set Animator Bool
State -> Action Browser -> Set Animator Bool
-> Parameter -> Running
-> Value -> Activar
-> Every Frame -> Activar
Después copiaremos las acciones “Smooth Look at Direction” y “Get Axis Vector” del ESTADO 2 - Walking
La última acción que tenemos que
crear hará que al dejar de pulsar Shift Click el Character deje de correr:
State -> Action Browser -> Get Button Up
-> Button Name -> Fire 3
-> Send Event -> To Walk
Para finalizar, añadimos una
transición a To Walk y con Click arrastrar creamos una transición entre:
To Walk -> ESTADO 2 - Walking
ESTADO 1 -> Idle
Debemos volver al ESTADO 1 -> Idle
y copiar el “Set Animator Bool” del ESTADO 3 -> Running, con la diferencia
de:
-> Value -> Desactivar
ESTADO 2 -> Walking
Ahora tenemos que añadirle una nueva
acción a este estado, que consistirá en asignar la tecla Shift a la acción de
correr. Esta acción será Get Button Down.
State -> Action Browser -> Get Button Down
-> Button Name -> Fire 3
-> Send Event -> New Event -> Running
Además, también debemos pegar aquí la
acción Set “Animator Bool” que creamos en el ESTADO 3 –
Running, cambiando:
-> Value -> Desactivar
Para terminar con el ESTADO 2,
tenemos que crear una transición con Click der. -> Add
Transition -> Running
Y para terminar con el Character
Controller, solo tenemos que añadir transiciones con Click arrastrar entre:
Running -> ESTADO 3 -> Running
Detalles
Aunque hayamos terminado con el
Character Controller en sí, aún podemos añadir detalles que lo mejorarán, como
por ejemplo que la cámara siga al personaje, que cuando se termine el terreno
el Character caiga o que no aparezca ningún texto sobre qué estados están
activos mientras nos encontramos en el modo juego
Camera -> Main Camera
Para crear una cámara que siga al
personaje debemos crear un Empty Object al que llamaremos Camera Base
Hierarchy -> Click der. -> Create Empty -> Camera Base
Una vez creado, tenemos que meter la
Main Camera que nos viene de serie dentro
Hierarchy -> Click arrastrar hacia Camera Base
A continuación, seleccionaremos otro
Empty Object dentro del Character, y lo llamaremos Camera Follows. Una vez
creado, debemos colocarlo en la mitad del personaje.
Hierarchy -> Click der. -> Create Empty -> Camera Follows
Entonces, copiamos los componentes de
este nuevo objeto
Inspector -> Transform -> Ajustes -> Copy Component
Y los pegamos en Camera Base, ajustando
el objeto también a la mitad del personaje.
Inspector -> Transform -> Ajustes -> Paste Component
Values
Playmaker
El siguiente paso es colocar la Main
Camera en la posición que deseemos y añadirle un nuevo estado
ESTADO 1 -> Camera Movement
A este estado le añadimos una acción Move
Towards
State -> Action Browser -> Move Towards
-> Target Object
-> Camera Follows
-> Finish distance -> 0
Y otra segunda acción que se llamará
Mouse Look
State -> Action Browser -> Mouse Look
-> Sensitivity X -> 5
-> Sensitivity Y -> 5
Para una mayor comodidad en el manejo
de la cámara a la hora de jugar, podemos seguir los siguientes pasos:
Edit -> Project Settings -> Input
Inspector -> Axes -> Mouse Y
-> Invert -> Activar
Para finalizar, debemos regresar a
los estados del xbot Character, y en la acción Get Axis Vector del
ESTADO 1 - Idle, el ESTADO 2 -
Walking y el ESTADO 3, arrastramos la Main Camera.
State -> Get Axis Vector -> Relative To -> Click arrastrar
Main Camera
Character Controller
Si queremos que el personaje caiga
cuando se termine el terreno, debemos seleccionarlon y añadir un Component al
Character, que será un Character Controller, que debemos ajustar al tamaño de
nuestro personaje
Inspector -> Add Component -> Character Controller
State Labels
Para terminar, si no queremos que
aparezca ningún texto sobre qué estado estamos mientra estamos en el modo
juego, debemos irnos a:
Hierarchy -> Play Maker Guy -> Inspector -> Draw Active
State Labels -> Desactivar
No hay comentarios:
Publicar un comentario