#Blend Tree animation best practices

1 messages · Page 1 of 1 (latest)

glad plover
#

any help would be amazing

untold gull
#

Some of the phrasing in this question is admittedly odd, is this based on prompts to an LLM?

glad plover
#

the simple questions is :- What best practices do you guys follow when working with Blend Trees, while making the character animations (idle→walk→run) and when integrating them into your games

untold gull
#

Understandable but you don't have to worry about being formal in here, it's better to just say / ask things as you understand them 🙂

For me at least, when making the animations I do them in Blender, there's a big learning curve there if you haven't touched it but it gives you more control over how things look and work.
If it's not something you're ready for you can get sample 3D animations from Mixamo, note that single animations will have the option to play the anim In Place or let the char move from the origin (root motion), any animation packages always use root motion by default.

When it comes to actually using them in the game for this case at least I try to keep my blend tree simple, it'll be 1D with a Speed parameter and I'll keep the speed increments simple and understandable 0 = idle -> 1 = walk -> 2 = run etc. and set Speed on the Animator through scripting

Then I'll also try keep the communication point between my characters gameplay state (script) and their animation state (animator) as a single place, 1 script that'll track / read values about character state and set animator params based on that e.g. it may read the speed value from a player movement script and use that to set the animator speed param.
That for me is easier to debug when / whether something is going wrong between gameplay or animation states

Depending on how you implement things tho speed may not be a 1 to 1 relationship with how you've setup your blend tree tho, it's up to you to figure out how to sync / make those work together. E.g. for my idle to walking blend it's simple because I use the left stick input vector and get the magnitude so when it's fully pushed then it's 1 or partly pushed it's < 1 but sometimes things are more awkward than that and it honestly just takes some figuring out

glad plover