KybernetikGames / animancer

Documentation for the Animancer Unity Plugin.
66 stars 8 forks source link

A warning sign (yellow triangle) on inspector without explanation #270

Closed kodra-dev closed 1 year ago

kodra-dev commented 1 year ago

image

What does this warning sign mean? I hover the cursor over it but there isn't a tooltip or something. Should I worry about it?

KybernetikGames commented 1 year ago

If your animation looks right, you can ignore it.

It's a button which logs a warning explaining why it's there (because tooltips don't work in Play Mode). The Inspector page also explains it.

kodra-dev commented 1 year ago

If your animation looks right, you can ignore it.

It's a button which logs a warning explaining why it's there (because tooltips don't work in Play Mode). The Inspector page also explains it.

It says I don't have Animator.MotionQ and MotionT:

[x] Animator.MotionQ.w
[x] Animator.MotionQ.x
[x] Animator.MotionQ.y
[x] Animator.MotionQ.z

I'm... not so sure what these are. I guess it's related to root motion...?

KybernetikGames commented 1 year ago

Yeah, they're for root motion.

Animancer ignores properties called RootT and RootQ because everything supports root motion, but it looks like they might have changed names.

Which version of Unity are you using?

kodra-dev commented 1 year ago

I'm using 2022.2.11.

The thing is my animation clips seem to have both MotionQ and RootQ:

image

I'm not sure where they come from. I selected and deselected root bone in my importer settings, but they're still there in both case. As you said, Aminancer doesn't complain about RootT, only MotionT.

KybernetikGames commented 1 year ago

This explanation sounds reasonable. Root is the original absolute values and Motion is the generated delta values that will actually be used for root motion at runtime. I'm not sure why I haven't seen Motion before, but it's an easy enough fix.

Just open AnimationBindings.cs and add these cases to the ShouldIgnoreBinding method:

case "MotionQ.w":
case "MotionQ.x":
case "MotionQ.y":
case "MotionQ.z":

case "MotionT.x":
case "MotionT.y":
case "MotionT.z":
kodra-dev commented 1 year ago

I see. Thank you very much for the answer!