Jump to content

blendshapes for correcting deformations


v_m

Recommended Posts

Hi,

I'm trying to figure out a way to correct character deformations with blendshapes, and here is my problem - blendshapes need to be applied before the bones capture in order to calculate properly, it seems that... inserting them after the capture&deform calculates the deformation based on the new position of the deformed points, and the results go all wacky. so. while it's not a problem creating blendshapes before the capture, it's a problem when it comes to posing the character, and then making edits on the non-deformed-geometry, while looking at the deformed geometry for visual feedback. it's like drawing with a robot arm that you remote control from a distance, hihi. yeah, very unintuitive and hard to get artistic results. so anyway, according to my logic, or at least my mayan :D workflow, I should be able to sculpt the posed geometry (which in maya I would freeze first, which is great if you want to export and sculpt with another software, but it would be ideal if I could have a 'live' network that doesn't require freezing the geometry) and then calculate the difference between the sculpted and non-sculpted geometry, and add that difference to the undeformed/un-posed geometry.

ok, so this is nothing new, the question is... what would be a houdini way of correcting deformations with blendshapes, or how could I apply the above workflow in houdini? thanks in advance for your help guys, have a good one!

vm

Link to comment
Share on other sites

You can add a edit sop after any deformation and sculpt. the trick is to feed the undeformed geometry into the second input of the edit, and when You are done with editing just don't forget to hit the commit transform/peak changes. then every thing works fine. the cool thing is that You can use it in combination with any deformation setup.

Link to comment
Share on other sites

You can add a edit sop after any deformation and sculpt. the trick is to feed the undeformed geometry into the second input of the edit, and when You are done with editing just don't forget to hit the commit transform/peak changes. then every thing works fine. the cool thing is that You can use it in combination with any deformation setup.

thanks for the hint sanostol!!!

commit/transform/peak changes was exactly what I wasn't doing and I was wondering why the hell I'm using reference geometry but the edit changes still go all over the place. wooohoooo!! :)

(so what could possibly be the logic behind this commit transform/peak changes?... the help says "Saves the current edit and resets the parameters to start a new edit" - this is nonsense to me, I can revert the edit to a previous state with undo, or make a new edit sop, but I always need edits to be applied... by my logic, the edit sop should rather have a history and let you remove earlier stages of editing, but on the other hand, commit changes automatically)

Edited by v_m
Link to comment
Share on other sites

so what could possibly be the logic behind this commit transform/peak changes?

has to do with the fact of the context...when does the SOP store and acknowledge you have moved a point... you can leave the SOP and still have points selected.. are you done with them? SOP doesn't know.

If you use the sculpt (brush) mode. the changes points are stored every time you let go of the mouse button. It is a much cleaner way to "know" if you are done or not. If you start mixing methods pt pulling pt brushing it gets harder.

So the button is there to say Okay I'm done.. go and grab the values you need to make this thing work

-k

Link to comment
Share on other sites

sure thing thekenny, I understand that, but I don't think it's such a good idea to have to tell the edit sop that "you're done". the brush behavior makes more sense

Well...I would suggest you provide alternatives hooks/solutions/ideas ... I'm sure they (SESI) would like to hear them. It is a tricky use case as an early adopter and user of the method for doing corrections (at one point in my career) I agree with the desire to make it easier from a usability standpoint, but it also presents a lot of edge cases making it hard to make bullet proof.

best thing I did was make a script and alias it to a key to 'parm the button so I could avoid the cursor move to the SOP, find the button etc.

Best of luck.

-k

Link to comment
Share on other sites

ok, it seems like I don't understand very well this issue of blendshapes being added after the capture and bones deformation. It seemed to work in an earlier test...

I'm attaching a hip example file with my problem - let's say the edit goes in one direction; when I turn the geometry 180 degrees , the edit still goes in the same direction as before, doesn't follow the geometry. there are 2 examples in the file, the one that I was working on, that has a corrective blendshape connected to and IK arm, and a simple one with just a box and a bone. just press play.

thank you in advance for taking the time to look at this, and please help me if you know what's going on. thanks!!!

vm

bs_corrective_problem.hip

Edited by v_m
Link to comment
Share on other sites

Well...I would suggest you provide alternatives hooks/solutions/ideas ... I'm sure they (SESI) would like to hear them. It is a tricky use case as an early adopter and user of the method for doing corrections (at one point in my career)

What method for correcting deformations do you use now instead of blendshapes?

Dragos

Link to comment
Share on other sites

thank you in advance for taking the time to look at this, and please help me if you know what's going on. thanks!!!

When you make your edits, make sure you have theinput of your Deform SOP (eg. box_object1_deform) connected to the second input of the Edit SOP.

Link to comment
Share on other sites

When you make your edits, make sure you have theinput of your Deform SOP (eg. box_object1_deform) connected to the second input of the Edit SOP.

what do you mean edward? the second input is for reference geometry. if I pipe the deform into the second input of the edit, there'll be an error: "not enough sources specified".

if I input the undeformed geometry as reference, the simple example works, but the other one although is seems to work, it exhibits a weird problem :| the edit... pops a few times, during the 180 degrees rotation, and it ends up deforming the points in the wrong direction.

I'm attaching a new example, where I've added an obvious spiky edit, so the pop and point-direction problem is obvious (commit transform/peak changes is clicked and reference geometry is added... but the edit still doesn't behave).

vm

bs_corrective_problem2.hip

Link to comment
Share on other sites

What method for correcting deformations do you use now instead of blendshapes?

Dragos

Sorry, that statement was clear. If I was doing that work now I would use blendshapes for corrections. Either as a predeform blend based on some parameters, or a post deform (on a geometry cache) correction. I have moved on and only dabble now with Houdini, so it isn't my day job anymore.

There are somethings in h9 i would like to try out but have never found myself there... radial basis stuff in chops... and some ideas about the wiredeformer.. mess around with the new muscle handle...

but for corrections.. blendshapes. it is the ultimate solution as you get what you put in.. everyone resorts to it at some point or another in some way shape or form.

-k

Edited by thekenny
Link to comment
Share on other sites

but for corrections.. blendshapes. it is the ultimate solution as you get what you put in.. everyone resorts to it at some point or another in some way shape or form.

-k

well ok, of course blenshapes are a wonderful thing ;) but the question is... how do you use them for correcting deformations in Houdini?

I've tried all kinds of things and still no results, I've attached an example file, can anyone please shed some light onto this subject matter? How do you make those edits behave - Ive already taken into consideration "commit/transform/peak changes" and using reference geometry.

vm

Link to comment
Share on other sites

  • 1 month later...

just in case anyone would ever be reading this... I seem to have solved the problem meanwhile - I couldn't get the edit sop to behave as I wanted when used AFTER the deform, but hey, nobody said I can't move it before the deform... :-P

so now my workflow for correcting deformations is: add an edit sop after the deform, move the character into desired pose, sculpt correction, repeat all this for any other correction wanted, move the character back into bind pose, add a blendshape node between the deform and capture, pipe all edits into this blendshape, link the character's movement to these corrective blends :)

now, the edits & blendshapes could also go before the capture, but it's not always a good idea, because the edits could go beyond the range of the capture regions and leave points behind, which means you need to tweak the capture, which I think in this case is not a good idea - because one should capture the clean bind-pose mesh, not a mesh with numerous edits that push and pull the mesh around like crazy ;)

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...