SketchyPhysics 3x June 27 version.
-
Here is an example using the new scripting system. It uses the "ontouch" event to create joints between objects. The wheels on the car will connect with a hinge the first thing they touch, in this case the box. The spheres will connect with a ball joint everything they are touching the first frame. That allows them to connect to anything they are touching in the chain.
The nice thing about joints made this way is that you can copy them and they still work as expected.
-
This example adjusts linearDamp to make bodies act like they are in space. Also shows that objects can be started in motion.
-
Simple breaking objects. The breaking interface is really a work in progress. Sometimes objects breaking can cause Sketchup to crash.
-
In the ontouch event, is the speed the speed of the collider at impact... and pos the point of impact?
And thanks for those demos!
Here's my first proper model with it, copyable ragdolls! You can't freeze them normally, but you could probably set them to freeze on frame 1, after the joints have connected.
-
Chris, how DO you freeze objects in script? Has that been added yet? I've tried frozen=true and frozen(1), but no luck.
-
Since this version is unstable, it would be best if you created a method that stops the simulation, after an amount of time, if something strange happens, or the ismulation gets laggy(breaking feature).
-
@wacov said:
In the ontouch event, is the speed the speed of the collider at impact... and pos the point of impact?
Yes.
-
@wacov said:
Chris, how DO you freeze objects in script? Has that been added yet? I've tried frozen=true and frozen(1), but no luck.
Doesn't look like I have hooked that up yet.
-
@unknownuser said:
Since this version is unstable, it would be best if you created a method that stops the simulation, after an amount of time, if something strange happens, or the ismulation gets laggy(breaking feature).
There isn't a "magic bullet" for that. I need to find all the different ways it can break and then tackle them one at a time.
Post any code you find that breaks the sim and I'll put the right error checking in.
-
-
Nice!
-
That's a nice representation of cloth, Wacov!
-
Thanks guys! One thing I'm finding with the cloth is it tends to collide with itself. That seriously slows stuff down, and it's not really neccessary for a semi-realistic simulation. Can we have object-specific collision detection? So, give the choice to either collide with everything, collide with everything except '...', or collide with nothing but '...'. Keep it pretty intuitive, so using a string finds objects of that name, a var for specific objects, and let us put them into an array if needed.
So, on the cloth, I'd name all the bars the same, and tell them to collide with everything except each other. You might also be able to make a crude fluid flow effect by creating spheres that only collide with the static mesh.
-
I love the new Script field and script but I was wondering is there any way you can control a scripted joint with a slider or key.
-
-
YES!! The simulation finally registers in-simulation created objects!
-
@wacov said:
Thanks guys! One thing I'm finding with the cloth is it tends to collide with itself. That seriously slows stuff down, and it's not really neccessary for a semi-realistic simulation. Can we have object-specific collision detection? So, give the choice to either collide with everything, collide with everything except '...', or collide with nothing but '...'. Keep it pretty intuitive, so using a string finds objects of that name, a var for specific objects, and let us put them into an array if needed.
So, on the cloth, I'd name all the bars the same, and tell them to collide with everything except each other. You might also be able to make a crude fluid flow effect by creating spheres that only collide with the static mesh.
In the physics engine you would need materials to do that. So don't expect it until SPIV.
One thing you could do that might speed things up is to change the connect script to something like this.
ontouch{|t,s,p| connect(t,"ball") if frame==1 #empty the ontouch event after the first frame. #this will ensure that ontouch isnt called again. ontouch{} if frame>1 }
-
@phy said:
I love the new Script field and script but I was wondering is there any way you can control a scripted joint with a slider or key.
Not yet. But I will do that next.
-
JaViXP it will work better if you change the onend to this:
onend{ group.erase! }
-
Will we be able to embed sound files anytime soon?
Advertisement