Jump to content
Hash, Inc. - Animation:Master

Surface constraint don´t align to patch normals


Visping

Recommended Posts

I am trying to use the Surface constraint to make pupils move on an irregular eye.

 

I have got everything working exept for one detail:

 

I can´t make the pupils align in the direction of the surface normals. As I understand it, the Property Translate only is the one controlling this. I have set it to ON but it still does´t behave as I want. I have tried to change all of the properties I could find, both for the constraints and for the bones I use. I also made sure that the normals were pointing outwards. I have run out of ideas... what am I missing here?

 

CurrentBonePosition.png

This is the current alignment of the bone that controls the pupil mesh. Note that it is pointing in the same direction as the aiming bone.

 

DesiredBonePosition.png

This is the desired alignment of the bone that controls the pupil mesh. Note that it is pointing in the same direction as the surface mesh normals.

 

SurfaceConstraintProblem.png

This is my setup for the surface constraint.

Link to comment
Share on other sites

  • Replies 17
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

I'm afraid I can't answer your specific questions but if you have the Extras DVD and are curious, there's a tutorial on how to do pupils on non spherical eyes in there, (though it may not be a suitable method for your current model);

Extras DVD > Tutorials > Bootcamp > Eye Tut.html

This is the same method used I believe for the eyes in the KeeKat model that comes with A:M.

If you don't have a copy of this DVD, its well worth getting one as its a veritable goldmine of info and will repay the time spent in exploring its secrets.

Link to comment
Share on other sites

I'm afraid I can't answer your specific questions but if you have the Extras DVD and are curious, there's a tutorial on how to do pupils on non spherical eyes in there, (though it may not be a suitable method for your current model);

Extras DVD > Tutorials > Bootcamp > Eye Tut.html

This is the same method used I believe for the eyes in the KeeKat model that comes with A:M.

If you don't have a copy of this DVD, its well worth getting one as its a veritable goldmine of info and will repay the time spent in exploring its secrets.

 

You were right, the tutorial Tutorials\Bootcamp\Eyetut.htm do not cover the Surface constraints problem. The tutorial covers how to make one eye sqashed. In my case both eyes share the same eyeball and I need the pupils t slide on the surface thus enabeling me to slide both pupils to same side and squinting etc...

 

However on the ExtrasDVD I found the model Mikkemusse (ExtrasData\Models\Actors\Cartoon\MikkeMusse) that seem to use the tecnique I am going for. I.E. a separate pupil sliding along an eyeglobe.

 

The rig for Mikkemusse is quite advanced and the names of most bones is in macedonian (!) witch is hard for a swede like me to understand.

 

I have tried to dissect the Mikkemusses Relationships to see if I could get some clarity in this. But I have failed to find any relationship using Surface constraint. Maybe it is a completeley different tecnique used...

 

 

Still my problem remains, how to get the constrained bone to orient like the surface normals?

Link to comment
Share on other sites

  • Hash Fellow

I haven't investigated the constraint problem, but a possible alternate solution to your pupil placement problem is to use bitmap images of them in Projection Map materials, whose placement can be animated.

 

see this thread:

 

http://www.hash.com/forums/index.php?s=&am...st&p=313694

Link to comment
Share on other sites

Thank you for the tip. I will have that as a backup plan.

However, I am so close to a solution that I'm not ready to give up yet. It says in the reference guide that it is possible to do what I want. I just need to find out what little detail I am missing.

 

From the AM reference guide page 162:

 

"Translate Only

Default: OFF. Normally the surface constraint positions the object to be on the surface and aligns it in the direction of the surface normal as well. To simply translate it to the surface, but not orient it on the surface, turn this property ON."

Link to comment
Share on other sites

To make sure I didn´t miss the Compensate mode button I deleted the constraint to redo a new constraint.

 

(When editing the relationship the Compensate mode button initially is OFF....)

I select the bone to constraint.

At the moment i get the Eyedropper to select the "Surface target" it is automatically turned ON.

 

I then I clicked the Compensate mode button so it is OFF before selecting the "Surface target" with the eyedropper.

So far so good.

 

Next I want to select the "Surface aim target" from the properties combo box.

 

Of all the bones I have to choose from, the only one that is not present is the one I need to select.

 

---

I then tried to move the constrained bone so it was no longer a child of the "surface aim target bone".

Now it was pickable in the combo box.

 

But now the bone didn´t follow at all......

 

So I put the constrained bone back in the hierarchy and it worked again (minus the orientation to normals)

 

---

 

So I really don´t know where I stand at this moment. Could it be a bug in AM?

Link to comment
Share on other sites

  • Hash Fellow

Good news and bad news....

 

I got it to mostly work... in v13 :lol:

 

My test in v15 and v17 looks like it's at least partly broken. I'll look at this some more.

 

It's definitely not working properly in v17 for me.

Link to comment
Share on other sites

  • Hash Fellow

Hold on ... I think it's an update problem, for me anyway.

 

 

Try this. Make the constraint with no offsets and "Translate Only" OFF.

 

After you choose the Aim Target Bone, something goes wrong and some offsets are created.

 

Set all the Translate and rotation offsets in the Constraint Properties to 0 then set X rotation offset to -90

 

that makes it work as advertised in v17

Link to comment
Share on other sites

YESSS! Now I got it working.

 

I needed to do this:

 

1: I deleted the offsets that was automatically (wrongfully) created by setting them all to 0 exept for the x rotation offset that I had to set to -180

 

2: I set the Tanslate Only to OFF (Allthough it should be set to ON according to the documentation)

 

Thank you very much for helping me solve this mystery.

I will file a bug report so it can be fixed.

Link to comment
Share on other sites

YESSS! Now I got it working.

 

I needed to do this:

 

1: I deleted the offsets that was automatically (wrongfully) created by setting them all to 0 exept for the x rotation offset that I had to set to -180

 

2: I set the Tanslate Only to OFF (Allthough it should be set to ON according to the documentation)

 

Thank you very much for helping me solve this mystery.

I will file a bug report so it can be fixed.

 

:) Good find. Please post it at http://www.hash.com/reports (you need to register again there).

 

See you

*Fuchur*

Link to comment
Share on other sites

If I'm understanding your issue correctly, this is not a bug. The base AND the end of the bone are being constained to the surface. This allows, for example, a model bone to contour the surface of another model.

 

Translate only, only constrains the base of the bone to the surface. Having this turned off will constrain both the base and the end of the bone to the surface, and the roll handle will point in the direction of the normals.

 

If you post a project, I'll take a look at it.

Link to comment
Share on other sites

Yes after reading the reference guide again I understand that the Translate Only works exactly as I should. I missunderstood this. But since the offsets by some reason was automatically set to other than 0 the symptoms made me confused. The reference guide isn´t that easy to read as english is not my first language :rolleyes:

 

So it was my misstake mixing up the values for Translate only.

But still it seems to be a problem with the offsets when creating the constraints.

I wish it was described as you put it when I read about it in the reference guide...

 

Well, my problem is solved, but if it can help anybody else with a similar problem I will post two models. One with the problem and one after the problem has been solved.

 

SurfaceConstraintProblem.mdl

SurfaceConstraintProblemSolved.mdl

 

Thanks everybody who took your time to help me out!

Link to comment
Share on other sites

...The reference guide isn´t that easy to read as english is not my first language :rolleyes:...

Don't worry Visping, I've found its not always that easy to understand when English is your first language!

Glad you got it solved.

Link to comment
Share on other sites

The offsets are created to align the bone/geometry to the geometry of the surface.

 

On another note, the reason you were unable to select the left eye as an aim target is, there are pose sliders in the user properties that need to be deleted, even though the relationships were deleted in the user property folder (model properties>user properties). Once I deleted the pose sliders, I was able to select the left eye as a target, without changing the hierarchy.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...