[SP2]Basic Tutorial Posted (Moved & Improved) 5/11/08
-
Edited by CPhillips Apr 1, 2009.
I am making this tutorial Sticky again. Even though its for 2.0 it all still applies.Hi everyone, I discovered Sketchyphysics just a few weeks ago, and my already unhealthy addiction to SU increased exponentially!
However, as a new user I couldn't find any information on how to use the program. So after a lot of frustration, I finally got a (basic) grasp on it, and I'd like to share a starters guide with anyone who's interested.
This is just to share a few basic concepts with a new user, and it is in no way a "Dummies Guide" or true help page...just a diving board for those who are TOTALLY lost.
Any comments are appreciated, (good or bad) as it's a work in progress.
Edit: NEW address:
-
Indispensable!
-
Thanks a lot for a great tutorial.
-
Awesome!!
Thanks a lot.
-
Best tutorial I have seen yet!! Thanks Curbs.
Ok if I put a link to it in a few places?
Chris
-
Thanks for the kind words everyone.
I updated the first page with a link back to these forums and a credit to Chris for being the genius behind the whole thing. I also expanded on the 2nd jointing page explaining a little more about grouping joints. (Or at least as much as I understand it.)
Feel free to link to it anywhere you want, but it is just a free Google page, so it might crash if there's too much traffic. But I'll cross that bridge if it ever happens... I just want to see more people using SP and posting videos!
-Curbs
-
Thanks for the tutorial, it sure helps to keep models from falling apart, when you want that! C Phillips has created something amazing!
alpmeadow -
A few weeks back, in the SU/SP forum I committed to writing a basic SP tutorial, to fill the vacuum. I am a rank newbie in SP, and only been using SU a few months, but SP was the "bees knees" to SU. However, I could not master even simple stuff in SP (or what I thought would be simple) so the idea was that as I learned, and with Chris's and others help, I could write a basic in depth tutorial covering all the elements in a consistent manner.
Then Curbs tutorial emerged, and it is better than what I envisoned doing.
I've done tutorials before, but none this complex, and I well know the amount of research and work involved, especially with the quality and level of detail Curbs has presented.
So, my hat is off to Curbs, and I now will refer to his tutorial and make any comments in this forum.
jgb
PS: I just read it again. I have 1 comment...... MORE PLEASE!!!
-
JGB: I just saw your post about making a beginners tut. My apologies...I didn't mean to step on toes if you already had a work-in-progress. I just saw the same void as you... an incredible program that there was NO information for!
But I'd definitely like to work with other beginners (like myself) and the Vets with the answers and maybe get a community Wiki-style guide put together that we each could add to.
I really like your idea of sharing "what went wrong" and "how you solved it." Troubleshooting is KEY! I also want to add a few pages, one dedicated to each joint and how to use it. (I'm having a LOT of fun with adding a servo to a rag-doll model right now.)
FYI: I solved your door-hinge problem and am going to post it on your thread. (That was a GREAT problem that made me think!)
-Curbs
-
I noticed in your tutorial that you connect the car wheels to the body by grouping the hinges and the body and then attaching the wheels. That will certainly work and most cars I have seen do it that way. Even most of the models have posted have done it that way.
But there is another "right" way to connect wheels. Group each wheel with a hinge joint and then connect the hinges to the body.
The second method has several advantages. First you can move the wheels around and the hinge moves with it. That means you can tweak your car much easier. Second when it comes time to add say a steering joint you don't have to regroup the models. Just break the connection and put the steering joint in between.
It turns out almost all models can be rigged one way or the other with no difference. I did all my models the first way in the beginning. Now I do them all the second way and I have found it to be better in most cases.
My new rule of thumb is every object only has one internal joint. And that joint connects to the parent (the object you want the joint to move with). There are some models that you need to have more than one joint per object (a tank tread for example) but it works well for most cases.
-
Ahh. Thanks for the different perspective Chris.
In the car example, my thought process was this:
I would Joint-connect the wheel to the thing that makes it spin. (The hinge.) And then group the hinge with the body I wanted it to “stick” to.
But now I see why you might want to do it in reverse. Like you said, it’s easier to move a wheel when it’s grouped with its joint. And if the model becomes more complex, there would be less tracing of groups and broken connections if each object is only grouped to its one joint.
But intuitively, it still just seems backwards to me, so I guess I’ll make the redneck quote of the day and say,
“It just don’t make sense ‘till you think about it.”
I might have to add a full page to the tut about choosing how to group joints and when you would want to do it one way or the other.
-
@curbs said:
Ahh. Thanks for the different perspective Chris.
In the car example, my thought process was this:
I would Joint-connect the wheel to the thing that makes it spin. (The hinge.) And then group the hinge with the body I wanted it to “stick” to.
But now I see why you might want to do it in reverse. Like you said, it’s easier to move a wheel when it’s grouped with its joint. And if the model becomes more complex, there would be less tracing of groups and broken connections if each object is only grouped to its one joint.
But intuitively, it still just seems backwards to me, so I guess I’ll make the redneck quote of the day and say,
“It just don’t make sense ‘till you think about it.”
I might have to add a full page to the tut about choosing how to group joints and when you would want to do it one way or the other.
I think it seems backward because you are used to the other method. Try it for a while and see if you like it. I sure do.
The built in wheel,door and lift use this method. No one ever seems to use those. Its too bad because I believe that is the easiest way for a new user to build a jointed object. You don't need to use the joint connection tool at all.
To recap. A wheel is a capsule or wheel shaped object that has a embedded hinge (or servo if you hold CTRL) and it is automatically connected to the object you clicked on when you started drawing.
A door is the same thing but the shape is a box and the joint is at one corner. This can be used to make articulated arms quickly. I can do a rag doll in a few minutes.
Lift is a capsule with a slider (or piston) at the center. I dont use it much but it is here because it is a logical extension of the wheel/door. I plan to add a box+slider in the next version.
The advantage is if you do it right you never have to use the JCT tool since objects are connected automatically and logically. Make a car by drawing the body and then drawing in the 4 wheels and it just works.
-
I too did it (intuitively) with the joint first attached to the stationary object. I had much difficulty getting things to work.
Since Chris's note on doing it "the other way", I've had more success.
I now look at joint attachment as......
Put the joint on the part that moves, attach and group it in, and then attach it to the other part. ie: Hinge on the door first, then connect it to the door frame.
I also find this also makes editing the setup easier.
And, those newer joints Chris mentioned above seem better. Gotta experiment my Landing Gear model with them.
jgb
-
I have updated the tutorial based on "the better way" of jointing and grouping.
The basic process boils down to:
- Add a joint for the part you want to make move.
- Make the moveable part and the joint a group.
- Joint-connect the joint to a “parent” object in the model.
Thanks for the suggestions guys, hopefully people will a better understanding with the new tut, I know I do!
New jointing page here: http://curbs77.googlepages.com/sketchyphysicsjoints22
-
I went through your update.
You left out 2 important steps.
1 - You need to Joint Connect the joint to the moving part before you group them.
2 - You need to set the SP shape of the joint/part group as well, and to the same shape as the part alone was set to.I tried it "by the book" and it did not work. When I did the 2 extra steps above, it worked.
BTW, my LG demo is working, at least the bogie comes down as commanded. I had to redesign the upper hinge joint for extra flexibility to get it to work without distortion. I'll post it later in a separate note, and detail what changes, and problems I had making it work thus far.
Still playing with the LG doors. I had them swinging free, then opening with a servo, but I made a minor edit, and the whole thing blew up. Trying to get back to the almost working state first.
jgb
-
OK, here it is. Incomplete, but the main part is working.
Turn layer 1.5 A/C Outer Skin visibility off to see the thing working.
In this version 3 of the demo, there are several significant changes over version 2, aside from getting it to work.I deleted the documentation layer. It just got in the way, and was a bear to update.
The LG door is in 2 parts, and is bigger. The 2 part is really the basic design for the whole thing. My previous demos were 1 piece, because they were a demo. Now I need it in 2 pieces to complete the demo, and this demo has proven to be of more value than I expected. It forced 2 major design changes to the base design.
I am having a lot of frustration properly hinging the 2 doors. I got it working on Friday, but I made a change to the doors, and never got it working the same again, so for Ver 3, they simply drop off.
What I want in the next demo is for the top door to hinge from the skin at its top edge, and the bottom door to hinge from the bottom of the top door. There will be a set of actuation struts connecting the doors to the bogie with various joints, so they open as the bogie extends. I noticed that if the doors simply hang there, they interfere with the bogie and the bogie goes unstable. So to prevent that, I replaced the upper hinge with a servo so the doors partially opened under control, and there was no interference if I opened the doors before trying to extend the bogie. Not being able to keep the bogie up when starting the run (it goes 1/2 way down), I adjusted the door servo to fully open on run start by setting the min/max angle. That's when I shoulda saved it and posted it here. Nope; I just had to try something. It all blew up, and I have not been able to get back to that point since.
Changes to the bogie.
The biggest change was required (and it will be incorporated into my airplane landing gear model) because the bogie is pushed out (red axis) during its motion by the drag strut. At first the excess flexibility in the joints hid this fact, until I got up close to see what was happening. I had to change the top pivot to a 2 joint affair. Can't use a "U"joint or ball joint, as there is nothing strong enough in "real life" to take the kind of loads this LG will impart on that joint. There is such a joint, called a "spherical bearing", but not that big, nor do they have the range of motion needed. It had to be 2 hinges on the red and green axis. So now the bogie can swing free, controlled by the drag strut. The extra lobe on the back of the part is for the up/down lock, to prevent the bogie from moving while handling the landing shock and loads.I had to put the green axis hinge mid point in the part, to avoid perception problems looking at the whole thing. I know the actual joint group does not have to be on the part, but on the joint line common to the 2 parts, but it looked real weird to put it offboard the bogie. And yes, I can turn off the joint layer visibility if I have to.
So here is what I've discovered.....
For the tutorial......
1- Do not attempt to edit a part with a joint connected to it, if the edit changes the part shape, or disturbs the joint line. Delete the joint, edit the part, re-attach the joint.
2- Make sure you can see the joint within the group. If you bury the joint inside the part (as I first did with the top green axis hinge) and you cannot see it, you cannot attach it properly, and the joint will fail. That is why there is a "cutaway" in the top of the bogie.
3- So far I've only played with hinges and servos. They attach differently!
A hinge is placed on the moving part. Then the hinge is jointed to the moving part and grouped to the moving part. Then the hinge is jointed to the parent part.
A servo is placed on either part. It is then jointed to both moving and parent parts. DO NOT group the servo to either part. I have not yet experimented with putting a servo between 2 moving parts. Should be hair pulling fun.
4- Make sure to shape all the relevant parts correctly. Make sure to shape the grouped jointed part the same shape as the part alone. Yes, you have to set shape twice.For Chris........
1- Is it possible to tighten up the joint flexibility? I noticed that I had severe dislocations and joint distortion at motion extremes which seems to be caused by the sheer "weight" of parts hanging from the joints, plus a lot of bounce. That also happens when there is a motion interference. When I changed the SP gravity to .1G, the bounce and distortions lessened significantly. Joints should be quite rigid except along the motion axis.
2- (Asked before) Can we get a "start" angle setting for the servo, between the min & max angles?
3- Also on the servo, when I get very close to the zero (left) setting on the control, the servo spins uncontrollably. At the 1 (right) setting, it just stops as expected.
4- Could you make the [ESC] key equal to reset?I got more, but this is enough for now.
jgb
Landing Gear Demo, bogie extension/retraction under control.
-
JGB: Try the joint tut again, I just did it step by step from a blank SU file, and it worked fine.
I think you may be overthinking the whole joint-grouping thing, and it's probably my fault for posting the tut before Chris' insight.
I am confused as to why you would joint-connect a part and a joint, and then group them together. The grouping will negate the joint-connecting you just did. Usually it is one or the other (joint-connect or group.) I find it helpful to group the joint and object right away, so I can think of them as one piece. Then I just have to find another object to joint-connect them to to make it work.
I don't want to confuse you if you have a method that works, as there are multiple ways to do it, but I think you'll have more success with:
(1 joint/1 object grouped)---joint connected to----(parent object)(Thanks Chris for the simplicity of helping me understand that.)
I also haven't set the shape of the resulting groups, but haven't had a problem yet.
I agree if you edit a shape and it changes it's geometry, the joint may make it work differently, but as long as the original axis is maintained, you should't have a problem. And yes, there is no shame in deleting a joint and putting a new one in if you're thoroughly confused.
As far as a hinge, servo, and motor, I've found they all attach the same way, but this "way" may change from model to model. If you can make a hinge work right in a certain model, then a motor or a servo should be able to be substituted the exact same way in that model.
I think a lot of the problem stems from breaking joint-connections when new groups are made. As soon as you re-group an object with something else, any joint connections made to it previously will be lost.
As far as burying joints where you can't see them, don't be afraid to place a joint off of the part itself, as long as the axis will work for you. I haven't looked at your model yet, but I made a simple 3 arm, 2 servo, 1 hinge model (inspired by your original model) that can show how easy it is to start a "chain" of joint-connected groups.
This first shot shows that there are 2 servos and 1 hinge, each on moving parts:
The second shot shows an exploded view with the joint-part grouping, and even though none of the parts touch, the axis' are all still the same, and it moves exactly like the unexploded model:
Take a look at the model, delete the joints if you want and try to put them back in using the 1,2,3 method:
- Add a joint for a moveable part.
- Group the joint and the part.
- Joint connect the joint to a "parent" to "ride on."
The pics don't show the connecting, but if you start at the ball arm and work your way back to the block, each joint-connected parent is the piece behind it. (Which is another group including a joint.)
The only thing to watch out for is the breaking of joints when you make new groups. I first added all my joints and did the grouping, then I started the joint-connecting process so I knew there wouldn't be any broken connections.
(Also disregard the gyros, they just keep the ball-arms from going crazy when you move them.) And don't apply any of this discussion to the gyros, they seem to be a whole different beast!
Anyway, I'll be traveling out of country for a few days and I don't know what my internet acces will be, but if I get a chance to look at your model, I will, It was already looking great before.
-
For Chris........
1- Is it possible to tighten up the joint flexibility? I noticed that I had severe dislocations and joint distortion at motion extremes which seems to be caused by the sheer "weight" of parts hanging from the joints, plus a lot of bounce. That also happens when there is a motion interference. When I changed the SP gravity to .1G, the bounce and distortions lessened significantly. Joints should be quite rigid except along the motion axis.
2- (Asked before) Can we get a "start" angle setting for the servo, between the min & max angles?
3- Also on the servo, when I get very close to the zero (left) setting on the control, the servo spins uncontrollably. At the 1 (right) setting, it just stops as expected.
4- Could you make the [ESC] key equal to reset?I got more, but this is enough for now.
jgb[/quote]
- How strong a joint is is determined by how big the objects it connects are. This is something the physics engine does and I don't really have any control of it. Make the objects as big as possible. Maybe add some hidden geometry.
- In next version this will not be a problem. You can set the initial value to whatever you want. Even something like this: (3.0*5.0)/sqrt(16)
- Fixed in next version.
- I suppose so.
-
Also you will get some sagging of the joints if you separate them from the objects like Curbs shows in his second image. But it is still a useful way to build the models. And you can move them closer once you have the connections working..
-
Advertisement