I need to animate a flexible pipe with these constrain:
- the pipe comes from the internal hole of a bigger fixed pipe
- the other end of the pipe is attached to an object. i want to directly move just this object
a. I created the pipe using a curve and converted it to a mesh. Do you really have to convert it ? Wouldn’t be usefull to keep the curve control points ?
b. i created the armature and ik-constrained the (last-1) bone the an empty child of the object i have to move. How many bones do i have to create ? Does it depend on the control points number or the more the better ?
c. i rotate-constrained the last bone with the above empty. What are the differences between the spaces (world,local,local w/parent,poses) ?
With the above setup i’ve got some problems:
d. The flexible is bending in anormal way. What i have to do in order to get a softer shape of the curvatures ?
e. How can i mantain the fixed end of the moving pipe inside the fixed pipe faces ?
thanks for any hint and sorry for any bad english use.
The more bones you have in your armature, the more flexible the pipe will seem. If you have an armature of 6 bones, make the IK chain five bones long, so the bone that is at the fixed end of the pipe won’t move when the IK target moves. This will keep that end of the flexible pipe firmly attached to the bigger fixed pipe.
Actually I thought to IK-constraint just one bone, the last-1 one. I’ll try.
Increasing the number of bones will reduce also the irregularity ? That’s my bigger problem so far.
I attach an example picture:
I tried to play with the mesh of the pipe but without any good result.
I’ll try to increase the number of bones…
Here is another idea for a flexible hose. In the attached blend, I have created a path curve, with an empty at each end. The 2 control points at each end use the empty as a hook. You can add as many control points as you want to the path, add as many hooks as you want, and add more than one control point to the same hook. Also, in the hook modifier, you can alter the force setting.
Open the attached, and move & rotate one of the empties.
Best of Luck!
FlexHose.blend (42.5 KB)
Many thanks for the hint ! It seems interesting.
Just one point: do you think this way I can limit the flex hose lenght ? I don’t want to stretch it.
Yes, you could limit the length, and if it does stretch to much, you should be able to add control points to smooth it out. It may be best to get a general idea of how long the hose will be, and where the tightest bends will be (add more control points in the are of the bend.
Best of Luck!
I tried using more bones and parenting the armature with “create with envelopes” option and it seems to work, even if I found the procedure a little too tricky.
The armature has to be inside of the pipe in order to avoid strange mesh deforming effects. I know it’s logical but I would preffer some numerical control over the position of each armature point and not placing them all by hand.
However I’m quite sure it’s just my small knowledge of the procedures.
Is it possible to add gravity effect on the armature bones ?
OBI_Ron I’m sorry but I didn’t read your last post. If you can fix the total length that’s very good, better then armature maybe.
At the moment I’ve got a strange problems with the file I used to test the armature procedure, As soon as I finished modelling it (see my last post) and played a little bit Blender crashed and it’s no more able to load the file again…
Open Blender, and try file…recover last session.
Let me know.
On another note, you could add a hook at each control point, then set the location for each hook numerically.
Thanks OBI_Ron but I didn’t work (recovering I mean).
In any case I tried again with the armature procedure.
This is what I can obtain at the moment:
These are the same pipe with an internal armature. It seems ok apart gravity and the interaction of the pipe with a rigid structure that i have still to study.
Now. What do I gain with armature ? Your procedure seems more flexible and easier to manage… armature seems more canonical way… I’ll do some test.
If anyone has any hints on gravity/interaction please let me know.
My first thoughts was to replace the empties with actual cubes. Then you can use those in a dynamic simulation. For rendering, simply move them to another level.
FlexHose_Dunamic.blend (398 KB)
Thanks for the suggestion. I have to better study the hook constraint.
Is there any way to get a more physical result ?
I’m not too worried about the object at the end of the pipe but at the pipe itself.
I need that the gravity works all along the pipe resulting in a catenary curve shaping.
I’m not expert (at all) but maybe it’s easier to get this with a armature that by nature has a fixed length.
OBI_Ron said you can fix the length of the pipe even with just curve and hook but I could not find how.
I’ll try to add gravity to both of them and i’ll send back the result.
What I am thinking for limiting the length may not work for your purposes. I was thinking as follows:
Take a look at the attached - it tries to limit the length while allowing some freedom, but it does not strictly say the path is always x.xx long.
Best of Luck!
FlexHose_004.blend (43.4 KB)
I’m trying to setup gravity effect but I’ve got problems…now still with the armature version.
1.) The pipe is going to collapse while falling because is considered 0-thick.
2.) I don’t want to bake a simulation this way. I want to move the object and the pipe is moving according the object and the gravity.
While (1) is I think easier to solve, I wonder if (2) is affordable in a flexible way.
I extruded the faces of the pipe in order to get a not-null thickness. Is it corrent ? Or it is just considered from blender as two 0-thick coaxial pipes ?
Probably the last one because that’s what I obtain:
I tried to play with different settings of the soft body panel without any big difference. Moreover the self-collision doesn’t work, it results in an inflating mesh.
Is there someone who knows how to manage these problems ?