Difficulties with a dForce simulation? Try thinking outside the box - Get Simple

So I have this nasty evil minion sneaking up while Rosie's distracted and he subdues her - causing her to pass out and fall to the ground. 

Everything passed through dForce okay until I got to that amazing hair. Oh no... now what?!!!

 

The tough part is that the simulation doesn't begin to fail and freeze Studio until a little over two hours simulating. 

 

The issue turned out to be the close proximity of all of the colliding mesh at just that one point. Fixing that part was easy and I can do that temporarily - undo the change after the simulation completes successfully.

But... um... now the hair is exploding and freezing Studio by still getting stuck on something. After trying a few more temporary fixes it still failed. Sound familiar anyone?

 

Let's try a different approach. I have a few wearables that are nothing other than Null nodes with a primitive parented to it. The primitive has also been give dForce Static properties so I can adjust the collision behavior in the Surfaces pane. 

For this hair, I almost always use cone primitives so that I can either use the pointy end to flick the hair somewhere or the fat end to create a gradual shield sticking out from a problem area.

 

So I loaded my set of primitives that I use to hold the hair back behind her shoulders. This set has a Null parented to each collar with the pointy end inside it holding the fat end out in front of the character. At frame 10 in the timeline the nulls rotate to around 90 degrees to be placed directly over each shoulder, sticking straight out. When I load the wearable, that is the default behavior.

 

I used those two cones to direct the hair where it needed to go to avoid the failures I've been experiencing. It was easy keeping the cones out of the way of the hair up to that point... just keep them pointing straight ahead, then moved the rotation key to the problem spot and adjust what I need the cone to do at that point which, as it turns out is exactly the default setup - just at a different time. So then I go back the ten frames and set the rotations back to zero, so the cones are pointing straight out again. 

 

Now, immediately after the problem spot I need those cones to stop altering the motion of the hair. Rotating the nulls again might work, but there also remains the possibility that they could push too hard in that problem area and fuse the hair to it - disaster. So instead, I go one frame forward, select the cone and reduce the scale to 0.00. Go back one frame and set it back to 100 - then go to the very first frame and set the interpolation to Linear. In writing this, I'm realizing that I could have just set the Zero Scale, and then set the first key to Constant. Same result woiuld have occurred.

 

Problem spot is passed and the simulation looks like it worked perfectly. Another hour to go before I can see the final results. The important part is that the problem area is passed and the frames before and after worked exactly how I envisioned them to be in the first place so... Win!!!

Comments

  • DartanbeckDartanbeck Posts: 21,583
    edited October 2023

    Just to clarify more, very little of the antagonist was going to come in contact with the hair. But if that little bit didn't collide with the hair it would be Really horrifyingly obvious (the hair would disappear into the villain!!!).

     

    To keep my simulations as efficient as I can - and to avoid problems as much as possible right from the start, I prefer to remove this whole figure from the simulation. My method for that (since I don't have the companion) is to select the hip of the figure, then go to the hamburger menu and go Select > Select Children. This brings everything that can possibly collide on this figure into the parameters pane.

     

    I scroll to the bottom of the list and click the hierarchy arrows to open just that first level - and I do that for each item all the way to the top.

     

    Next I select and Ctrl Select "Display" for each of the nodes and when all of them are selected I uncheck "Visible in Simulation"

     

    For the costume, I simply temporaily hide everything using the eyeball icon next to them in the Scene pane. To make this easier on costume with a Lot of items, I select all of those items, create a new group leaving everything default except for a cool, memorable name, and then parent that group to the character. Now I can just click that one eyeball icon to hide everything at once.

     

    Now that this character won't collide at all, I create a primitive sphere and give it dForce Static properties, so I can control friction and collision distance.

    Placing it where it needs to go on the figure in question, I use the scale dials to flatten it out and shape it to roughly the shape I need it to be for collision. I use a script by mCasual to now orient the Origin of the sphere to match the part of the figure I want to parent it to, then I parent the sphere. 

     

    I almost never need just one, so now I duplicate it and set it up for the next part - in this case I started with the lower abdomen and now this duplicate will be for the lower chest. Like before, I use the script to set the Origin and then parent it to the lower chest. I did this one more time for the Upper Chest.

     

    For these primitive simulation helpers, I do a few extra things if I'm going to make them into a wearable.

    • Change the shader to be somewhat transparent using Opacity
    • Set the dForce Static properties to low friction, high collision offset
    • Add a Null to the exact location, parent that to the figure and the primitive to the Null - allows better flexibility
    • Select the primitive and go to Parameters pane > Display > Visible in Viewport Off, Visible in Render Off, Selectable in Viewport Off and, of course, leave Visiblity in Simulation On

    With everything parented to their nulls which are parented to the figure in the correct hierarchy, Save As > Wearable Preset > Give it a memorable name > Accept > Uncheck the figure > Check only the nulls > Save

     

    Now when I load them in, they're parented, invisible to the eye yet visible in the simulation. Works great!

    Post edited by Dartanbeck on
  • DartanbeckDartanbeck Posts: 21,583

    For times when I want to pull the hair behind her ears, I have a wearable that applies one of the cones mentioned above to each ear and, like the other cones, this begin pointing straight ahead, fat end out. On frame 10 they are rotated to 90 degrees.

     

    So by default this wearable will automatically tuck the hair behind her ears within the 30 frame buffer zone. 

     

    If I want to animate the effect instead of begin that way - as I do in the Dynamic Animation course, I simply delete the key on frame 10 for each cone and work out how they rotate with the character animation I've completed for it. Simple. Effective.

  • crosswindcrosswind Posts: 7,004

    Some nice tricks there, will try. yes

  • DartanbeckDartanbeck Posts: 21,583
    edited October 2023

    Other things I experiment with, thanks to analyzing many of Linday's settings is to try various combinations of gravity vs air resistance. Experimenting takes a lot of time and, what works with one product for a certain animation may not work with the same product and a different animation, or the same animation with a different product. 

     

    Friction settings in the Surfaces pane has also been a big hitter for me. So now I'll also start experimenting with difference between friction and density. Stretch, bend and buckle have been great to get used to to get my costumes to behave how I want them to and, again thanks to Linday, velocity smoothing.

     

    When working with simulations, it 'feels' to me that it helps to not get caught up in "Common Sense" and/or Realistic Physical Characteristics. Knowing that stuff is good enough. Now take some time to think about how you want the motion to look on the screen and less about what professor someone or another would say. That is all subjective, of course, but that 'feeling' is something I take away from watching things like "Light & Magic" on Disney +, a wonderful history of ILM by Lawrence Kasden, who also conducted all of the interviews. Brilliant! 

     

    Cinematic action doesn't always require realism. Believability, yes. Realism is something else entirely.

    Post edited by Dartanbeck on
  • DartanbeckDartanbeck Posts: 21,583

    I'd also like to add that, the example used to begin this thread is a Much Longer animation than what I normally do. Sometimes I just need to perform that longer run. Most of the time I try to keep them down to six seconds or less - sometimes a Lot Less.

     

    When I say six seconds, however, that's including the 30 frame buffer zone, so the output render is five seconds or less.

    Depending on what action is taking place, those simulations with Rosie's hair setup takes around two hours to complete, often times a little less but sometimes longer.

  • crosswindcrosswind Posts: 7,004

    In quite a lot cases, initial shape of the wearable / item really matters, esp. when aiming to get dramatic simulation results. Blender + Ds is always a mighty combo for me... easy and time-saving.

  • DartanbeckDartanbeck Posts: 21,583

    So another way I could deal with the issue mentioned in the first post of this thread:

     

    End the simulation before the failure point.

    Start a new simulation session (scene saved as a different increment) that uses the Memorized Figure option and carries on through the end

     

    Shoot the renders as different camera takes - switch the angle or cut to a close-up... that sort of thing. Sometimes that's just the best way to 'cure' a difficult simulation job.

  • DartanbeckDartanbeck Posts: 21,583

    My Arms Collide with the Torso so the Cloth Blows Up!

    Part of the magic with using dForce is that we can counter this easily - use the "Arms Up/Down" slider to get those arms up high enough so that we Know the simulation will take - and you'll notice that, using this method the simulation time is often a lot less.

     

    Now, after a successful simulation, delete the key that raises the arms - or, if it was keyed before, just change the value back to what it was originally, and if we didn't go too crazy with the raising of the arms, the cloth will still follow nicely.

    * Do keep in mind that this may not work for all garments. 

    * If your garment doesn't like the above worflow, try using a different morph, like Thin or Emanciated... just enough to prevent the explosion. Then dial it back to normal after the simulation.

     

    Another option entirely is to simply correct the animation so that the arms aren't intersecting with the torso in the first place. Sometimes it just looks better the way it was with the intersection going on, but if you're having dforce issues with it - Fix it!

  • DartanbeckDartanbeck Posts: 21,583

    That Orc keeps strangling Rosie!!!

    The fix I applied in the first post worked - only to reveal another issue before the animation is complete - and that part Has to Work!!!

     

    I simply used the same correction for that as well. Maybe this time? wink

  • DartanbeckDartanbeck Posts: 21,583
    edited October 2023

    crosswind said:

    In quite a lot cases, initial shape of the wearable / item really matters, esp. when aiming to get dramatic simulation results. Blender + Ds is always a mighty combo for me... easy and time-saving.

    Absolutely!!! Another Excellent point!

     

    crosswind uses Blender, I use Fit Control and Mesh Grabber. 

    Sometimes it just helps to get the garment (or whatever) into a better shape for the simulation against the character/animation in question.

     

    Linday's hair comes with some really good morphs to help predict the outcome of the intial drape - and it's amazing the differences we can achieve. Well taking this a step further, if something odd is happening I can cancel the simulation and, on that same frame - or the best example frame for the issue that's occurring, and correct the shape using Mesh Grabber - being careful and doing a good job of it. 

     

    Next, with the Tool Settings pane, Save the Mesh Grabber session as a morph. I usually name mine a short description with the frame number after, and then A, B, C... so that I can add corrections and save those alphabetically.

     

    Now run the simulation again with thay morph applied. Sometimes that works and sometimes it works better to just let the simulation complete and correct anything you don't like or make artistic changes to the simulated result using Mesh Grabber morphs.

    Post edited by Dartanbeck on
  • DartanbeckDartanbeck Posts: 21,583

    If I could ask for one more addon for Mesh Grabber, it would definitely be a Scale option!

     

    MeshGrabber rocks! I can see how some peopl might find it difficult. Keep in mind that we can select lines or vertices as well, so if polygons are being tough to control, try another option. Also, for some crazy fixes, try turning the radius all the way off and just grab single verts and push/pull them around. Rocks!!!

  • DartanbeckDartanbeck Posts: 21,583

    Fit Control for the figure you're working with is absolutely amazing!

  • crosswindcrosswind Posts: 7,004

    Awesome ! 

    And I also use Mesh Grabber from time to time, well the only pity is that there's no 'Mask' function with it. When I push 'n drag partial area on a welded geometry...doomed. crying   

    As a real tinker, I do need a MASK, wahahaha....laugh

  • DartanbeckDartanbeck Posts: 21,583

    I've mostly been working with Rosie, so if parts aren't welded, I see that as a wonderful opportunity to select those unwelded parts in the Geometry editor and Right-Click > Geometry Editing > Delete! wink

     

    Oh My!!!!

  • DartanbeckDartanbeck Posts: 21,583
    edited October 2023

    I'd also like to add that, just because I still haven't got to grips with Blender doesn't mean that I don't do actual 3d modeling. I just use Carrara or Hexagon instead, and I really like them both. 

    I'm a Lot more adept with Carrara. Hex was made by the same team, but it was made later - a stand-alone modeler from the ground up, whereas Carrara started like this, then they added that... now Carrara has so many ways to model it's absolute freedom and fun!

    There were a few things I couldn't figure out how to do in Hexagon, so I bought Arki's tutorials on Outfits and Hair. I'm still in the middle of the Complex Outfits course and loving it. Not only all of the expert knowledge (I'm a Huge Arki Fan!) but also just kicking back in class and listening to her... well... be her! Arki is amazingly cool!!!

    Anyways, she's going to be showing UV Mapper Pro rather than doing the UVs in Hexagon. UV work in Carrara can be a bit of a frustrating affair if you already know how to map - so I have a feeling that carried over into Hex as well. So I'm considering the small purchase of that too. We'll see.

      

    Post edited by Dartanbeck on
  • DartanbeckDartanbeck Posts: 21,583
    edited October 2023

    My Character is Running Too Fast! Everythings Breaking Apart!!!

    For this situation I'm starting with a higher amount of gravity, offset with a lower amount of air resistance.

    I went with

    • Gravity: 3
    • Air Resistance: 0.00

    Still too fast, but I could see it helping significantly.

     

    Next step was to run the animation to its furthest distance - perhaps just a tad before it reaches that point > select everything I needed to - everything moving that have to move together - then Create a Group, making sure that the option to have everything selected become parented within. This creates a key frame for the group where we are in the timeline. 

    So now I head back to frame 30 (my first frame of animation) and set the distance to be much shorter. As an example, for my scene the furthest distance was 570 feet along Z. At frame 30 I changed it's Z translation from 0.00 to 370, making the new distance travelled only 200 instead of 570.

     

    We'll see how that turns out looking in the end, but I'm currently FAR past the problem zone and everything is still looking great!

     

    Post edited by Dartanbeck on
  • DartanbeckDartanbeck Posts: 21,583
    edited October 2023

    Dartanbeck said:

    Next step was to run the animation to its furthest distance - perhaps just a tad before it reaches that point > select everything I needed to - everything moving that have to move together - then Create a Group, making sure that the option to have everything selected become parented within. This creates a key frame for the group where we are in the timeline. 

    So now I head back to frame 30 (my first frame of animation) and set the distance to be much shorter. As an example, for my scene the furthest distance was 570 feet along Z. At frame 30 I changed it's Z translation from 0.00 to 370, making the new distance travelled only 200 instead of 570.

     

    We'll see how that turns out looking in the end, but I'm currently FAR past the problem zone and everything is still looking great!

    Note: When I do these things, since it's my Long Curly Hair I'm dealing with (a LOT of polygons!!!) I hide it until I'm done working. And that's a solid rule for me. I never show the hair while I'm working on the animation.

     

    On that note, here's my workflow in a nutshell:

    • Load the Base Scene (Character and Render Settings set how I like them, complete with my 30 Frame Buffer Zones in place and ready to go)
    • Select and arrange an aniBlock (or aniBlocks) or start animating by hand
    • Bake aniMate 2 to Studio's Timeline
    • Animate the figure until completed - possible exception the expressions adjustments, but any facial (or otherwise) mocap is already done at this point.
    • Save
    • Load the Costume Wearable
    • Simulate Costume Elements if needed
    • Save
    • Load Hair
    • Simulate Hair
    • Save

    So I'm always animating with nothing but the character in the scene. Much easier on everyone!

    Post edited by Dartanbeck on
  • DartanbeckDartanbeck Posts: 21,583

    I have my version of the hair - set up how I like it - saved as a wearable preset.

    I have all of my costumes and variation elements saved as wearable presets

    I have several simulation helper primitive collections saved as wearable presets.

     

    Anything I change beyond the main product I save as a wearable. That way I can easily load them in quickly - exactly how I need them on the day. When I have to make changes to that, I save as a weable - either a new iteration or replace the original, depending upon what's going on.

  • DartanbeckDartanbeck Posts: 21,583
    edited October 2023

    Wearable are essentially just data that weights almost nothing in the system - unless (and this is a big one) it has been simulated and we haven't cleared the simulation! That will chew up a hefty toll on our storage - the longer the sim, the larger the file. 

     

    So if I run a simulation on something using new settings, like it and want to overwrite the original wearable I made, I start by saving my scene With the simulation intact, then Clear the simulation and save the wearable.

     

    Reload the scene if I need to. But normally at this point, with that scene simulated and saved I'll load the base scene and start another animation.

    Post edited by Dartanbeck on
  • DartanbeckDartanbeck Posts: 21,583
    edited October 2023

    Don't Try to Shoot a Whole Film in One Freaking Render!

    Seriously folks, 

    Watch some documentaries or educational material on filmmaking. Not just animation... Any filmmaking.

     

    Films are made up of a whole bunch of really short 'shots'. A typical scene in a TV drama or movie will be made up of a whole lot of shots, and one show is made up of a whole lot of scenes. Sometimes they're not even filmed in the order they appear in the final product.

     

    Do yourself a HUGE favor and work in smaller lengths. If the animation (example, a particular aniBlock) takes a lot of time along the timeline, and you want the whole thing... that's fine. But you'll have a much easier time if you change the camera perspective within that span of time and, if that's the case, stop your animated scene at those breaking points. Trust me, you'll start having much more success and get a Lot more done - because there truly will be less things going wrong.

     

    As an example, my usual animation shot runs 240 frames including the 30 frame buffer zone. So the render comes to 210 frames.

    Post edited by Dartanbeck on
  • DartanbeckDartanbeck Posts: 21,583

    ...that's not to say that we won't make exceptions!

    There are always exceptions!!!

     

    Just try to keep the really lengthy animation shots to a minimum - dForce or not.

Sign In or Register to comment.