(Note: I'm on v2, so I'm sorry if this is something that has been fixed in v3!)
While troubleshooting a MoveTowards ability (with a small angle tolerance) that was taking too long to rotate into, I noticed something I didn't understand in CharacterLocomotion.cs (UpdateRotation(), line 663)...
I'm also having the same exact issue - I bought version 2 but it seems like only version 3 downloads are available to me. I'm using the only order number I have that works (the Opsive item in the order is called "Third Person Controller (legacy)"). Also tried the corresponding invoice number...
I understand the general design of allowing the locomotion component to have its own settings, I just didn't understand why a position setting should affect rotation behavior.
In any case, thanks for confirming.
Character controller variant (Ultimate Character Controller, First Person Controller, etc):
Third Person Controller v2.4.8
This is just something I happened to notice from looking at the code, so the other info isn't relevant.
In Ability.cs, where it is checking for root motion...
I think there's a bug in QuickStop.cs - it overrides UseRawInput to be false, but when it checks the input in CanStartAbility(), m_CharacterLocomotion.RawInputVector is always used. It should probably be using m_CharacterLocomotion.InputVector and/or checking UseRawInput.
The issue was that it...
Ah! Thanks for being patient with me. I was getting hung up on how the Animator doesn't seem to be accessible through the UCC classes, but it can be accessed simply through m_GameObject.GetComponent<Animator>().
I must be missing something. As a test, I'm trying to force the rotation to be Quaternion.identity, expecting no rotation to happen while my ability is going:
public override void UpdateRotation() {
m_CharacterLocomotion.AnimatorDeltaRotation = Quaternion.identity;
}
I also tried putting...
Hmm, I hadn't thought of exiting the animation early. In this case since the root motion rotation isn't constant throughout the animation, I could monitor the current orientation from inside the Ability and stop itself accordingly. Worth a shot, thanks.
I'd still like to know if there's an...
What's the best way to adjust movement or rotation of an animation's root motion frame by frame as it's going?
In my particular case, I have turn-in-place animations that turns the character either 90 or 180 degrees, but I need to be able to have the character end up facing arbitrary...
I only tried using Move() as a troubleshooting step. I just tried again using the Nav Mesh Agent Movement ability and just calling NavMeshAgentMovement.SetDestination() on it - same issue.
I'm trying to set up basic movement for an AI-controlled character and noticed something weird with the way the walk animation (the only one I've tried so far) was being played - it seemed slightly robotic compared to the player-controlled version I had gotten working, even though it's the same...
I'm using root motion for a climb animation and was trying to use lerping to smoothly force the character into the correct starting position. This includes the XZ position, as well as the Y position for potential variance in obstacle height (since the root motion is authored for a specific...