Recordemos, teníamos la bola por aquí en medio y solo he hecho una cosa que cuando pulsemos una flecha
u otra esto giraba y no gira, porque la velocidad que le hemos dado a la cámara está en el focal point,
está en cero.
Entonces no sé qué velocidad puse el otro día voy a poner 10.
30 pensarque es el número de ángulos que gira hareis al segundo.
Da una vuelta entera, son 360 y quereís girar en 6 segundos 3, 60, 6.
Son 60 grados.
No sé si se va muy rápido.
Hasta que no pongamos el movimiento de la bola será un poco difícil.
A lo mejor así va a mirar si está bien, más rápido, pero a lo mejor a la hora de controlar la bola
se va de madre, que podría ser.
Vamos a hacer el control de la bola, así podemos decidir las velocidades de todo.
El control de la bola va a ir en un scrip.
Cómo se va a llamar scrip a varias leyes y controles?
Creamos nuevos clientes techar player control, leer perfecto a quien le asignaría el player control
de la bola, que de momento sería más fier.
Pero vamos a cambiarle el nombre, vamos a llamarle a este player y de hecho recordar que siempre hay
una etiqueta llamada player.
Aprovechad y se la dais al Player Controller y así si hay que localizarlo por etiqueta, recordar que
Puntofijismo Bizak Player lo pondremos encontrar fácilmente.
Entonces le damos el Player Controller a la bola nuestro player y abrimos el Player Controller.
El Player Control va a ser muy fácil porque la bola sólo se va a mover en un eje.
La bola solo se moverá hacia adelante y será el combinar el movimiento de la cámara con el movimiento
hacia adelante el que nos va a dar el movimiento tridimensional.
Lo digo porque si hacemos que la bola se mueva en dos dimensiones, tendremos un problema constante
con la cámara.
Vale, porque la cámara está cambiando nuestro punto de referencia constantemente.
Y si le añado a esto dos movimientos, dos ejes de movimiento, dos grados de libertad, será un problema
bastante gordo.
De hecho, nosotros lo que vamos a hacer es muy simple vamos a volver a utilizar el motor de la física
para que la bola se mueva.
Recordad que se utilizó el translated del Rothe.
Ya lo vimos en el prototipo.
La bola se mueve así, mientras que yo lo que quiero es que gire.
Si quiero que gire, la forma más fácil es aplicarle una fuerza a la fuerza y la propia bola.
La fuerza que le aplicas, si siempre es en la dirección hacia alante, la irá rotando.
De hecho, en este caso ni siquiera me hará falta un torque, porque la fuerza en una cosa que circula
siempre la hace rotar.
No me hace falta un torque.
En este caso, si fuera un cuerpo rígido, estilo, un personaje y demás, si lo que quieres es aplicar
un torque para rotar sobre sí mismo, por ejemplo, pero en el caso de una bola, sólo con aplicar una
fuerza vaya acá al otro lado vais a conseguir el efecto de que la bola de vuelta sobre sí mismo.
Entonces el script es muy fácil.
Voy a haceros la letra más grande para que veáis cómo vamos a utilizar la física.
Necesito una variable.
Para qué?
Hemos hecho dos variables para que?
La aceleración barra fuerza y
el input que lo podemos poner una variable no lo había pensado, pero sí una variable y una cosa para
moverlo por física.
Entonces por parte sería Privat Ranjit Body y ya sabéis, barra baja, Regin Body.
Si quieres utilizar la nomenclatura de propiedades estándar de Unity, todas las propiedades van con
barra baja, siempre que coloques una referencia a un bodhi o a cualquier otra componente en el estar.
Barra baja rigidez bodhi igual a Recomponen entre diamantes Ranjit Body.
Esto tiene que ser automático a la que ponéis la de arriba ponéis automáticamente la de la de abajo.
Si luego la fuerza de movimiento o la fuerza de giro incluso le podéis llamar velocidad porque será
proporcional, cuanto mayor será la fuerza aplicada, mayor será la velocidad.
Vamos a llamarle públic flow
mulford fuerza de movimiento y esta fuerza de movimiento se la habrá que aplicar directamente a nuestro
Hurriyet Body.
Entonces, dentro de las droit habrá que hacer dos cosas.
Lo primero es obtener el eje de movimiento.
De hecho lo podemos hacer con variable publica aquí si queréis o privada me da igual, pero como el
movimiento de la bola solo va a ser consultado y utilizado dentro del ABC, podéis hacerlo con una variable
dentro delante.
No hay ningún, no hay ninguna diferencia.
Podéis declarar la variable float dentro de la deuda y así ya no tenéis que poner ni pública ni privada,
porque es una variable local.
Solo existe dentro de la Apdayc.
Le voy a llamar Forward Input y será lo que ya sabéis.
Input punto de taxis.
Recordad que el horizontal era para la cámara.
Por tanto, el vertical será para la bola.
Entonces así tenéis la cantidad de movimiento que deseáis para la bola y lo único que hay que hacer
es al body barra baja.
Body le aplica una fuerza autofocus.
En principio, Malet en la primera fase va a ser, pues mover la bola hacia alante, mover la bola hacia
delante se traduce en Vector 3 forward que multiplica la fuerza Bofors por el delta tail.
De hecho, no mentirá por el del tratais.
No voy a poner del tatin, voy a poner forwarding.
Normalmente el tiempo lo utilizamos cuando tenemos formulas de cinematica espacio de velocidad por tiempo.
Las fuerzas no dependen del tiempo.
Vale, por eso en el de Authors no voy a poner deltratamiento simplemente la cantidad que pongo en Fours.
Será la cantidad que se va a aplicar por el forward input.
Eso si, para saber si tengo que ir para adelante, para atrás o si no hay nada, pulsaba pulsado que
no se mueva en ninguna dirección.
Esto quiere decir que si ahora guardamos y nos vamos al editor de Unity, básicamente con las flechas
WPS o flecha arriba flecha abajo, vamos a obtener la cantidad de movimiento desde 1 a menos 1.
Ese valor desde uno menos 1 se multiplicará por la cantidad de fuerza.
Ahora veremos qué numero le ponemos y se aplicará en la dirección forward de la bola.
En este caso vamos a ver el efecto porque vais a ver que
venimos aquí.
Recordad que en este caso volvemos a utilizar el motor de físicas Authors.
Ya lo conocemos.
Tenemos la opción de movernos en 3D y ahora pues nuestro player tiene un campo llamado Mulford.
Le voy a poner 10.
No sé si es mucho o es poco.
Vamos a ver y cuando yo me muevo lo veais, que la bola se me mueve en la dirección forward.
Si 10 es un poco demasiado, pero bueno, si muevo la cámara, qué le pasa?
Pues se sigue moviendo la dirección forward.
Por qué?
Porque aunque mi cámara ha girado, estoy arriesgando mucho.
Aunque mi cámara ha girado el eje, el eje forward sigue siendo el mismo.
Es decir, el eje forward siempre España.
Fijaros donde está aquí el eje forward y Unity el de la Z de color azul siempre está mirando ya.
Entonces mi bola ahora solo es capaz de moverse en la dirección dada por el eje forward.
De hecho, si yo ahora tomara la bola la rotará, por ejemplo, para que mire, ya fijaros ahora donde
mira la dirección forward, o sea, la dirección forward de la bola mira hacia el eje X de Unity.
Entonces, cuando yo viniera aquí, esto vuelve a ser mi bola.
Aplico el movimiento forward con una velocidad o una fuerza más pequeña que antes.
Fijaros que me da igual donde mire lo que siempre se mueve en la dirección Z de Unity, porque este
vector 3 forward es el vector 3 por huir de la escena de lluny de todo el universo.
Vale entonces la fuerza que se aplica es siempre en la dirección Z del motor de Unity, y esto es importante
porque esto significa que no tenemos control hacia donde queremos movernos, porque la dirección solo
es la forward.
La diferencia entre los juegos que teníamos antes y éste es que en este le hemos dado la libertad que
el jugador controle la cámara.
Si el jugador puede controlar la cámara, la dirección forward cambia constantemente.
No es siempre el forward de la escena.
A lo mejor, pues el forward de la escena está pallá, pero mi cámara está mirando para allá.
De modo que el forward de la escena, que sería para ella, no se corresponda con el forward de la cámara
que sería para allá.
Lo veis?
Esto es la diferencia entre utilizar coordenadas globales, que es lo que hemos estado utilizando hasta
el momento y coordenadas locales.
Las coordenadas locales siempre dependen del punto de referencia.
Esto es como el experimento que seguro que os han contado alguna vez de que estáis dentro de un tren
y pasa delante vuestro otro tren.
Cómo saber si el que se mueve eso es vosotros sois el otro o sois los dos?
La única forma que hay es buscar un punto de referencia que debería estar inamovible.
Por ejemplo, un árbol fuera del tren, porque si no, si veis que el otro tren se mueve, podría ser
vosotros, podría ser el otro.
Vale, entonces en este caso ocurre exactamente lo mismo.
Vosotros ahora estáis dentro del tren.
El tren significa que la propia bola se mueve con respecto a un sistema de coordenadas que es global.
Y cuando te quieres mover para alante, pues vector 3 forward es para alante en la escena, para alante,
en la escena donde apunte el vector azul de Unity.
Sin embargo, si nosotros queremos hacer un movimiento que sea relativo y de hecho aquí voy a poner
fuerza para probar.
A ver qué tal para que sea la fuerza de movimiento, cuando necesitamos que el movimiento sea relativo.
Hay que cambiar el sistema de referencia.
Hasta ahora, cuál era nuestro sistema de referencia de Unity y Unity?
Tiene su sistema de referencia?
Esta es la X de estas.
Esta es la X, la y esta es la Z y sanseacabó.
Sin embargo, ahora yo ya no me voy a basar en el sistema de Unity.
Ahora, si os acordáis, hay un sistema de referencia nuevo.
Cuál es el sistema de referencia nuevo?
La cámara gira y gira en torno a un punto, de modo que cuando yo os pongo esto, fijaros si yo selecciono
el punto focal a la izquierda, tenéis la escena, a la derecha tenéis el juego.
Cuando yo muevo la cámara fijaros que mi punto focal es el que se mueve.
Lo veis que aquí cambia el sistema de referencia del punto focal.
Entonces cuál va a ser el truco?
El truco va a ser que ahora la dirección forward va a tener que ser la del punto focal, porque es el
punto focal quien dice hacia donde está mirando la cámara.
Ojo, podría usar la cámara también.
Lo que pasa es que la cámara está inclinada.
Donde está la cámara que está inclinada?
Claro, si yo aplico la fuerza en la dirección forward de la cámara, voy a intentar que la pelota atraviese
el suelo.
Voy a intentar que se vaya pa abajo.
Sin embargo, si utilizo el forward del punto focal, fijaros que el forward del punto focal siempre
es una dirección forward en el plano de movimiento y a la que lo único que tengo que hacer es que la
dirección de movimiento tiene que ser a la que apunta la cámara.
Si esto básicamente serían coordenadas locales porque dependen de un objeto local.
Así que en lugar de que nuestra bola ruede, rodar rueda, bien sea rodar el movimiento de rodar, ves
que lo hace correcto, que se mueve, lo único que solo lo puede hacer en un eje.
Recuerda que también le dais una fuerza, que le dais una fuerza.
Significa esto que cuando levantas no separa?
Sigue rodando hasta que la inercia lo para?
Vale, si queréis que se pare más o menos, recordad que todos los bodies tienen aquí el drac.
En este caso el Drac.
Si se lo sube un pelín, conseguiré que se pare antes.
Lo veis?
De modo que cuando yo muevo para alante, la fuerza me lo mueve.
Como ahora tengo un drac bastante alto a la que levanto se frena antes, vale.
Luego jugaremos con estos parámetros para hacer que se separe correctamente como queremos.
Lo que pasa es que este vector 3 forward que tenemos aquí como dirección, pues no me sirve para nada.
Qué tengo que hacer?
Pues necesito que mi Player Controller sepa en todo momento dónde está mirando el punto focal.
Vale.
Yo necesito saber el focal point está por aquí, en el suelo donde mira.
Y si necesito saber dónde mira, hay una forma muy fácil.
Vale que es en el Player Controller vamos a colocar una variable Public Game Object Focal Point para
que esa variable sepa exactamente cuál es nuestro sistema de referencia.
La he puesto pública por un motivo.
Si la pongo pública, recordad que la puedo arrastrar en el editor.
Es decir, con esta variable pública yo ahora me puedo ir al editor y el propio player le va a salir
aquí una caja para arrastrar el focal.
Lo veis aquí?
Entonces yo puedo arrastrar el focal point de la jerarquía al escribir.
Sin embargo, aunque esto está bien y es muy fácil.
Recomendación a futuro?
Lo suyo es que la variable sea privada.
Y si es privada, que utilizais?
Os acordáis?
Gameshop GEC en mayúscula punto final y escribís aquí el nombre del gameshop ya que era focal point.
Si, si lo haceis privada nadie la puede cambiar, si lo haceis pública la puede cambiar y si lo haceis
privada lo que necesitáis es el nombre exacto.
Vale, entonces yo lo voy a dejar pública.
En este caso no hace falta lo copia y esto lo voy a dejar publica para poder arrastrar.
Pero que sepáis que en el futuro lo suyo es utilizar.
Es mejor utilizar en el futuro la línea de código que sería Focal Point igual a Game Objects en mayúscula
punto final y hacerlo por nombre o por etiqueta, como queráis.
Si es por nombre, el mío se llamaba Focal Espacio Paint.
Recordad que el nombre que colocamos aquí, este que hay aquí, tiene que ser exactamente exactamente
exactamente el mismo que hay escrito aquí si no da error.
Bueno, en mi caso publica para arrastrarlo fácilmente.
Recordad cuanto más cosas.
Junichi Menos hay que programar, pero también más inseguro es porque esto significa que tú vienes aquí
y a tu play le arrastras como focal point la isla.
Vale entonces para girar en torno al sistema de referencia de la isla, que vete a saber tu cuál es,
por tanto, nuestro focal point.
Vamos a girar en torno al focal point y la lógica es muy simple donde antes nos movíamos en la dirección
vector 3 forward que era el forward de Unity.
Ahora ya no va a ser vector 3 forward, sino que será el forward de nuestro focal point.
Entonces será focal point del focal point.
Necesitáis el transform, que es transforma el que tiene posición, rotación y escala y del transporte.
Obtener esa dirección forward vale.
Básicamente esto es.
Vamos a ver si funciona o guardamos, pero fijaros que es lo que ha cambiado la dirección es la dirección.
Siempre se va a mover hacia alante en la dirección forward de mi sistema de referencia y mi punto focal.
Por tanto, si guardamos y me voy para Unity, vamos a darle al play con la flecha.
Voy a poder girar la cámara y ahora fijaros que siempre se mueve para alante.
Tengo que bajarle la fuerza.
Está muy alta.
A ver.
A ver, ahora si yo muevo para alante en esta dirección, me muevo para alante, para atrás, se giró
la cámara y me muevo.
Ves que ahora me muevo en la dirección en la que estoy mirando en todo momento.
Vale, que pasa es que tengo que hacer que frene algo porque se me desliza por el suelo a ver fuerza.
3.
Y como es un rally body, le voy a poner un poquito de TRAC 0,5 para que se me frene.
Porque si no es que es muy difícil de controlar.
Así, si me jiro que me muevo para allá, para acá.
Veis que la bola se va moviendo ahora, en todo caso ajustando vosotros mismos.
El Drac para que se os frene paulatinamente, si queréis no será una pista de hielo.
Y la fuerza que le aplicas?
Yo en mi caso, le he dejado fuerza.
3.
Si queréis que la fuerza sea más alta que más alta.
Entonces ahora tenéis tres grados de configuración, que es la velocidad a la que gira la cámara.
La fuerza que le chufas a la bola y el drac, el rozamiento con el suelo para conseguir el efecto.
Pero veis que ahora por lo menos ya conseguimos que se mantenga dentro de la isla y que se vaya siempre
hacia la dirección en la que nosotros estamos mirando.
Entonces hay que llegar a controlar la bola.
Subirle un poco más la fuerza a cinco era demasiado.
Pero ahora sí que puedes combinar los dos movimientos, las fechas horizontales para mover la cámara
y la flecha vertical para mover la bola en la dirección en la que mirais.
También os recuerdo que la bola pudo pararse a w palante y patrás o las flechas arriba abajo para que
la fuerza que aplica sería para arriba, para abajo y de hecho aquí se os selecciona el punto focal
en la dirección en la que mira mi cámara, o lo que es lo mismo, mi punto focal.
Cuando yo pulso para alante ves que se mueve en la dirección azul.
Fijaros aquí donde mira la dirección azul.
Cuando yo pulso que se va para la dirección azul, me voy para allá, se va para allá, para acá me
va a caer.
Lo veis?
Que se mueva para la dirección azul?
Siempre intenta irse a la dirección en la que mira el punto focal.
Ojo, no es que se vaya para el punto focal, es para la dirección en la que mira el punto focal.
Fijaros que si yo miro pa ya veis que me voy paralelo porque es una dirección.
No me voy para el punto, me voy en la dirección en la que mira el punto.
Vale.
Por ejemplo, si yo hago que mire para allá, me voy a mover paralelo a la dirección paralelo.
Aquí al eje de color azul no me voy para el punto focal.
O sea, no siempre voy a tender a irme en medio.
Es lo contrario.
Es en la dirección en la que miro y me he vuelto a caer.
Vale, pues configuras vosotros mismos velocidad de rotación de la cámara, velocidad o fuerza del cacharro.
Este de la bola y rozamiento vale rozamiento en forma de drag, tanto lineal como angular, hasta que
el movimiento sea el que desees.
Mi recomendación es que no dejéis el cero porque es un juego basado en físicas y si lo dejáis en cero,
lo que le va a pasar a la bola es que irá rotando y como levántense, seguirá para adelante.
Y de hecho aquí le he puesto drag.
Yo creo que sería mejor en Rock Angular, porque lo que hacéis es que rote.
A ver, le voy a subir el Drake angular.
También pensaba que cuanto más tiempo está pulsado, más fuerza le dais.
Os acordáis el Authors aquí?
En este caso no le he puesto ningún parámetro, sólo le he dicho la cantidad de fuerza.
Recordareis que hay un segundo para otro, que es el Force Mouth.
Si queréis que dependa o que no dependa de la masa y demás, o que sea un impulso, la fuerza se le
dé todo de golpe.
En este caso, cuál utilizaría de los cuatro?
Tiene sentido que cuanto más tiempo está pulsado el botón más acelere, mayor sea la fuerza que se le
aplica.
Acceleration es el que no depende de la masa, se moverá igual sea una bola de un kilo o de cien kilos,
el equivalente teniendo en cuenta la masa, es fors.
Vale recordar que el impulso y el veloz hiciera toda la fuerza aplicada en un instante.
La otra es paulatina.
En este caso, para este juego, este juego fijaros que está hecho, además, para que el protagonista
sea la física.
Es un juego donde cuanto más realista sea la física, mejor será algo simple.
Y punto pelota.
Punto pelota.
Entonces el punto fors es el adecuado?
Vale jugar.
De hecho, es el por defecto.
No vereis diferencia.
De hecho, aquí esto es muy divertido porque ahora podéis hacer, como le habéis especificado, que
el formato es de tipo fuerza.
Aquí podéis probar qué le pasaría si esta bola pesara 100 kilos.
Estoy impulsando Bale, estoy impulsando Veus que le cuesta muchísimo moverse porque es una bola de
100 kilos.
Aulet con la misma fuerza que estoy aplicando, como la bola es más pesada, le cuesta muchísimo más
moverse.
Si yo le pongo aquí a la bola, que fuese 100 gramos, pues con la fuerza a tomar por culo se me va
la bola.
Vale recordar que la ecuación de la física es muy fácil.
Fuerza es igual a masa por aceleración.
Vosotros lo que definís es la fuerza.
Cuanto más grande es la masa para que el producto de la fuerza, menor tiene que ser la aceleración
para que se os compense lo contrario cuanto más pequeña es la masa.
Si la fuerza es fija, pues la aceleración puede ser más grande.
Entonces, al final es un balance.
Por eso te he dicho que el Montfort te da esa dimensión extra de poder jugar con la masa de la pelota.
Por ejemplo, podrían haber power ups.
Por qué no que aumentaran o disminuyera la masa de la bola?
A ver, ahora la masa de la bola solo la uso para moverla.
Pero cuando me aparezcan los enemigos en la escena, mi bola que retirar otras bolas del escenario.
Cuanto más pese mi bola al colisionar, mayor será la fuerza que ejercerá sobre la otra bola, por tanto,
más posibilidades de echarla.
Lo contrario cuanto más liviana sea mi bola, si las otras son más pesadas que yo en el choque, la
que tengo de perder soy yo.
Y esto nos puede servir para el gameplay, porque podrían haber bolas ligeras, bolas, medias y bolas
pesadas.
Entonces las bolas pesadas.
La estrategia sería intentar que vengan para mí cuando vengan, para mí, hacerle una finta para que
la bola se caiga, mientras que las bolas livianas podría ser embestir contra ellas, porque yo soy
más pesado que ellos.
Entendéis que aquí el protagonista tiene que ser la física porque es la que os va a dictaminar el gameplay.
Si vosotros cambiáis, las masas cambias, las fuerzas cambian, las aceleraciones, cambiáis el rozamiento
vuestro gameplay y el mío se parecerá a una castaña.
Será el mismo escenario o serán los mismos protagonistas?
Pero como habréis cambiado las reglas de vuestra física y de mi física, los juegos eran totalmente
diferentes.
Variantes.
Podríais cambiar del settings?
La física.
Acordaros la gravedad en físico.
Podríais cambiar la gravedad en lugar de tener una aceleración de menos 9,8, fuera mayor, fuera superior
para que pareciera que estáis en la luna con una gravedad inferior.
Podríais añadirle a la bola lo que ya conocéis, que es el físico material.
Os acordáis del físico material?
Ahora también.
No tiene mucho sentido porque no colisiona, sólo se cae, pero a la que pueda chocar.
Un físico material de balancines permitiría que al chocar el otro saliera disparado como si fuera un
efecto muelle.
Vale, entonces es muy divertido porque todas estas cosas os permiten, por así decirlo, cambiar el
gameplay, pero dramáticamente se parecen un montón.
Si va, perfecto.