Silver_Wolf 0 Report post Posted January 2 (edited) Muy buenas, antes de nada, pedir disculpas si no va aquí el tema, vi otra sección donde podía ir mejor, pero no me deja crear temas allí. Tengo un problema con el "Any State" del Animator que aparece por defecto o dentro de un Sub-Machine. La historia es que, tengo una aplicación que usa unity como una especie de red neuronal de animaciones, con animaciones aleatorias en según que submachines y voy viajando tocando según que teclas entre diferentes "estados de animo". https://gyazo.com/da43f819487e76deb047b0266fd7c765 Dentro de cada estado de animo (Una sub-machine) hay un funcionamiento en bucle de aleatoriedad entre las demás animaciones. y cuando pulso X tecla, se va a otro estado por uno de los posibles carriles de transición.https://gyazo.com/46e433e3431af56bea8f9eac1398c4bd Pues bien, el "Any State" me viene genial porque esto al final se empieza a convertir en algo de crecimiento exponencial, debido a que mientras más Submachines creo (más sentimientos) más transiciones manuales una a una tengo que hacer y sobre todo, porque hay acciones como saludar, beber agua, bailar y un infinito etc, que pueden darse lugar, digamos que hay 3 sentimientos (Feliz, normal o enfadado) y desde ellos se pueden lanzar tambien animaciones de un saludo por ejemplo. El Any State pensaba que me solucionaría esto pero no, porque funciona dentro de TODO el animator, y afecta a todos los submachines y no quiero viajar desde cualquier estado a cualquier sitio, todo tiene su orden. Esto lo puedo solucionar conectando uno por uno, pero se vuelve super tedioso. Lo que busco sería algo así como un Any State Local, es decir, que pueda llamar a X Animator para hacer una transición hacia el, sin tener que conectar los cables, pero que no sea literalmente cualquier, sino por ejemplo, cualquier estado dentro de la submachine por ejemplo en la que estoy. ¿Existe algo asi o voy armándome de paciencia? Edited January 2 by Silver_Wolf Quote Share this post Link to post Share on other sites
francoe1 536 Report post Posted January 2 ¿Con Animator Override?, podrías crear toda la lógica del animator para un estado de ánimo y luego sobreescribir, para cada estado de ánimo restante. Quote Share this post Link to post Share on other sites
Fabri15544 5 Report post Posted January 2 aquí tienes un script básico para que lo entiendas, es fácil de entender espero te sirva y puedas aplicarlo a tu juego. using System.Collections; using System.Collections.Generic; using UnityEngine; using System; public class Ejemplo: MonoBehaviour { //Pudes seguir agregando mas Animators todos los que necesites. public Animator anim1; public Animator anim2; //Esto es un ejemplo con colisiones modifícalo y pon lo que quieras que haga void OnTriggerEnter(Collider other)//esto se ejecuta si colisiona con el Tag Especificado. { if (other.CompareTag("Player")) { anim1.Play("AnimacionX1");// esto sirve para buscar la AnimacionX2 en el Animator == anim1 } } void ParedCompare(Collider other) //esto se ejecuta si colisiona con el Tag Especificado. { if (other.CompareTag("Pared")) { anim2.Play("AnimacionX2"); // esto sirve para buscar la AnimacionX2 en el Animator == anim2 } } } Quote Share this post Link to post Share on other sites
Silver_Wolf 0 Report post Posted January 2 Muy buenas, gracias por las respuestas pero me temo que me será imposible aplicarlas dado que a veces se me olvida el nivel tan bajo de programación que tengo. Actualmente estoy empezando unos cursos de programación pero me temo que la respuesta al problema va a ser más compleja de lo que seré capaz de asimilar. Voy a investigar el override a ver si encuentro algo porque era una funcion que desconocía. Quote Share this post Link to post Share on other sites
Fabri15544 5 Report post Posted January 2 (edited) espero puedas solucionar tu problema Edited January 2 by Fabri15544 Quote Share this post Link to post Share on other sites
francoe1 536 Report post Posted January 2 @Fabri15544, por favor, utiliza la etiqueta de código Quote Share this post Link to post Share on other sites
Fabri15544 5 Report post Posted January 3 (edited) ok sorry se me olvida. 🤣🤦♂️👍 Edited January 3 by Fabri15544 Quote Share this post Link to post Share on other sites