Sculpt Inbetween Manager - Pose Space Deformer(PSD)


#1

Hello everyone,

       It has been a long time that I don't post anything here but I guess now I have a good reason to do it. :D  I'm just about to release a tool that I have been working for almost a year on my spare time. Maya have this great ability to add inbetweens having all this independent data into only one corrective but unfortunately Maya doesn't provide any UI to manage these data so that's where I came with the idea to make this tool but in the middle of the process to design the UI I figure it out that if I combine with a PSD calculation the tool could be much more useful and interesting. It took me a while to figure it out the calculation of the PSD, I see some people looking to find the answer gathering the information of the influences of the skin for every joint on every vertex and from that making some calculations to find the right result. The way how I did it was pretty simple, it requires the blendShape itself to act on target to later query the reaction on the skin to create a transformation matrix to later invert the matrix so when I multiply by the scalar position of the point in the sculpt shape I have the proper position on the default pose.  I had to make some research trying to remember what I forgot in math and I have to be honest that some friends helped me with some ideas and pointing me some directions where I could find the answer. Thanks to everyone who helped me! :thumbsup:  I'm very proud with the result and performance for a tool that it just a script written in python. Basically is a big script but I use some API to wrap some arithmetical calculation for the Pose Space Deformer.  It will work with every maya after 2010 version as long Autodesk maintain the libraries and functions that I used working!  Be welcome to make any comment, question or suggestion, I promise that I will try to answer as soon as I can here.  Here are some videos showing some capabilities of what it can do. 
  
  [Demo worflow](http://vimeo.com/55585471)
  [Demo tweak inbetween](http://vimeo.com/56879473)
  [Demo Mirror Correctives](http://vimeo.com/56887413)
  
  ...I will be releasing the tool for free on my WIP blog after I finish some other videos and some few other lines of the code.

  
  Thanks to all

#2

Nice tool!
Will it be free to download or at least test it out ?

Best Regards,
Tri


#3

Thanks! That’s the idea. I just have to finish some stuff more and on my spare time I will be posting on my website.


#4

Please keep us posted here as well so that we may check it out when released!

Best Regards,
Tri


#5

does PSD calculation support any pose-space deformation? Or just specifically skin cluster with transforms as influences? Looking forward to try that out.


#6

nice tool Daniel:
I studied this problem myself an it was most straightforward to deal with the weighted influence of the incoming skincluster matrix : from there inverting the resulting matrix to build a shape is easy but also more accurate.

@uiron: i also look at inverting mesh based influence in a skincluster but got stuck because the binding method is not really obvious: there is a base mesh and a deformed mesh ,we can make some assumption here and guess that maya use some king of uv value with an offset to compute the vector to apply . I got no good result but writing a custom skincluster with your own binding method can solve that problem.


#7

tristratos: As soon as release I will let you guys know on this thread.

uiron: It should work with whatever skinCluster, even third party ones because I don’t rely on any information of the skinCluster deformer itself but just on the results of it.

tontonsuspect: I confess that I not even tried to do the query joint influence mode because I though that if once I have a target activated together with a pose due to a skinCluster the PSD calculation wouldn’t consider this overlaped activated target on the surface. I don’t know… since I didn’t try this method… is this really happen? I want to make a video explaining the way how I used and if I really do I will be posting here.


#8

you can invert your shape without caring about the overlapping shapes: that’s when you try to mix these that you must keep track of the order they where created( i sure you know this full well) .In my project i use a regular blendshape with negative weight to extract the corrective target from the history stack( once the shape has been inverted ). Didnt bother to write a deformer to mix shape as the pose trigger i wrote do that well enough for me.


#9

That’s very interesting the way how you did it because I really wouldn’t know what to do with the opposite delta values. Do you have it some demonstration in somewhere? I’m curious now… do you have some benchmark numbers in vertices and secs?
Cheers


#10

I talked about it on my blog: http://circecharacterworks.wordpress.com/2011/03/26/presentation/
and you can see a practical usage of it in this video: http://vimeo.com/55800775
I use to overlap shape in the past but now I prefer to split the deformation pipeline in two: the shape and the weight: that’s less work and easier to maintain: my pose trigger handle weight array because you rarely use a corrective shape in isolation, my interpolation is also linear( ok its easy to had curve, gaussian blur etc ) cause its also much easier to setup it that way.

@benchmark: i work on limb region so it less than 4000/5000 vertices and it take something like 2 seconds two compute on 1 shape: it enough for me and haven’t had any needs to optimize thing until now.

@ negative delta : you can do it with simple vector operation but a regular independent blendshape can do this for you: its what eric miller and paul thuriot has shown in their hyper real dvd series( dont need to have a parallel blender for it to work on this instance )


#11

Nice work Daniel! :slight_smile:

I loved the “visual in-between manager”! It would speed up my rigging process a lot.

I will be testing your tool… soon.


#12

Awesome!! Very clever the way how you approach with the multi angle joint reader! Are you saying that 4000/5000 vertices is on the sculpted area of the limb getting calculated in 2secs or this number is the the full geo? If it’s getting calculated this much in this time That’s really good! …the character that I showed have a little bit more than 20k vertices but during the calculation it query only the area that I sculpt witch is less than 2k and it proceed with the PSD in 0.8s


#13

Thanks Richard!!! :slight_smile: I hope you enjoy that man… I guess I liked your suggestion to chage the name to “Visual inbetween Manager”! :wise:


#14

I haven’t tried it yet, but that is Fucking amazing!! :slight_smile: :buttrock:


#15

Have you though of a system to create your corrective shapes?
or are satisfied with softdeformer,lattice,brush sculpting?

There are a lot of interesting things even on the legacy maya flexor: it doesnt work well but the general idea to push the articulation points on the side or bulging the mesh as the angle increase has always interested me.

Lately as many people, i want to rip open the maya muscle toolset to extract some of its feature like smart collide.

Instead of storing vector delta , i want to be able to describe this phenomenon more abstractly like defining region on the articulation which are used to efficiently shift point:

  • on the outer part of you knucke you have a very thin skin with no meat underneath and your points slide on it.
  • on the opposite side you always will have a crease no matter your how realistic/ cartoony your character is, so wouldnt it be better to have a tool to slide point procedurally?

#16

to tontonsuspect: your setup skill is amazing. The Spline Limb is a custom node you had wrote? Can you share a scene which had the leg setup?


#17

Thanks man, isn’t out yet but I will release it in few weeks.

I can tell you that if there is something that drive me nuts while I’m animating is playing my characters on viewport with a heavy rig and I guess for this reason I end up coming with a philosophy to pretty much create most of the deformation(any kind) with sculpted corrective inbetweens for now, because they are fast and easy to administrate. I know this workflow isn’t the solution to everyone’s needs because mostly requires art-direction and isn’t eveyone who know or like to do it when could be have done with real-time deformations or muscle system setup. I tried the maya’s muscle system before and I see that was a very interesting approach however I always though that could be even more time consuming to create a realistic character this way than using sculptShapes in modeler’s hands, also the performance for at least the mesh I had during the test it was an issue to be evaluated. This stuff about sculpt and calculate the psd to later use as an corrective can be very difficult to administrate as deep as you go with corrective combinations but I truly believe that would at least give you total administration of the art direction of the deformation for the shot. I believe that combination of a fast auto-preservation collision def and psd is the way to go for the next level of realistic character rigging or even cartoony.


#18

Can’t wait to use it! Keep it up! :cool:


#19

Can’t wait to test it out!
Keep us posted!!

Best Regards,
Tri


#20

@noobmode: thanks for your comment, most of the time i build node for maya to cover basic rigging unit need: to drive a skincluster you dont need to bind a joint and can directly plug a matrix but it is easier to understand what is going on this way.

I dont really plan to release these tool yet .

@daniel:thanks for your insight: like you i never really have enough time to setup properly a muscle system. In one siggraph paper the ILM guys talked about implanting muscle template by wrapping a base mesh around a new character mesh: i like this idea a lot and what is true for this setup is true for other type of deformer: reusing and transferring skin weight, articulation helper joint etc…

@art direction: yeah that what i love too: most of time when you trigger a shape or control the interpolation of several one you blend the whole zone( line the elbow part pushed by the bone, the inner side of the articulation where the flesh/muscle compress )do you separate these zone further?

what do you think of joe alter lbrush for maya?