#Blend Tree animation best practices
1 messages · Page 1 of 1 (latest)
Some of the phrasing in this question is admittedly odd, is this based on prompts to an LLM?
admittedly, yes, the post was created using Claude, my initial post i thought was too basic and not formal enough
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
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
mhmm, and if i am using RootMotion, i should make sure to get the Average Velocity to the speed i want to run my animations at, and should i use the same values as my tresholds