Page 1 of 1

grouping based of fall off

Posted: Thu Mar 12, 2020 6:19 am
by andyhowell
I was doing a test, using one of the example files. It uses the explode and curl nodes to give an effect of disintegration. I applied an unpack node after the MOPs nodes and then applied a Mountain SOP. The effect was interesting but was applying it to all pieces. Ideally, I wanted the effect to be applied to only the pieces that had been translated and free of their original positions. I thought of using a group node then using this within the mountain SOP, but was unsure how I could get this selection to happen, and link it to MOPs.

Again any ideas would be greatly appreciated.

Re: grouping based of fall off

Posted: Thu Mar 12, 2020 10:18 am
by toadstorm
Sure, this is pretty straightforward.

When you use the Unpack SOP, you have the option of transferring attributes from the packed points onto the points of the unpacked geometry. You can transfer the "mops_falloff" attribute that's already being used to modulate the effect of the curl noise, and use that to modulate the effect of your Mountain SOP, via MOPs Apply Attributes. When applied to regular geometry, Apply Attributes works a little like a blend shape, with mops_falloff as the weight. Connect the unpacked geometry to the first input, and the result of the Mountain SOP to the second input, and it should just work. If you want to tweak the timing of the wrinkles appearing, you could use MOPs Remap Falloff to adjust before using Apply Attributes.

I'm attaching a screenshot to show what the network looks like.
mops_mountain.png

Re: grouping based of fall off

Posted: Thu Mar 12, 2020 10:40 am
by andyhowell
Just done it. Amazing.
Absolutely loving this MOPs implementation.
I'd like to try and post you some tests in the next few days.
As I mentioned I'm more VFX than motion graphics, so using these tools in more of an unorthodox manner.
Thanks again for your help and advice with these questions I keep firing at you.
Will be in touch

Thanks again

Andy

Re: grouping based of fall off

Posted: Thu Mar 12, 2020 11:00 am
by toadstorm
Great, I'm looking forward to seeing them!

It's a bit of a misnomer that MOPs is strictly for motion graphics... that was the original intent of the system, but it's definitely capable of solving classic FX problems. The EUE talk that Moritz and I did last year has some examples towards the end of using MOPs to adjust RBD simulations post-sim. The commercial version will be especially suited to FX, as I'm integrating MOPs into DOPs so it can work with particles, RBDs, and Vellum.

Re: grouping based of fall off

Posted: Thu Mar 12, 2020 11:25 am
by andyhowell
That sounds amazing. I look forward to seeing that when it's ready.
I have done quiet a bit of simulation in the past. I do enjoy it, but it can be agonising when needing to start to tweak so many parameters for client approvals. It's great to try and get the look of nature and the natural movements of dynamics, but with all the clever stuff you've put in to the MOPs nodes. Thanks again for all the help on this.
Will be in touch.
Oh one thing I wanted to ask. Is there a way of randomising, or "noise-ing" the values of the rates of change. So for example you might have a MOPs Shape Falloff, translating across an object. Down stream we have a MOPs transform modifier, and parts of our object start to translate based on the translate values. Can you have different speeds/rates of these translations/rotations/scaling for example? I know you can use noise in the Shape Falloff node, but this is just noise of when those pieces are acivated, but oce activated, I'm after rate/speed differences. Hope this makes sense?

Re: grouping based of fall off

Posted: Thu Mar 12, 2020 11:35 am
by toadstorm
It's possible to do this, though maybe not as intuitive as I'd like. Normally if you want to think of animating things based on a rate of change, it's easier to do in DOPs, where each evaluated frame is dependent on the frame before it. What you can do in this case to keep it procedural is use a VEXpression on the Transform Modifier to change the amount that each object is rotating based on the falloff attribute, or really any other attribute you want. The VEXpression would look like this:

Code: Select all

float amt = @Frame * 10 * @mops_falloff;
rotate = set(0, amt, 0);
There I'm scaling the spin rate, 10, by the falloff attribute value, and then binding the result to the "rotate" vector which is automatically understood by the Transform Modifier. You could scale by any bound value, though, or even use some other bound attribute in place of 10. It'll accept any VEX you can write, as long as you're eventually writing to one of the commented-out attributes shown in the default value for the VEXpression.

Re: grouping based of fall off

Posted: Thu Mar 12, 2020 12:16 pm
by andyhowell
Once again, thanks for the help there. I will give that a try.
As I'm working I wanted to check, I've found that when incorporating the spring modifier, it sometimes needs a little fiddle with, ie turning on Display as Sprites, or Preview Fall off to update. Occasionally everything disappears in the scene view. Just wondered if it's a graphics issue at my end or if you were aware of it as a very minor bug. Like I said, I get it all working again after switching things on and off.

Re: grouping based of fall off

Posted: Thu Mar 12, 2020 1:27 pm
by toadstorm
The Spring Solver is internally a DOP network, so sometimes it just doesn't reset the cache properly. I haven't found a great way of fixing that issue yet, but if you just go to the solver options on the Spring Solver node and hit "Reset Simulation" it should line up correctly.

Re: grouping based of fall off

Posted: Thu Mar 12, 2020 2:04 pm
by andyhowell
Ah, OK great thanks. I wasn't sure if it was something at my end.
Thanks for that.
I shall carry on experimenting and see what I come across. I realise I'm a little late to the party as it were. I know this has been around for a while now.
I'm keen to see what can be done when pushed a little.
I'll look at sorting out that rate/speed change next.
I'll try to post some tests as soon as they are through.
Really appreciate your time on this.

Thanks

Andy