Ho lavorato parecchio con Mecanim in Unity e sento di avere una buona comprensione di come funziona.
Come dici tu, i misti sono quasi sicuramente la strada da percorrere per fare locomozione. Gli alberi di fusione sono generalmente indicati quando si desidera unire continuamente animazioni per creare l'output finale. Ad esempio, dai al giocatore il controllo della velocità di esecuzione dell'avatar.
Tutte le singole azioni sono probabilmente migliori da mantenere come singoli stati, in cui è possibile passare. A seconda di quanto intenso sarà il tuo gioco, potresti anche considerare di utilizzare lo stato Qualsiasi come punto di partenza per andare rapidamente a saltare, attaccare ecc., Senza dover aspettare che finisca un'altra animazione.
La chiave per fondere un albero di fusione con la corsa è usare le transizioni . Non c'è magia per renderlo fantastico, solo un'attenta pianificazione e modifiche durante l'anteprima della transizione in Unity. Gran parte del lavoro si basa sull'animatore per avere le basi per transizioni di successo.
Qualcosa da tenere a mente quando si eseguono le transizioni è quello di trovare un ottimo equilibrio tra loro e dare al giocatore il feedback previsto. Potresti scoprire che una transizione rapida funziona meglio per la sensazione di gioco, mentre una transizione più lenta può sembrare migliore ma fa desiderare ai tuoi giocatori di buttare via il controller.
Di seguito è una configurazione piuttosto semplice, in cui le frecce indicano come vanno le transizioni. Le transizioni si basano su condizioni per entrare e terminano quando l'animazione termina o viene soddisfatta una determinata condizione. Questo significa anche che uno stato può andare in vari altri stati a seconda delle diverse condizioni.
Quello che probabilmente noterai è che questo può rapidamente diventare una grande pila di "spaghetti", e un modo per evitare un po 'di questo pasticcio è quello di utilizzare qualsiasi stato che è anche incluso nell'immagine sopra.
Il Ogni Stato ha il vantaggio di essere in grado di transizione verso qualsiasi cosa, da un dato momento. Le transizioni possono ancora essere utilizzate per fondere l'animazione, tuttavia, stai lavorando un po 'più al buio su come apparirà. Durante la configurazione è possibile visualizzare l'anteprima da / verso vari stati.
Qualcosa che non hai menzionato è Layers , che può essere estremamente utile per ferire il tuo personaggio o per scavalcare la parte superiore del corpo per trasportare armi diverse usando la stessa animazione per le gambe di tutte le armi. Anche i livelli sono mescolati e possono essere regolati gradualmente, quindi un personaggio potrebbe essere più o meno ferito, per esempio. Un altro esempio potrebbe essere quello di sollevare le braccia di un personaggio in aria (se il personaggio si è arreso o qualcosa del genere), mantenendo tutte le altre animazioni uguali.
Ma impostare un controller di animazione solido non è un lavoro di 1 ora. Ci vuole un po 'di pianificazione e posso solo incoraggiarti a provare a creare una semplice macchina a stati con due attacchi, un salto, un minimo e un albero misto di camminata / corsa. Potresti anche trovare estremamente utili i comportamenti introdotti in Unity 5 per controllare o interagire con gli script.
Sono sicuro al 99% che l'IA si comporterà allo stesso modo del controller del lettore, dato che sono i parametri modificati attraverso script che controllano il modo in cui l'animazione passa da uno stato all'altro.
Sommario
- Blend-alberi per locomozione.
- Stati per singole azioni definite o stati di loop semplici.
- Sottostati per l'organizzazione di una serie di stati, come un salto.
- Transizioni per la fusione / transizione tra stati diversi (uno stato può anche essere un albero misto).
- Livelli per l'override o l'aggiunta all'animazione di base.
Pensa quindi agli alberi di fusione come stati espansi, che agiscono anche in base ai valori dei parametri.
Un po 'di un lungo divagare, ma spero che illumini un po' l'argomento :)