pshipkov
What's new in today's edition:

stickyCurves node and based on it stickyLips tool
Check the stickyLips example scene. Play the animation and notice what is happening to the lips.
The stickyLips UI uses a background image of lips that is included in the icons directory. Make sure you copy it to location where Maya scans for icons.
Press the "?" icon in the upper right corner of the UI, fallow the instructions and check the notes about the simple API available for the toolset.

group - handle components based on weight maps. There is a new inWeightPP attribute that can be used to supply the per-point data. To use that option select "weight map" in the "operation" menu.

interactive caching system - if you have heavy deforming geometry that takes long time to cook and causes rig or other system to slow down the viewport perofrmance you can use the ICS to speed things up. It consists of 2 nodes - frameCacher and frameCacheTracker.
The ICS stores the geometry state and input parameters at each frame you step. If you step on the same frame again and the input parameters did not change the system will skip DG evaluation and will restore the geo state from the cached data. If the input parameters changed, then it will cook the graph and will cache it.
Check the interactiveCachingSystem scene. Notice how the joint transform channels are connected to the frameCacheTarcker node. This is because in this scene there is no control rig, but simple fk animated skeleton which makes the joints the actual input drivers. If you have a rig or other control structure you will have to connect it's attributes to the frameCacheTracker.

nucleusIO - little utility that deals with exporting and importing nucleus data. The tool is smart enough to fully reconstruct nucleus setup from previously exported data on disk. It keeps track of all nucleus objects, constraints, attribute numerical values and weight maps. One thing to keep in mind is that it does not support constraints created with option "useSets". But why one would want to do that anyway.
This tool is designed to help the integration of nucleus into any asset pipeline. Also it streamlines and automates the group workflow.

pointsOnMeshInfo - ability to output rgba pp data. Check the new example scene.

fixes:

tensionBlendShape - fixed 2 bugs that caused crash or non-working node in some cases.

slidersManager - the animation takes system now uses ATOM to handle import/export of animation data.

------------------------

Scenes archive is updated to include the example scenes for new tools/features.
Quote 0 0
noizfactory
Wow! Fantastic release Peter!
Quote 0 0
Elizeusz
Thanks Peter ! :)
Quote 0 0
feeling1982113
Thank you Peter! Very good update.
Recently watching maya's xgen, such a powerful tool for maya why not provide a direct information SeExpr control surface features may be I did not find, I hope I can see SOup version SeExpr.
A proposal can out of the research in this area on SOup books do, these presentations can be a good example of sorting out the very good books I think I am very willing collection, preferably with development of learning materials, thank you.
Quote 0 0
pshipkov
Actually, after brief research it became obvious to me that pyexpression node is absolutely more powerful than seexp approach. Let me know if you think otherwise, I am curious to know what other people think based on their experience.
Quote 0 0
feeling1982113
I had also just tested pyexpression I feel very strong, providing basic information and mapping function, python can be run on the inside, including pymel such tools.
Use seexpr I feel in the operating maya particles, so that the original will be very easy to use this experience to the above, but I have a hard time understanding pyexpression, I connect those points in order to write a script to loop matching points, Although this is not very difficult, but I think you can also improve the next? Because a lot of link points is not very convenient, and this link is up and running feels slower.
Why not designed to be exported into out mesh, with good expression to modify it to get a deformation of the surface? Or am I not understanding.
May not be in-depth to understand pyexpression, I just said to use my own feelings, too complicated to use them is more difficult, but also a few examples of many get to know more about a better understanding of pyexpr.
I'm using google translate some expressions may not necessarily correct.
Thanks
Quote 0 0
matzerium
thank you!


Quote 0 0
noizfactory
The scenes archive doesn't seem to contain the updated scene files. I couldn't find the ICS scene file.
Quote 0 0
pshipkov
Just checked - it is there. Look for the full name, not the abbreviation.
Quote 0 0
pshipkov
@ feeling1982113
I noticed that you are using a translator. No worries, i (like many others around) am not a native english speaker - all is good, we understand. :)
Check the pyExpression examples. They will help you get on speed.
pyExpression does not support arrays attributes, but you can obtain the data not through the connections but directly from the scene (dangerous) or from the connected to the pyExpression.node node (safer).
I am considering the possibility to add native array attributes support, but because we can hack things around already this is low on the priority list.
In general there are some things in the pyExpression code - especially the mesh handling part and some unnecessary wrappers that are begging for refresh. :)
Quote 0 0
noizfactory
pshipkov wrote:
Just checked - it is there. Look for the full name, not the abbreviation.

You're correct! It is there. The example directories got mixed up. I guess I need to do some housekeeping :)
Quote 0 0
feeling1982113
Hi Peter!
I am on your personal Web site to see your mail, I sent an email to you, I hope you have received, it seems the forum which could not send a message to you, so I'll just send you mail, I hope no mistake E-mail address.
Quote 0 0
noizfactory
Peter, the ICS stuff is pure awesomeness! Did some timings on play-blasting your example scene and here are the stats:

With polysmooth 2 (50k polys):

1. Without frame caching = 15.74 secs
2. With frame caching = 5.26 secs

With polysmooth 3 (~200,000 polys):

1. Without frame caching = 49.56 secs
2. With frame caching = 10.28 secs

With polysmooth 4 (~800,000 polys):

1. Without frame caching = 193.15 secs
2. With frame caching = 26.7 secs
Quote 0 0
pshipkov
Glad you like it.
Yes, the system provides big performance boost in production.
Actually it have been in soup for a while but it was hidden :)

The heavier the geometry and the underlying system that moves/deforms it - the bigger the benefit of using ics.
Quote 0 0
noizfactory
Quote:
Actually it have been in soup for a while but it was hidden :)


Hehe.. gotto hunt for any
hidden gems in future releases :)

I had a few questions on the ICS workflow.

1. Is it unreasonable to expect ICS to perform at par with offline geometry cache? The node seems to store point cache and the DG network doesn't seem to evaluate either. So I was expecting close to offline cache performance (in terms of playback fps) on a production rig that has around 70,000 polys which is far lesser than the example scene but I'm only able to go upto 5-6 fps after caching.

2. Is the node multi-threaded or are there Maya API limitations to do so? Since the cache is held in memory can the playback be multi-threaded?

3. What would generally be connected to the tracker node? The joints themselves or the controllers? I tried both and don't see any performance difference (as expected) so I'm sticking to connecting the joints. Or this shouldn't matter at all?
Quote 0 0