[SP2]Basic Tutorial Posted (Moved & Improved) 5/11/08
-
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..
-
-
Chris
It's amazing what the hand of the master can do. Thanks.
Last night I looked at a few working models (mainly the steam engine) and came to realize that jointed objects should touch for stability. I deliberately kept them apart, to preclude interference. I learned that when my ball joint at the apex of the drag strut jammed against the bogie early on, and when I was swinging the gear doors through the outer skin. I opened the joint separation clearances, and the interference problems went away. I guess that gapping now has to be done more judiciously.I was about to change my LG model to tighten the hinge and servo joints, and your edits show I'm on the right track. Based on that revelation, I'm going to experiment with large disks at the joints (to be hidden) just to act as stabilizers. Yet that confuses me as Curbs demo has very widely separated joints, and his is very stable.
Adding mass is a surprise. I noticed you placed capsules on some parts. Any reason why those and not just a simple cube (to be hidden)? What governed the size?
I noticed the servo joint is visually gone, but its physics remain. I know we can delete a joint group drawing, and it still works, but with the joint gone, there seems no way to delete it if needed, or see it for reference. Did you remove it for any reason?
Anxiously awaiting the new SP version. Any idea on its release date?
Curbs.
Thank you as well for the demo.As far as overthinking the problem, I am very prone to that. The old planner in me. I'll spend an hour planning how to do a 10 minute job.
However, my process as stated was the result of about a dozen trial-and-error exercises, mainly on the failed LG door hinging. I have the paper trail to prove it. It is very conceivable I led myself up the proverbial garden path, but I tried all combos of grouping and attaching to get to there, all starting from scratch (deleting the joints). Having little experience in SP, I may not know the better way, and discovery may or may not show me that way. I used your tut as a starting point, and it worked in some cases, but not all. That is how I found that servos and hinges attach a bit differently.
My next planned trial was to do as you suggested, draw everything, attach the joints all at the same time, then group them in a logical order, also, I surmised from the free end back to the base, but I ran out of time yesterday. It seems we think alike in many ways; it just takes my old bones longer to get there.
And so far, I have only played with servos, hinges and used a ball joint and "U"joint a very few times. I've had zero success with sliders for what I want to do with them.
I also came to the conclusion, that I had to tighten my joints (see above to CP).
Yet your right hand demo shows a wide joint separation, but it is stable, with no bounce or dislocations at extreme ends. Why are mine so loosey-goosey?Have a good trip; it's time for me to play.
jgb
-
@jgb said:
Chris
Adding mass is a surprise. I noticed you placed capsules on some parts. Any reason why those and not just a simple cube (to be hidden)? What governed the size?No reason for those shapes or sizes. I just wanted to make sure they didnt touch any other parts. Size was just "bigger". I did the whole thing in about 5 minutes.
@jgb said:
Chris
I noticed the servo joint is visually gone, but its physics remain. I know we can delete a joint group drawing, and it still works, but with the joint gone, there seems no way to delete it if needed, or see it for reference. Did you remove it for any reason?Anxiously awaiting the new SP version. Any idea on its release date?
The servo is still there. Its just inside the geometry a bit. Use xray. Did you know that there is a layer for joints? You can show hide them easily that way.
No release date for the next version yet. I am still trying to finalize what features it will have.
-
Your 5 minutes is my 5 hours, if I succeed.
Yes I knew about the Joint layer, just didn't occur to me.
Thanks
jgb
-
Sorry to be a baby but could you or someone else please give me clear install instructions i get the following error message "Error Loading File SketchyPhysics.rb
No such file to load -- SketchyPhysics\sketchyphysicstool.rb" and nothing appears in the open SU document, thanx for the fantastic tut i hope to get to use it soon, regards
Advertisement