Squash And Stretch of DAZ Characters

digitalcraftdigitalcraft Posts: 57
edited March 2013 in Daz Studio Discussion

Is there any Plugin or method available to Squash & Stretch DAZ Characters like mostly done in traditional Character animations. Like sometime allowing the body parts like head, hands or legs to be stretched or squashed the body to show the whole character is banged against a door or flattened on the road by a truck ?

Post edited by digitalcraft on
«1

Comments

  • Richard HaseltineRichard Haseltine Posts: 96,863
    edited December 1969

    Some of that can be done by scaling, though in DS you will need to right-click on the Parameters pane's tab or click the menu button in the top corner and select Show Hidden properties from the menu to get the axis scale controls, or with magnets/DForms, or even with built-in morphs for some figures and scaling options.

  • Joe CotterJoe Cotter Posts: 3,259
    edited March 2013

    Actually, a Squash and Stretch plugin would be very handy to anyone doing cartoon style animation as it is a basic technique used in cartooning. Along with that, a frequency wave distortion of the mesh for animating jiggle... someone could get vewwy cweeative here ;)

    Post edited by Joe Cotter on
  • wancowwancow Posts: 2,708
    edited December 1969

    I would think this would be easily accomplished with dforms and scaling... pretty basic stuff...

  • Dr StupidDr Stupid Posts: 313
    edited December 1969

    Gedd said:
    Actually, a Squash and Stretch plugin would be very handy to anyone doing cartoon style animation as it is a basic technique used in cartooning. Along with that, a frequency wave distortion of the mesh for animating jiggle... someone could get vewwy cweeative here ;)

    Totally! Well said Elmer! :)
    Anyone up for the challenge? I'm sure there's money to be made from the right product :)

  • Joe CotterJoe Cotter Posts: 3,259
    edited March 2013

    I don't think it would be easy to do manually.. ..(edited to rephrase..)

    ... If it was meant to refer to putting together an automated process to do.. that's different. It might not be to difficult for someone to put together an automated system if they are familiar with programming/scripting and can set up mathematical transforms of the mesh. Even then, it seems there would have to be some way of weighting the automated system to tie into or run a secondary skeletal system. Doing it manually and have it come out decently would be akin to rotoscoping, very time consuming.

    Post edited by Joe Cotter on
  • Joe CotterJoe Cotter Posts: 3,259
    edited March 2013

    Come to think of it.. Disney showed how useful certain techniques could be for lampooning style cartooning and those techniques were a standby when cartoons were hand drawn. Some extended them into Flash style vector based imaging because it was pretty easy to incorporate into that style, but I don't recall seeing it in any 3D generated animations/cartoons. It could be that the techniques just fell out of fashion, but I personally don't think that was the case as much as the techniques weren't easily done using 3D techniques, at least not in the past. I could be totally off base here however.

    [Edit] After doing a quick YouTube search I found it is used constantly in modern animation, it has just gotten more subtle and woven in more with other principles so that it doesn't stand out as much as in the earlier animations.

    Post edited by Joe Cotter on
  • BlackFeather1973BlackFeather1973 Posts: 739
    edited December 1969

    Plugins are way over my head, but this sounds like a fun project to improve my scripting skills. Scaling lends itself very well for scripting and seems to deliver a pretty good base for a squash-n-stretch effect.
    I'm eager to try this, but i will be needing feedback and suggestions. So, if you guys are up for it and wiling to spend some time to flesh this out with me, i'm game. :coolsmile:

    First things that cross my mind :
    - should be GUI-based
    - start with Genesis, add support for previous generations later
    - grouping of bones, cfr. PoseControls
    - ability to save presets
    - symmetry on/off

  • Joe CotterJoe Cotter Posts: 3,259
    edited December 1969

    It could be a fun project for whoever takes it on, and I'm sure you will learn a lot doing it... I for one would try to give positive feedback :)

  • wancowwancow Posts: 2,708
    edited December 1969

    Gedd said:
    Come to think of it.. Disney showed how useful certain techniques could be for lampooning style cartooning and those techniques were a standby when cartoons were hand drawn. Some extended them into Flash style vector based imaging because it was pretty easy to incorporate into that style, but I don't recall seeing it in any 3D generated animations/cartoons. It could be that the techniques just fell out of fashion, but I personally don't think that was the case as much as the techniques weren't easily done using 3D techniques, at least not in the past. I could be totally off base here however.

    I'm not understanding what you meant by "Style".. which style? Forgive me, I'm just a little confused.

    Regarding what we're talking about here, could you give a classic example of the kind of animation that would benefit from having something new?

  • Joe CotterJoe Cotter Posts: 3,259
    edited December 1969

    Here is a good explanation of the basic principles. One thing to keep in mind is that the various explanations treat the principles as independent things when actually they are like musical notes to be used in various forms and chords woven throughout the animation. When looking at the various examples, one will often see multiple principles in a single action, such as squash & stretch, anticipation, ease in/out... all in a single action sequence followed by a string of others as single principles or complex combinations like notes in a musical score or beads on a necklace. Think of Zev0's Glute and Breast Movment morphs, but expand them to the whole body, done in such a way as to facilitate animation, which needs to take into account the other principles of animation and the complex permutations that involves, such as subtle to very exaggerated versions of squash and stretch, versions that hopefully automate curves and arcs... etc...

    Of course any given product, especially in it's first iteration isn't expected to be the ultimate do everything version of what it represents, but one should consider the eventual aim of a product in it's classification.

  • Joe CotterJoe Cotter Posts: 3,259
    edited March 2013

    Some examples:

    Rig rendered example.

    Somewhat subtle but effective in Rapunzel

    This Wall-E clip shows in it's use of squash and stretch how subtle can be very effective, but very well executed in this example is the key.

    Tom and Jerry had some of the best examples of extreme squash and stretch, but I didn't find any on a quick search..

    .. and finally, a tutorial in Maya.. haven't been through it so can't say how good it is.

    Doing a YouTube search on either 'Squash and Stretch' or 'Principles of Animation' will give a wealth of reference examples :)

    Post edited by Joe Cotter on
  • wancowwancow Posts: 2,708
    edited December 1969

    http://www.youtube.com/watch?v=E_XY8MMbqek

    This video should be posted to Richard Haseline's useful resources! I watched it twice, and will probably do so more than a few more...

  • Joe CotterJoe Cotter Posts: 3,259
    edited December 1969

    I find this example very interesting as it shows a couple things. In the first example he shows using the effects on a timeline in a simple but effective way which helps make the transition from concept to actually applying it. In the example with the golfer, he doesn't explain something that this actually shows, animators cheat. In a real world scenario to create the 'arc' a golfer would have in a golf swing requires a complex set of positioning of the various muscle and bone structures to work. Animators will use squash and stretch to 'cheat' here, with subtle stretching of the arm and club to make proper tweening easier. This brings up a good example of how a plugin would preferably handle this. That is, an ability to build squash and stretch into a given set of the mesh over a course of frames, controllable preferably with a linear function similar to ease in/ease out (or fade in/out.)

    He also shows the typical starting exercise for S&S, a bouncing ball.

    Squash and stretch is also used in situations like arms punching, any type of impact..., arc movement as shown... more of course but not thinking of them at the moment.

  • Joe CotterJoe Cotter Posts: 3,259
    edited December 1969

    Something I didn't find but was common in old animation was a form of harmonic distortion of the character which would show as a ripple passing up an arm for instance after hitting something, or a ripple throughout the body when hit. Again, Tom and Jerry would be a fertile ground for finding this but one would have to take some time to find an example and clip it out of the rest of the cartoon.

  • Joe CotterJoe Cotter Posts: 3,259
    edited December 1969

    wancow said:
    http://www.youtube.com/watch?v=E_XY8MMbqek

    This video should be posted to Richard Haseline's useful resources! I watched it twice, and will probably do so more than a few more...

    Glad you liked it. I thought it was one of the better explanations I've found :)

  • BlackFeather1973BlackFeather1973 Posts: 739
    edited December 1969

    Thanks for the links, Gedd. I'll certainly go through these.
    Here's an interesting one with Aiko, done in Poser : http://www.youtube.com/watch?v=A3VlLPCDSyc

    I'm just aiming for the classic literal squash-n-stretch in first instance.

  • Joe CotterJoe Cotter Posts: 3,259
    edited December 1969

    The typical divide between Maya and 3DS is, Maya is often used in animation, 3DS in Games... both, and many others in movie special effects. The reason I bring this up is that if one is looking for examples on how to do animation such as squash and stretch in a 3d environment, it will probably be a Maya tutorial. From what I've seen (and I'm hardly authoritative) the Maya tutorials are typically showing how to incorporate the effects yourself in the animation sequence. For a market like DAZ, a more automated method of incorporating the effects into an animation sequence would be what would sell in this marketplace I would think :)

  • Joe CotterJoe Cotter Posts: 3,259
    edited December 1969

    ..Here's an interesting one with Aiko, done in Poser..

    That is an excellent example of how Japanese animators took Disney techniques (literally..., all of the major Japanese animation houses readily admit this) and transposed them into a modern format, very exaggerated and in the end, iconic, to create a new look that is typical of Japanese Anime. If one wanted to mimic this style they could use these principles as they show here and in Anime, but one could also used a much toned down version to create their own look just as western animation did with the old methods.

  • wancowwancow Posts: 2,708
    edited March 2013

    Okay, THIS WOULD be COOL!
    http://forum.unity3d.com/threads/89750-Mega-Fiers-A-mesh-deformation-system-RELEASE

    I wonder if someone could create a plugin for DS that would mimic these deformers...

    And Gedd, thank you so much for the information you posted! I'm slowly going through it and digesting it. :)

    Post edited by wancow on
  • digitalcraftdigitalcraft Posts: 57
    edited December 1969

    Some of that can be done by scaling, though in DS you will need to right-click on the Parameters pane's tab or click the menu button in the top corner and select Show Hidden properties from the menu to get the axis scale controls, or with magnets/DForms, or even with built-in morphs for some figures and scaling options.

    Mostly, the scale happens in all direactions, while it's desirable to have in a particular direction, though we are glad atleast there is a possibility of dynamic Bone scaling in DAZ.

    As I understand and few videos in this thread demonstrate that we need lot more for an effective Squash & Stretch Animation.

    A cool Plugin for Squash & Stretch with a possibility for Anticipation, ARC Movement with Easy-In and Easy-Out for all Squash & Stretch Animations will be a great addition on the DAZ Store.

  • wancowwancow Posts: 2,708
    edited December 1969

    <-----REEELY thinks Gedd's posts in this should be combined and put into some sort of sticky!</p>

  • digitalcraftdigitalcraft Posts: 57
    edited March 2013

    Some of that can be done by scaling, though in DS you will need to right-click on the Parameters pane's tab or click the menu button in the top corner and select Show Hidden properties from the menu to get the axis scale controls, or with magnets/DForms, or even with built-in morphs for some figures and scaling options.

    Thank you for the suggestion. I tried DForm a bit and saw the Squashing / Stretching Possibility. However, can a Plugin be designed specifically to add Squash and Stretch Possibility to any action.

    Let's say - Throwing a Ball. We add a ball to hand. The hand moves in a particular direction. Releases Ball.

    Now the Plug-in must improve this action with certain built-in Squash & Stretch features with AUTOMATIC ADDITION of ANTICIPATION, ARC MOVEMENT, FOLLOWUP as following:

    1) First the Hand moves a bit ( 5% ) in opposite direction as a function of Anticipation.
    2) The hand takes an " ARC movement " route instead of a linear path.
    3) The hand may get slightly "elongated" ( depending on the defined Threshold ) at the top of the arc.
    4) The fingers ( top 1/3 portion ) may bend BACKWARD slightly before they release the ball.
    5) The fingers and palm may get slightly elongated after they release the ball as a "FOLLOW UP" action.
    6) Hand and fingers come back to normal shape.

    Even if the Squash and Stretch can be whacky, it follows certain principles. These principles can be embedded if the user wants to add a bit of Squash and Stretch to any action.

    Looking forward to your reaction from a developer's point of view.

    Post edited by digitalcraft on
  • BlackFeather1973BlackFeather1973 Posts: 739
    edited December 1969

    I'm aware of the principles but i'm not an animator, so big thanks to Gedd and digitalcraft for the info.
    The road ahead is starting to clear up now. I'm working on a number of proof-of-concept scripts, to see what can be done and learn how to do it.
    Just packed up the first one and i proudly called it "SnS_PoC_01" (Squash'n'Stretch Proof of Concept 01 :P)

    The script demonstrates that you can set up a chain of weight mapped scale transforms and combine these with existing Pose Controls (also weight mapped). The entire chain can then be controlled by a single slider.
    More mature versions of the script will need an option to save and share these presets. I also think it would be real nice if i could add an option to generate Pose Controls for the chosen settings.

    If you want to give it a try, you can download the script here.
    You must have a Genesis-figure in your scene when you start the script. It only targets the right hand, so zoom in on that before running the script.

    The next test will probably be on ease-in-ease-out or anticipation. Looking forward to your opinions/feedback...

    SnS_PoC_01.jpg
    379 x 730 - 110K
  • digitalcraftdigitalcraft Posts: 57
    edited April 2013


    Just packed up the first one and i proudly called it "SnS_PoC_01" (Squash'n'Stretch Proof of Concept 01 :P)

    .

    Hi,

    I am glad somebody took it up and developed a Proof of Concept.

    I tried your Script and saw the possibilities.

    Could we try one small example ? This will help firm up our roadmap and could be a great template.


    Let's do a small Head Turning.

    The Character will turn his head to right.

    In this action let us add an SNS template.

    A))

    1) Since he has to turn his head to right, let him first turn to left slightly , let's say 5% ( Principle of Anticipation )
    2) Then he will turn head his head to right.
    3) While turning to right, his neck will stretch out ( so only neck gets elongated in one direction, perhaps Y axis )
    4) As his neck stretches out, his face gets expanded in " all axis" by 15% ( definable later).
    5) When he completes the head turn, the neck and head come back to normal size. Here you can use EASY-OUT ( may be later )
    6) Once we complete these steps it will become a simple template for an S-N-S enabled Head Turn. The user does not have to do anything manually. The whole thing will be automatic.
    7) The user can define the "boucyness" of the head by setting a threshold ( that would internally define the amount of stretching of the neck and enalgement of the head. )

    8) Later on we can think of the followup action template based on the NEAR ZONE strength of the envelop ( like in DForm). In the case of Head Turn, shoulders will move slightly after completion of the head turn which will accentuate the head turn.

    I would prefer a Template based SNS because many users of DAZ may not know all the steps like Anticipation, ARC Motion and Followup etc to create a successful SNS. Let the user define only the amount of exaggeration. Everything else can be taken care by the script.

    YOU MAY ALLOW US TO STRETCH THE NECK AND ENLARGE THE HEAD IN THE BEGINNING TO TEST. LATER ON YOU MAY CREATE A SND ENABLED HEAD TURN PRESET.

    B )) Is it possible to modify the whole head to a "Rectangular" or "Cylindrical" shape through an envelop ?

    C)) is it possibly to create a "RUBBER BONE" ? Think a character's hand wrapping around an electrical pole like a rope !

    I am excited and will eagerly wait for the next version.

    Post edited by digitalcraft on
  • BlackFeather1973BlackFeather1973 Posts: 739
    edited December 1969

    Thanks for looking at my script and giving it a testrun, digitalcraft. I think you're spot on with the templates, i was thinking in that direction as well. The technique used in this script could be part of a preset editor. One of the things i want to be able to do, is to select a figure, choose a predefined 'style' with a few adjustment sliders and have this automatically applied throughout the timeline. (still a loooong way to go :lol:)

    The example you came up with would be very interesting to try, as well as the ball throwing example you posted earlier, but for the moment still too complicated. I would have to fake my way through to achieve that. Gonna run a few tests first with a simple primitive, learn how to script through the timeline and come up with a few nice algorithms to get the desired effects.

    For your question B, could you post some examples of this ? I'm not sure what you mean exactly. Sounds like something that might be done with a morph.

    Love the idea of the rubber bone, but i don't think that can be done easily. You would probably have to make a geografted hand with a lot of extra bones to achieve this. (sounds like a job for a RawArt & Sickleyield team-up :))

  • digitalcraftdigitalcraft Posts: 57
    edited April 2013

    Thanks for looking at my script and giving it a testrun, digitalcraft. I think you're spot on with the templates, i was thinking in that direction as well. The technique used in this script could be part of a preset editor. One of the things i want to be able to do, is to select a figure, choose a predefined 'style' with a few adjustment sliders and have this automatically applied throughout the timeline. (still a loooong way to go :lol:)

    The example you came up with would be very interesting to try, as well as the ball throwing example you posted earlier, but for the moment still too complicated. I would have to fake my way through to achieve that. Gonna run a few tests first with a simple primitive, learn how to script through the timeline and come up with a few nice algorithms to get the desired effects.

    For your question B, could you post some examples of this ? I'm not sure what you mean exactly. Sounds like something that might be done with a morph.

    Love the idea of the rubber bone, but i don't think that can be done easily. You would probably have to make a geografted hand with a lot of extra bones to achieve this. (sounds like a job for a RawArt & Sickleyield team-up :))

    Hi,

    Thanks.

    1) Let's move on with the 1st Step. Allow the Neck to be "Elongated" and the face to be "Enalarged". That will help us create SNS manually.

    Remember we must not forget one basic principle. We must maintain the VOLUME. That means if the Neck stretches in one direction, it will get narrower. It can not expand in all direction. THE TOTAL VOLUME OF THE SNSed BODY OR BODY PART MUST REMAIN OR APPEAR TO REMAIN SAME.

    2) Let's attempt B in the same manner, work incrementally to begin with. Allow the user to stretch the Head in Y axis without increasing the size in other AXIS. If the volume is maintained, when the user tries to stretch/scale the head bone, the head in Y axis or upward, the head will get thinner and if downward, the head will Squash but will become fatter.

    In this case the head becomes a Primitive 3D object and we can use a Deformer to Stretch the head Upward or downward while maintaining the relative positions of eyes, nose and lips etc.

    VOLUME : Think of a balloon filled with water. If you press on one side, it will inflate on the other side, but the total volume will remain same.

    3) Hope we come with a practical "CLONE" RUBBER BONE soon.

    SPECIAL NOTE : DAZ has tons of internal strength in DFORM to achieve a lot in this direction. Idea is to mix the MORPH with BONES.

    At this moment we must just focus on to the "Scaling of any Bone in a user specified direction" . That means if I select the chest bone in the scene, the script must allow me to scale that bone in any direction I like. Let us try this UNIVERSAL SCRIPT for scaling of any selected bone. First single bone then we can work with multiple selected bones.

    DAZ allows dynamic scaling of bones. But sometimes it scales in all direction.

    "I want it to scale as per my choice of axis ".

    Post edited by digitalcraft on
  • BlackFeather1973BlackFeather1973 Posts: 739
    edited December 1969

    At this moment we must just focus on to the "Scaling of any Bone in a user specified direction" . That means if I select the chest bone in the scene, the script must allow me to scale that bone in any direction I like. Let us try this UNIVERSAL SCRIPT for scaling of any selected bone. First single bone then we can work with multiple selected bones.

    DAZ allows dynamic scaling of bones. But sometimes it scales in all direction.

    "I want it to scale as per my choice of axis ".


    The script already does that and a lot more, with the grouping, weightmapping and inclusion of PoseControls. Granted, it only did it for the right hand but it was just a proof of concept. Making it that way allows me to only focus on what i need to know/learn and thus make progress faster. Writing actual functional scripts is not even on the radar in this stage, that would cost me too much time.

    Scaling of a single/multiple selected bones is already standard functionality in Daz Studio. For most bones you'll only see a general scale slider in the parameters tab. The separate x, y and z-scales are usually hidden, but you can make them show up.

    scaling.png
    640 x 640 - 52K
  • digitalcraftdigitalcraft Posts: 57
    edited December 1969

    At this moment we must just focus on to the "Scaling of any Bone in a user specified direction" . That means if I select the chest bone in the scene, the script must allow me to scale that bone in any direction I like. Let us try this UNIVERSAL SCRIPT for scaling of any selected bone. First single bone then we can work with multiple selected bones.

    DAZ allows dynamic scaling of bones. But sometimes it scales in all direction.

    "I want it to scale as per my choice of axis ".


    The script already does that and a lot more, with the grouping, weightmapping and inclusion of PoseControls. Granted, it only did it for the right hand but it was just a proof of concept. Making it that way allows me to only focus on what i need to know/learn and thus make progress faster. Writing actual functional scripts is not even on the radar in this stage, that would cost me too much time.

    Scaling of a single/multiple selected bones is already standard functionality in Daz Studio. For most bones you'll only see a general scale slider in the parameters tab. The separate x, y and z-scales are usually hidden, but you can make them show up.

    Thanks for the indicator to the Scaling Property. I had missed that.

    You take your own time doing the script right.

    One small query. I want to add "SPRING EFFECT" to a regular walking motion. Is it possible to do with a script ?

  • BlackFeather1973BlackFeather1973 Posts: 739
    edited December 1969


    One small query. I want to add "SPRING EFFECT" to a regular walking motion. Is it possible to do with a script ?

    In theory, yes. In practice, depends on what you want to apply the spring effect to (head, breasts, clothing ?). Can you link to an example of what you want to achieve ?
  • BlackFeather1973BlackFeather1973 Posts: 739
    edited December 1969

    Second experiment : when scaling on one axis, the other two get scaled in the opposite direction. The adjustment values are calculated on the size of the bounding box, but are still a bit crude. Might try a few other methods to calculate adjustments.
    This technique might work for subtle SnS and on simple objects, but to be really usable it should be supported by morphs/dformers.
    Try if you like, script here. This is just a small testscript and only affects the head of a Genesis-figure (Genesis needs to be in your scene when starting the script).
    Even though the results might not look great on a Genesis head, we now know that the principle can be scripted.

    SnS_PoC_02.jpg
    600 x 900 - 247K
Sign In or Register to comment.