• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
Question by OracleForms11g · May 31, 2019 at 09:17 PM · animationmecanimlookatikhead

Animated mesh looking the wrong way when using SetLookAtPosition

I have some kind of problem with the SetLookAtPosition() function...
For some reason my big statue boss doesn't want look at the position at all... (He's a bit of a shy guy if you ask me...)
Here's screenshot of the scene view: Wrong Look The position I want its head to look at is at the blue star... In fact, it's exactly the position I'm feeding to the SetLookAtPosition() function.
I don't have any idea what could be causing this. I'm also doing the same thing with my other rigs yet no bug at all...
The code itself is quite simple, too:

 private void LateUpdate()
 {
     if (m_currentLookPosition != m_targetVisualPosition)
     {
         m_currentLookPosition = Vector3.Lerp(m_currentLookPosition, m_targetVisualPosition, Time.deltaTime * (m_lerpTimeScale * 2f));
     }
 }
 
 private void OnAnimatorIK(int layerIndex)
 {
     m_animator.SetLookAtWeight(m_lookIKWeight, 0.125f, 1f, 1f, m_headTwistAngleLimit);
     if (m_hasVisualPosition && !IsInVisualField(m_targetVisualPosition))
     {
         m_animator.SetLookAtPosition(m_currentLookPosition);
         DebugExt.DrawPoint(m_currentLookPosition, Color.blue, 0.5f, 0);
     }
 }


Basically I'm just changing the target position smoothly in the LateUpdate part and assigning it in the OnAnimatorIK one. Nothing fancy really...

Oh, Just as a heads up, the statue mesh is fully custom while it's animations comes form Mixamo. Not sure it's the culprit, but you never know...
I rely on this call for my enemy (or in this case, boss) A.I. so any help would be appreciated!

wronglook.png (187.8 kB)
Comment

People who like this

0 Show 0
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

  • Sort: 
avatar image
Best Answer

Answer by OracleForms11g · Jun 03, 2019 at 02:36 PM

Finally, found it!
For those who are wondering, the bug was quite simple: the SetLookAtPosition sometimes wasn't invoked at all due to the encapsulating if. When you have a look weight bigger than zero without a look position it instead uses a default coordinate (I suspect (0,0,0) but it doesn't really matter)
I've simply removed the !IsInVisualField(m_targetVisualPosition) bit from the if and now it works wonderfully...
That removed bit was part of a previous version of the code and didn't get refactored properly.
So, kids, the lesson here is to never forget to refactor...
Otherwise you're gonna have a bad time.

Comment
DSivtsov

People who like this

1 Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image DSivtsov · Jun 09, 2021 at 02:53 PM 0
Share

:) You are genius

Unity Answers is in Read-Only mode

Unity Answers content will be migrated to a new Community platform and we are aiming to launch a public beta by June 9. Please note, Unity Answers is now in read-only so we can prepare for the final data migration.

For more information and updates, please read our full announcement thread in the Unity Forum.

Follow this Question

Answers Answers and Comments

276 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Mecanim ik curve 0 Answers

IK LookAt Smoothly change between targets and problem with offseting the "Scan area" 0 Answers

LateUpdate override of bones in Mecanim Animation not working 3 Answers

Animate arm to grab object with IK/Mecanim 0 Answers

Best way to do gun reload and move sway 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges