En esta conferencia, examinaremos la flotación.
El flocado tiene que ser una de mis técnicas favoritas.
Se trata de reglas sencillas que generan comportamientos complejos que resultan hipnóticos.
El Flocking se puede utilizar para generar procedimentalmente el movimiento de grupos de individuos a los que les gusta permanecer
juntos mientras se mueven hacia un objetivo común.
Me viene a la mente el vuelo de los pájaros, pero esta técnica puede utilizarse prácticamente en cualquier lugar.
Tienes un grupo que necesita comportamientos complejos y en movimiento que no quieres programar a mano.
En este taller, crearemos peces en bandada o en cardumen.
Así que en la unidad, vamos a crear un cardumen de peces en bandada.
Ahora, lo que necesitarás para esto es traer el paquete de la unidad de los peces que se adjunta a esta conferencia.
Y lo que obtendrás es este maravilloso pescado que hice.
Ahora, no soy el mejor animador o modelo o en el mundo.
Si tienes un pez mejor que éste, no dudes en utilizarlo.
Si pulsas el play en el momento en que has abierto la escena de natación, vas a ver a mi pez verde
aquí, que está moviendo la cola e intentando nadar.
Por supuesto, no va a ir a ninguna parte por el momento, así que vamos a utilizarlo como agente o bot
o como quieras llamarlo.
Dentro de nuestro sistema de flocado, lo primero que vamos a necesitar en la jerarquía es un objeto vacío
llamado gestor de flocado.
Así que eso va a mantener un seguimiento de todos los peces.
Muy bien.
Una vez hecho esto, vamos a crear un nuevo script.
Así que en tus activos, crea un script en C-sharp, y lo llamaremos también gestor de Flock.
Quieres adjuntar eso a tu objeto gestor de rebaños que está en la jerarquía.
Bien, empecemos a editar eso.
Vamos a abrirlo.
De acuerdo.
Así que lo que necesitamos en la parte superior son algunas cosas para mantener el control de todo.
En primer lugar, necesitamos un objeto de juego público para nuestro prefabricado de peces para que podamos crear peces de forma espontánea,
básicamente, dado el número de peces que configuramos para ser tan público int num peces, vamos a establecer que por defecto
a 20, que es un número bastante agradable para empezar.
Conjunto de objetos de juego públicos de todos los peces.
Así que una vez que se instancian vamos a ponerlos en una matriz para que podamos hacer un seguimiento de ellos
y controlarlos.
Y luego necesitamos un vector público tres para nuestros límites de natación, y este será el espacio en el que los peces pueden
nadar realmente.
Piensa, por ejemplo, en una pecera y en el tamaño de la misma.
Así que lo convertiremos en un nuevo vector tres y lo haré de cinco en cinco.
De nuevo, eso es algo que puedes actualizar si quieres hacer una más grande o más pequeña, ¿verdad?
Así que en el inicio, tenemos que instanciar todos nuestros peces.
Así que vamos todos los peces es igual a nuevo objeto de juego.
Ahora soy un pez.
Y entonces cuatro int i es igual a cero I es menor que numb.
Ojo de pez plus plus.
Y luego dentro de aquí vamos a crear una posición para iniciar nuestro pez.
Así que el vector tres pausa es igual a esta posición de transformación de punto.
Esto significa que la posición de los peces es relativa a la posición del jefe de la bandada.
Así que el gestor de la manada va a ser básicamente el origen de su pecera, que va a ser de cinco por
cinco por cinco.
Así que tenlo en cuenta.
Ahora, desde esa pecera, vamos a ir más un nuevo vector tres y vamos a hacer rangos aleatorios alrededor de nuestros límites de natación
de donde vamos a posicionar nuestros peces cuando los creamos por primera vez.
Así que este será el rango de puntos al azar, menos los límites de natación, punto x y luego queremos los límites de natación positivos,
punto x corchete, y queremos hacer eso tres veces más o dos veces más.
Es decir, lo copiaremos y lo pondremos aquí y aquí.
Y estas serán las posiciones Y y Z para tus peces.
Así que alinea eso.
Así que hazlo con un valor Y.
Entonces, haz que este sea el valor Z.
Y acaba con nuestro.
Línea de código con punto y coma.
Y luego una vez que tenemos que va a ir todos los peces posición I en nuestra matriz va a ser igual a una instanciación
instanciar pescado prefabricado en la posición que acabamos de calcular y vamos a darle una identidad catalana.
Así que sólo una rotación a cero para ese pez en particular que se crea.
Bien, guarda eso.
Volveremos a la unidad y probaremos la creación de estos peces.
Así que los prefabricados para los peces que encontrarás, tienes un pez verde aquí abajo y un pez rosa.
Así que por el momento sólo estamos trabajando con el pez verde.
De hecho, ambos son exactamente iguales.
Son colores simplemente diferentes.
Y si quieres crear peces de otros colores además del verde y el rosa, haz materiales
de otros colores y ponlos en esos modelos.
Muy bien, así que tenemos nuestro gestor de rebaño aquí, este pez verde, en realidad sólo puede eliminar.
No lo necesitamos porque el gestor de rebaños los va a crear.
Ahora mi gestor de rebaños está en alguna posición extraña en la que se puso, así que
podríamos querer ponerlo a cero en el mundo, 000 voy a hacer doble clic en él para que mi escena se centre en él.
También es posible que desee ir a su cámara principal e ir objeto de juego, alinear con la vista.
Así que también está mirando hacia esa posición 000.
A continuación, vamos a coger nuestro pez verde y ponerlo en nuestro gestor de rebaños en el inspector, y luego
podemos pulsar el play y ver lo que obtenemos.
Así que ahí están nuestros 20 peces.
Si volvemos a nuestra escena, podremos adentrarnos un poco más.
Todos están dentro de los límites de natación y en realidad no van a ninguna parte porque no hemos programado el
movimiento, pero están animados.
Así que eso es un comienzo.
De acuerdo.
Bueno, ponte en plan gestor por un momento.
Vamos a volver al proyecto y vamos a crear otro script que pondremos en nuestro pez prefabricado.
Así que lo llamaremos rebaño.
Así que quieres soltar el script Flock en tu pez verde y en tu pez rosa.
Así que arrastra y suelta eso en ese prefabricado y arrastra y suelta eso en ese prefabricado y cualquier otro que hayas
creado en diferentes colores.
Así que vamos a abrir nuestro script de Flock y aquí vamos a subir a la parte superior.
Vamos a establecer un flotador para la velocidad.
Ahora queremos establecer esta velocidad desde nuestro script de Flock Manager.
Así que en realidad voy a crear un singleton allí o un puntero estático para que podamos usar eso para cada uno
de nuestros peces.
Así que de vuelta en Flock Manager en la parte superior, vamos a crear un gestor de bandadas estático público llamarlo si estoy en capital.
Así que gestor de rebaño Y luego en el inicio vamos a gestor de rebaño es igual a esto para configurarlo.
A continuación, crearemos algunos valores más que podemos establecer a través del inspector, que serán nuestra velocidad mínima
y máxima de alimentación para nuestros peces.
Así que en la parte superior aquí vamos a poner la configuración de la cabecera y los peces.
Y luego dentro de aquí, queremos un rango.
Así es como puedes programar diferentes tipos de elementos de interfaz de usuario para tu inspector si no lo has hecho
antes.
Así que vamos a crear una cabecera que es un título.
Luego queremos el rango, que será un deslizador entre cero y 5. 0 F y luego también queremos un float público min speed, que
será el valor para este rango en particular.
Y luego queremos esto de nuevo y tendremos una velocidad máxima aquí abajo.
De acuerdo.
Así que si guardamos esto y volvemos rápidamente a la unidad, encontrarás en tu gestor de rebaños que ahora tienes estas velocidades
mínimas y máximas que puedes establecer para tus peces.
Así que mientras estás aquí, es posible que desee darles un poco de un valor para empezar porque
vamos a probar eso.
Así que en el script de Flock, podemos usar esos valores para configurar nuestra velocidad.
Así que vamos a ir en este caso, que la velocidad va a ser igual al punto de gestor de rebaño.
F m punto de velocidad mínima y gestor de rebaños punto fm punto de velocidad máxima.
Y realmente usaremos esos valores dentro de un rango de puntos aleatorios como ese.
Así que va a establecer la velocidad para los peces al azar de nuestro punto estático que está de vuelta en nuestro gestor de rebaño para
esos dos valores que se han establecido.
Sí.
Así que realmente ver esta velocidad en acción.
Vamos a entrar en nuestra actualización para nuestro rebaño y vamos a ir este punto transformar, punto traducir y capital
traducir.
Y vamos a avanzar por el eje Z cero cero y será la velocidad multiplicada por el tiempo, punto delta, tiempo
para suavizar el movimiento.
Bien, eso lo va a mover.
Pongamos traducir no transformar.
Así que guardémoslo y ahora probaremos esto.
Así que deberíamos tener peces avanzando a diferentes velocidades.
Pulsemos el play y echemos un vistazo.
Y.
Sí.
Dip.
Ahí van.
Así que algunos peces son más rápidos que otros.
Bien, esa es la configuración básica de todo nuestro código en cuanto a la vinculación y la creación de peces y todo eso.
Cuando volvamos en el próximo vídeo, empezaremos a trabajar con el algoritmo de flocado.