Tabla de contenidos

Introducción

Bienvenido a la parte 2 de mi serie de sonido de diseño sobre la implementación de eventos de sonido que utilizan la Unidad y FMOD, que se ve en la fabricación de nuestros juegos más personas con discapacidad visual de ruedas. El diseño para la accesibilidad no es sólo grande para la inclusión, sino que también ayuda a hacer un juego más entretenido para todos! En este tutorial se sigue directamente desde el último, por lo que si usted no ha leído la parte 1, por favor echa un vistazo por primera vez aquí.

En la Parte 1 hemos creado un proyecto FMOD Estudio e integrado en la Unidad. a continuación, cubrimos los fundamentos de eventos FMOD, la base para la mayor parte de nuestra lógica audio del juego, teniendo una gran cantidad de esfuerzo por parte de la programación de la Unidad y presentarlo de una manera más intuitiva en FMOD estudio. En este tutorial vamos a aprender acerca de múltiples instrumentos para añadir más variación y la creación de un poco más ambiente a través de cambiar los sonidos de pisadas sobre la base de la superficie que el jugador está caminando sobre. He incluido un script pasos personalizadas que se demuestra el acceso lógica FMOD y arranques. ¡Hagámoslo!

Importar archivos de sonido en FMOD Estudio

Comience abriendo el proyecto existente en la unidad y también el proyecto FMOD integrado en FMOD estudio. Vamos a utilizar una combinación de activos de la Parte 1 y la Parte 2 de este tutorial. La parte 2 activos suman un modelo 3D de una impresora, una impresora y sonido sonidos informáticos adicionales que va a utilizar para agregar más variación.

No se pierda! extremos de la oferta en

  • Accede a los más de 200 cursos
  • Nuevos cursos añadió mensual
  • Cancelar en cualquier momento
  • Los certificados de terminación

    ACCESO ahora

    Vamos a la importación de todos los archivos de sonido que usaremos en el FMOD Bandeja de audio. Si, como yo, todavía no ha añadido los efectos de sonido no utilizados de la Parte 1 a su FMOD Bandeja de audio a continuación, vamos a hacer eso ahora. En FMOD Estudio vaya a Ventana> Bandeja de audio (o pulse Ctrl + 3 en el teclado). Ahora arrastre todos los archivos de sonido de pisadas en la parte 1 de su explorador de archivos en la ventana de la bandeja de audio.


    A continuación haga lo mismo para el ordenador y la impresora sonidos extra de la Parte 2 activos cremallera carpeta. Recuerde que este proceso crea duplicados de los archivos del proyecto FMOD Estudio carpeta por lo que probablemente no debería estar importando archivos que ya están en las carpetas de proyecto de unidad o FMOD o estará perdiendo una gran cantidad de espacio en disco (sonido de alta calidad los archivos son bastante considerable). Si ya poner los archivos de sonido en las carpetas de proyecto simplemente moverlos al Proyecto FMOD / carpeta de Activos -. Esta es la carpeta de destino para la Bandeja de audio

    FMOD Multi-Instrumento Contenedores

    Lo primero que vamos a hacer en FMOD Studio es añadir algunos sonidos adicionales y la variación aleatoria para el evento de audio computer_hum persistente. En lugar de simplemente zumbido, quiero añadir algunos clics al azar y los sonidos que hacen las computadoras utilizando FMOD múltiples instrumentos (anteriormente conocido como Multi sonido en caso de cualquier confusión). Esto también sirve como una buena práctica, ya que vamos a utilizar instrumentos multi de los pasos por delante. Vamos a poner el instrumento multi en una segunda pista de audio en caso computer_hum. Haga clic derecho en la cabecera de pista de audio existente y haga clic en Agregar pista de audio.


    A continuación, haga clic en el cuerpo de la nueva pista de audio y haga clic en Agregar múltiples instrumentos.


    Ahora haga clic en el Instrumento múltiple para seleccionarlo. Tenga en cuenta que el muelle en la parte inferior de la ventana FMOD Studio ahora contiene una sección llamada lista de reproducción. También hay un icono de un dado resaltados en amarillo de forma predeterminada por encima de la lista de reproducción. Esto hace que la obra de un instrumento multi de los elementos de la lista de reproducción al azar y eso es lo que queremos, por causa de la variación, así que vamos a dejarlo así. Ahora vamos a abrir la bandeja de audio y arrastre en los tres sonidos del ordenador en la lista de reproducción de múltiples instrumentos.


    Adición de variación al Multi Instrumento de contenedores

    Ahora vamos a añadir variaciones al azar usando Modulación aprendimos acerca de la Parte 1. Ampliar el muelle en la parte inferior de la ventana FMOD Studio haciendo clic en la pequeña flecha blanca sobre el texto del disparador Comportamientos. Esto nos permite acceder a los diales que necesitamos para modular el comportamiento del contenedor de múltiples instrumentos cuando se activa. He añadido modulación a la mayoría de las configuraciones aquí, pero es de usted si desea utilizar todos ellos. Hold Alt mientras hace clic y arrastrar para agregar diales de modulación (OPtn en Mac) se muestra con una línea roja o verde de espesor.


    Creo desplazamiento inicial es el modo más importante que el audio no siempre jugar al mismo tiempo. La probabilidad es la nueva es posible que desee utilizar aquí aquí, pero no creo que la modulación de lo que realmente se mucho teniendo en cuenta que ya está basada en el azar. De cualquier manera, activar haciendo clic en los dados y bajar la línea por debajo de 100% de posibilidad de que el instrumento multi no se reproducirá cuando se le llama. Está bien, sin embargo, debido a que (si has seguido el tutorial anterior) tenemos una región de bucle para este evento, significa que no sólo podría ser un poco de una brecha en esa pista de audio específico antes de que el siguiente bucle. También he traído el volumen del Instrumento Multi abajo porque no quiero que estos sonidos al azar a ser demasiado invasivo, que no son críticos para el juego después de todo. Recuerde, sólo se debe modular el volumen y el tono un poquito de lo contrario puede sonar como que se está moviendo (ver el efecto Doppler) y que sea confuso para un jugador con discapacidad visual.

    Reproducir con la longitud del contenedor Multi Instrumento haciendo clic y arrastrando en el borde derecho de la caja de selección (contorno amarillo). No es necesario, pero yo sugeriría probar la configuración de bucle en la lista de reproducción del Instrumento Multi sí. Volviendo que en y ajustar la longitud del contenedor de múltiples instrumentos sobre el mismo de la pista de audio le permite jugar con el espacio entre ruidos aleatorios. Por último, se debe cambiar el nombre de las dos pistas de audio para este evento a algo más descriptivo, haga clic en el encabezado. No se olvide de guardar y luego construir antes de probar los nuevos sonidos de ordenador persistentes en la Unidad. No hace falta decir que los auriculares decente realmente mejorar la experiencia de audio espacial.

    Contenedores – Footstep Cambiar la lógica en FMOD

    Vamos a estar pasando por los pasos anteriores utilizando un recipiente de múltiples instrumentos en dos pistas de audio diferentes para los sonidos de pisadas. Haga clic en la ficha Eventos y añadir un nuevo evento, lo llaman pasos o algo similar. En este caso pasos, crear y nombrar pistas de audio separadas para cada tipo de superficie que tiene su juego. Mi aburrida demostración acaba de hormigón y madera, así que sólo tengo dos pistas de audio, pero le recomiendo que tome el tiempo ahora para recoger algo más por su juego – cuando se trata de ambiente en los videojuegos, más es más, después de todo! También creo que debe tener al menos tres archivos de pisadas diferentes para cada superficie de su personaje puede caminar sobre en su juego. A sólo dos pasos diferentes jugadas al azar pueden llegar a ser muy monótono.


    Ahora añade un contenedor de múltiples instrumentos para cada pista de audio y arrastre la lista apropiada de los archivos de sonido que ha recogido de la bandeja de audio en la lista de reproducción para cada uno. No se olvide de cambiar el tamaño de cada contenedor de múltiples instrumentos para poder jugar todo el sonido más largo de cada lista de reproducción! Se espera que ayude a usar las llaves del soporte cuadrados para hacer zoom dentro y fuera de la pista de audio ([,]). En cuanto a la modulación, queremos un montón de variación de tono, pero no tanto volumen. Desde luego, no queremos ningún desplazamiento aleatorio de inicio o la probabilidad, pero sí queremos que la lista sea aleatorio que está por defecto de todos modos. Volver a ajustar la configuración específicos Multi instrumento después de que he instalado en la Unidad más tarde.

    Volumen Automatización

    Lo siguiente es la parte más inteligente. Vamos a utilizar parámetros para ajustar el volumen de cada pista de audio de forma independiente. Para permitir esto, primero tenemos que añadir automatización para el volumen de cada pista de audio. Para ello, haga clic en el botón de volumen de una de las pistas de audio y haciendo clic en Agregar automatización.


    Las pantallas de automatización de volumen como otra pista de audio en la pestaña Cronología de eventos. Ahora hay que asociar los niveles de volumen con un valor particular para un nuevo parámetro para cada tipo de pisada. Hacer un nuevo parámetro haciendo clic en el pequeño “+” junto a la cabecera de la ficha Línea de tiempo a continuación, en Nuevo parámetro. Nombrar a los parámetros de la misma que las pistas de audio que van a afectar y mantienen los valores entre 0 y 1. Observe cómo los nuevos diales han aparecido en la parte superior de la ventana del evento pasos y hay una nueva pestaña para cada parámetro junto a la pestaña Línea de Tiempo .


    A continuación vincular esos valores de los parámetros para el volumen de las diferentes pistas de audio. Vayamos a la primera pestaña de parámetros que hemos creado (el mío es de hormigón) y ajustar el nivel de volumen a -oo dB cuando el parámetro es igual a cero. Haga clic y arrastre en la línea punteada roja debajo de la pista de audio con el nombre correspondiente para agregar una clave y moverlo – hasta el extremo inferior izquierdo del volumen “pista”. Luego hacer lo mismo con la extrema derecha, moviendo el volumen a 0.00dB cuando el parámetro es igual a uno. Debe quedar como la imagen de abajo. Tomar nota de que he enfocado a cabo con la llave abierta entre corchetes ([) para que pueda ver la totalidad de la gama de valores de parámetros. A diferencia de la línea de tiempo, este valor en la parte superior de la pestaña parámetro es rango, no el tiempo. Por lo que debe ir de 0 a 1 (el rango establecimos anteriormente) y por eso no se puede alejar más que eso.


    Enlace el volumen de la pista a la gama de parámetros de adaptación de la misma manera para todos los diferentes tipos de superficie pisada – asegúrese de prestar especial atención a la ficha que se encuentra en el parámetro! Cuando haya terminado, jugar el evento y el violín con los diales de parámetros por encima de la línea de tiempo. Aviso cómo puede ajustar los diales de parámetros para fusionar los diferentes sonidos de superficie juntos? Puede mover estos parámetros en cualquier valor de alta fidelidad, el ambiente de alto control. Tal vez la suciedad húmeda podría ser una combinación de la suciedad y los sonidos de pisadas de barro?

    Busque velocidad

    En realidad hay un ajuste simple que hace que sea fácil para nosotros sin problemas la transición entre los diferentes tipos de sonidos de la superficie utilizando múltiples pistas de audio como éste – se llama Seek velocidad. Esta es la velocidad a la que un cierto parámetro se moverá hacia un nuevo valor de objetivo tal como enviado de la Unidad. Esto nos permite, envíanos un valor de cero o uno de la unidad que ajusta sin problemas con un valor que se puede ajustar en el editor según el tipo de superficie! Puede encuentran Solicita velocidad simplemente haciendo clic en el nombre del parámetro al lado de línea que está en la parte superior de la ventana del evento.


    Seek velocidad instantánea es por defecto, pero si usted quiere que sea gradual, es necesario hacer clic y arrastrar en el dial. La opción asimétrica solo le permite tener una velocidad diferente para la decoloración de entrada y salida, o, ascendente y descendente. Adición de una región de bucle temporalmente a este evento hará que sea mucho más fácil determinar qué tasa que desee. Jugando con los diales de parámetros durante el evento es un bucle le permitirá medir de forma audible y visible, la velocidad apropiada Seek. No se olvide, usted necesitará conjunto Busque velocidad por cada parámetro.

    Pasos estéreo Fix

    Hemos utilizado un evento 3D para nuestros pasos en caso queremos que este mismo evento que se utilizará para otros personajes en el mundo 3D. Pero podríamos tener un poco de un problema si estamos usando sonidos estéreo – es muy extraño oír pasos cacerola porque, como seres humanos, oímos nuestros pasos directamente desde abajo. Puedes solucionar este problema de dos maneras; convertir el archivo a mono en Audacity o una aplicación similar, o simplemente añadir un efecto de mezcla de canal en FMOD Estudio – Seleccione la pista de audio que desea añadir un efecto a, haga clic en el área de color negro en el muelle en la parte inferior de la ventana , haga clic en Agregar efecto> Mix Channel. A continuación, cambiar su agrupación en mono.


    Multi Instrumento & amp; Volumen de automatización Consideraciones finales

    Tal vez podríamos añadir otro contenedor de múltiples instrumentos a otra pista de audio de madera cruje (con volumen controlado por el parámetro de madera) que tiene una baja probabilidad de jugar cuando el evento se llama? Me imagino que sería increíble para los juegos de terror! Cuando haya terminado preguntando acerca de las muchas variedades de combinaciones de sonido ambiente que los envases de múltiples instrumentos y automatización de volumen proporcionan, vamos a configurar el acceso a los parámetros personalizados en la unidad.

    Antes de salir FMOD estudio, sin embargo, no se olvide de asignar el evento pasos al banco principal, haga clic en la pestaña Eventos. A continuación, en Guardar y construir su proyecto FMOD Studio y abra su proyecto Unity.


    FMOD Pasos en la Unidad

    Para desencadenar el evento paso que hemos hecho en FMOD estudio vamos a utilizar un script personalizado # C que solo escribí. Este script necesita ser unido a nuestra rígida objeto de juego FPS cuerpo del controlador porque necesita los componentes de acceso tanto de la RigidbodyFirstPersonController y los guiones HeadBob. No necesitamos necesidad de añadir un guión StudioEventEmitter como la última vez, ya que tendrán acceso a nuestros pasos de eventos en nuestro script.

    Con el objeto de juego RigidBodyFPSController seleccionado, haga clic en Agregar componente> Nuevo guión y el nombre FMODFootsteps.


    Pegaré a continuación todo el guión, tome su tiempo para leer mis comentarios a entender mejor lo que está pasando. Se puede utilizar esta secuencia de comandos que le apetezca, pero no se escapan por el momento! – Hay un poco de explicar aquí y tengo un montón de recomendaciones futuras para sus propios ajustes por delante
    usando System.Collections; usando System.Collections.Generic; usando UnityEngine; usando UnityStandardAssets.CrossPlatformInput; // Uso de entrada de acceso para todos platformsusing UnityStandardAssets.Characters.FirstPerson; // clases de acceso FPS [RequireComponent (typeof (CapsuleCollider))] // Un colisionador se requiere para comprobar los tipos de superficie // conectar esta a su juego FPS controlador FMODFootsteps clase objectpublic cuerpo rígido: MonoBehaviour {[FMODUnity.EventRef] // Esto nos permite utilizar la función de búsqueda para llenar la cadena de ruta a continuación eventPath cadena pública; [Rango (0, 1)] concreto flotación pública, madera; // Sólo hacen públicas con fines de depuración pública RigidbodyFirstPersonController myFPSController; // controlador de acceso FPS para la información pública del estado reproductor HeadBob myHeadBob; // Acceso pieza de cabeza de la sacudida de la longitud de zancada pública Vector3 footstepOffset; // opcional transformada compensado para el audio pisada instancias de evento flotan stepCycle, Nextstep = 0.1f; // Realizar un seguimiento de cuándo queremos jugar el flotador evento paso inputX, inputY; // Sólo taquigrafía variables para los controles de entrada de jugador cuerpo rígido myRigidbody; // Se utiliza para comprobar si el jugador se está moviendo // Uso de inicio a las referencias de configuración de inicio void () {// Si hay un controlador FPS ha sido configurado, busque uno unido a este objeto juego si (myFPSController == null) myFPSController = getComponent < RigidbodyFirstPersonController> (); myRigidbody = getComponent (); // Acceso adjunta componente sacudida de cabeza en los niños si no se ha suministrado en el editor si (myHeadBob == null) myHeadBob = GetComponentInChildren (); } // actualización se llama una vez por cuadro, lo utilizan para comprobar si hay entradas de actualización void () {// Actualización eje entradas por lo que sabemos que el jugador quiere mover inputX = CrossPlatformInputManager.GetAxis ( «horizontal»); inputY = CrossPlatformInputManager.GetAxis ( «vertical»); // Si llega a saltar y reproductor no está saltando a continuación, reproducir un sonido, si paso (CrossPlatformInputManager.GetButtonDown ( «Jump») && myFPSController.Jumping!) {PlayFootStepEvent (); }} // fijo de actualización se llama una vez por la física paso FixedUpdate private void () {// configurar todos los parámetros a 0 tan pronto como el jugador no está conectado a tierra como un mecanismo de seguridad si (myFPSController.Grounded!) {Concreto = 0f; madera = 0f; } UpdateStepCycle (); } // Comprobar si estuviera listo para el próximo paso y evento de juego si es así nula UpdateStepCycle () {// Si el controlador de FPS es el movimiento y el jugador quiere mover ciclo etapa de actualización teniendo en cuenta si el jugador está en funcionamiento si (myRigidbody.velocity.sqrMagnitude> 0 && (inputX = 0 || inputY = 0!)) {stepCycle + = (myRigidbody.velocity.magnitude * (myFPSController.Running myHeadBob.RunningStrideLengthen:? 1f)) * Time.fixedDeltaTime; } // Si el ciclo paso ha pasado la distancia la siguiente actualización paso siguiente paso y paso, si el juego (stepCycle> NeXTstep) {NeXTstep = stepCycle + myHeadBob.StrideInterval / 2; PlayFootStepEvent (); }} // manijas jugando instancia de suceso pisada basado en camino privado PlayFootStepEvent void () {// Si el controlador está conectado a tierra FPS parámetros de actualización y evento de reproducción pisada si (myFPSController.Grounded && eventPath! = Null) {FMOD.Studio.EventInstance footstepEvent = FMODUnity.RuntimeManager.CreateInstance (eventPath); // posición Conjunto de evento con footstepEvent.set3DAttributes con desplazamiento opcional (FMODUnity.RuntimeUtils.To3DAttributes (transform.position + footstepOffset)); // Opcionalmente puede establecer los parámetros que aquí en lugar de utilizar la secuencia de comandos parámetro FMOD suministrado // Consulte la función de ayuda a continuación llamado «setParameter» Liam de Koster-Kjaer setParameter (footstepEvent, «hormigón», hormigón); SetParameter (footstepEvent, «madera», madera); // Play y liberar de un solo disparo ejemplo footstepEvent.start (); footstepEvent.release (); }} // Establecer un parámetro FMOD setParameter vacío (FMOD.Studio.EventInstance electrónico, nombre de la cadena, valor flotante) {FMOD.Studio.ParameterInstance parámetro; e.getParameter (nombre, parámetro de salida); parameter.setValue (valor); } // Conjunto variables de superficie, mientras que tocar OnCollisionStay vacío (superficie de colisión) {switch (surface.gameObject.tag) {case «concreto»: hormigón = 1f; descanso; caso «de madera»: la madera = 1f; descanso; }} // Cero a cabo variables de superficie cuando ya no tocar OnCollisionExit vacío (Colisión superficie) {switch (surface.gameObject.tag) {case «concreto»: hormigón = 0f; descanso; caso «de madera»: la madera = 0f; descanso; }}} 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144using System.Collections; usando System.Collections.Generic; usando UnityEngine; usando UnityStandardAssets.CrossPlatformInput; // Uso de entrada de acceso para todos platformsusing UnityStandardAssets.Characters.FirstPerson; // clases de acceso FPS [RequireComponent (typeof (CapsuleCollider) )] // Un colisionador se requiere para comprobar los tipos de superficie // anéxalo a sus objectpublicclassFMODFootsteps controlador de juego FPS cuerpo rígido: MonoBehaviour {[FMODUnity.EventRef] // esto nos permite utilizar la función de búsqueda para llenar el belowpublicstringeventPath cadena de ruta; [ rango (0,1)] publicfloatconcrete, madera; // Sólo hacen pública para depurar purposespublicRigidbodyFirstPersonController myFPSController; / / Controlador de acceso FPS para el estado reproductor informationpublicHeadBob myHeadBob; // Acceso pieza de cabeza de la sacudida de la zancada lengthpublicVector3 footstepOffset; // opcional transformada compensado para el paso evento de audio instancesfloatstepCycle, NeXTstep = 0.1f; // Realizar un seguimiento de cuando queremos jugar el pisada eventfloatinputX, inputY; // Sólo taquigrafía variables de entrada del reproductor de checksRigidbody myRigidbody; // se utiliza para comprobar si el jugador se está moviendo // uso de inicio a referencesvoidStart setup () {// Si hay un controlador FPS ha sido configurado, busque uno unido a este juego objectif (myFPSController == null) myFPSController = getComponent (); myRigidbody = getComponent (); // Acceso adjunta componente sacudida de cabeza en los niños si no se ha suministrado en editorif (myHeadBob == null) myHeadBob = GetComponentInChildren ();} // actualización se llama una vez por cuadro, lo utilizan para comprobar si hay inputsvoidUpdate () {// actualización eje entradas por lo que sabemos el jugador quiere moveinputX = CrossPlatformInputManager.Ge Los taxis ( «horizontal»); inputY = CrossPlatformInputManager.GetAxis ( «vertical»); (! CrossPlatformInputManager.GetButtonDown ( «Jump») && myFPSController.Jumping) // Si llega a saltar y reproductor no está saltando a continuación reproduce un paso soundif {PlayFootStepEvent ();}} // fijo de actualización se llama una vez por la física stepprivatevoidFixedUpdate () {// configurar todos los parámetros a 0 tan pronto como el jugador no está conectado a tierra como un failsafeif (myFPSController.Grounded!) {concreto = 0f; la madera = 0f;} UpdateStepCycle ();} // Comprobar si estuviera listo para el siguiente paso y evento de juego si sovoidUpdateStepCycle () {// Si el controlador de FPS es el movimiento y el jugador quiere mover ciclo etapa de actualización teniendo en cuenta si el jugador es runningif (myRigidbody .velocity.sqrMagnitude> 0 && (inputX! = 0 || ! InputY = 0)) {stepCycle + = (myRigidbody.velocity.magnitude * (myFPSController.Running myHeadBob.RunningStrideLengthen:? 1f)) * Time.fixedDeltaTime;} // Si el ciclo paso ha pasado la distancia la siguiente actualización paso siguiente paso y juego footstepif (stepCycle> Nextstep) {Nextstep = stepCycle + myHeadBob.StrideInterval / 2; PlayFootStepEvent ();}} // manijas que juegan instancia de evento paso basado en pathprivatevoidPlayFootStepEvent () {// controlador Si FPS es parámetros de actualización a tierra y el juego paso eventif (! myFPSController.Grounded && eventPath = null) {FMOD.Studio.EventInstance footstepEvent = FMODUnity.RuntimeManager.CreateInstance (eventPath); // posición Conjunto de evento con offsetfootstepEvent.set3DAttributes opcionales (FMODUnity.RuntimeUtils.To3DAttributes (transform.position + footstepOffset) ); // Opcionalmente puede establecer los parámetros que aquí en lugar de utilizar la secuencia de comandos parámetro FMOD suministrado // Consulte la función de ayuda a continuación llamado «setParameter» Liam de Koster-KjaerSetParameter (footstepEvent, «concreto», concret e); setParameter (footstepEvent, «madera», madera); // reproducción y liberación de un solo disparo instancefootstepEvent.start (); footstepEvent.release ();}} // Establecer un parámetro FMOD voidSetParameter (FMOD.Studio.EventInstancee, nombreDeCadena, floatValue) {parámetro FMOD.Studio.ParameterInstance; e.getParameter (nombre, fuera de parámetros); parameter.setValue (valor);} // Set variables de superficie mientras touchingvoidOnCollisionStay (superficie de colisión) {switch (surface.gameObject.tag) {case «concreto»: hormigón = 1f; break; case «madera»: la madera = 1f; break;}} // cero a cabo variables de superficie cuando ya no se touchingvoidOnCollisionExit (colisión superficie) {switch (surface.gameObject.tag) {case «concreto»: hormigón = 0f; break; case «madera»: la madera = 0f; break;}}}

    Debido a que mi juego sólo tiene un simple reproductor basado en cápsula-colisionador, que tiene sentido tener las huellas sobre la base de adiciones de movimiento del jugador (velocity.magnitude) con el tiempo como se ve en la función UpdateStepCycle (). Pero si usted tiene un juego en tercera persona, o si su jugador puede ver otros modelos de los personajes caminando, que debe de puesta en marcha PlayFootStepEvent () para el fuego en los fotogramas clave de animación! Para ser precisos, poner el fotograma clave de eventos en la escala de tiempo de animación, al mismo tiempo que el pie del personaje toca el suelo.

    He utilizado una sentencia switch para establecer los parámetros basados ​​en la etiqueta del colisionador el jugador está tocando, pero esto probablemente no es totalmente a prueba de errores si tiene un entorno dinámico en el que se desactivan los colisionadores.

    Hay muchas maneras para que usted pueda configurar los parámetros de superficie para la lógica pasos, usted podría: compruebe el nombre del material del objeto en colisión, el color del píxel de la textura; o, para super-alta precisión, raycasts de uso para cada pie! Pero me parece el método más simple de configurar y poner a punto pisada superficies es en el uso de volúmenes de activación con el guión FMODStudioParameterTrigger suministrado por FMOD.


    El script ParameterTrigger le permite ajustar todos los parámetros de un StudioEventEmitter específica con unos pocos clics en el inspector de la Unidad y utiliza todos los mismos eventos por defecto como un guión StudioEmitter. Pero debido a que necesita un punto en el StudioEventEmitter existente en la escena, que tendrá que descartar la configuración de ejemplo, en mi guión pasos – en lugar de referencia del emisor existente y utilizar la función de reproducción. Vas a tener más objetos del juego de la escena con este método, pero una lógica mucho menos código que preocuparse.

    Eso es todo por ahora, espero que este tutorial le haya ayudado a pensar en algunas otras formas frío para usar FMOD múltiples instrumentos y parámetros!

    Mensajes relacionados

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *