Animated Loop using Spline Dynamics
MFVis last edited by Dr. Sassi
I want to create a dynamic ring of blocks that are hinged together to make a multi-sided ring. The spring tension can be adjusted so that the ring opens uniformly. A control system would allow the opening to be triggered. The springs do the rest. That's the theory.
The attached model is a setup using joints with IK controls, attached to a triangle with IK Spline tag that is meant to control it. The idea was to work out the mechanics before applying the dynamics. But what I've discovered is I've locked up the entire system so that nothing can move. And after a half-dozen iterations that only make the problem worse, I'm convinced my approach is flawed. It's GOT to be simpler and easier in C4D 2023.
Can you point me to a tutorial or some such resource that explains how to make a dynamic ring out of joints - that doesn't lock up on itself?
Thanks for the file!
The main mechanic that you need for this is relatively simple. The start point of a single arm is also the endpoint for the arm, but the Position is 120º rotated. This point is the starting point for the next.
With that in mind, the MoGraph Clone can triple the setup and reduce the work-load by 66.7%.
To avoid math here, I just used a small Null rig to do that for me. The local Position of the child is the key.
The motion needs some care, which does the PoseMorph for me here. (press Play!)
With Dynamic, you would get nowhere; well, you would end up in chaos. End of story. Why? Because you would introduce a feedback loop. That will not fly.
Enjoy your project
Yes - feedback loop! That's the big problem. Would it be better to use connectors and springs instead of joints? Not sold on joints, just too old school to know what else might work.
You can strip the joints and work with anything in a hierarchy. Whereby any dynamic would need to be set up as a hierarchy anyway.
You like to have a specific starting point and a clear target, while the elements moving between these states should express a particular mechanic. Outside influences are needed to avoid the feedback loop, as your idea above contains those parts.
This reminds me of a tank chain setup.
Here is a simplified example: (Which requires the plugin!)
As mentioned above, to get this into a folded or unfolded state would require one or the other of the following: Forces, Colliders, or Connectors, while those would have the need (to be art-directable) provided in an animated or coded (e.g., XPresso) way.
Conversely, the solution above has two sliders to be animated between folded and unfolded.
Enjoy the exploration
Fantastic! Yes, the tank treads are exactly right. I was looking at a Rocket Lasso tutorial on chains, thinking that might offer some options. This is much more directly applicable. Thank you!
Dr. Sassi last edited by
You're very welcome, MFVis.
My best wishes for your project
There's a mechanical aspect to this project that I hoped the dynamics would resolve, but that seems more difficult than I expected (still planning to mind meld with the tank tread tutorial). In the interim I wanted to get a better sense of the mechanistic aspects of the moving arms, and so adopted a much simpler, "brute force" approach (i.e. keyframes). This is what I got.
The stumbling block this round is the enigmatic "Start_0/Move_Me!" null with the pose morph tag that you provided in the last round. It works perfectly - however I can't for the life of me figure out how or why. On my new version, the cloned arms do not track with the end goal (which isn't a goal this time since I dispensed with the IK chain in the "brute force" approach) so the "Result120" Xpresso rig is broken. Leaving the Cloner to follow the keyframed straight-line trajectory (as expected) which doesn't track with the adjacent arm. In other words, I broke it
I think if I reverted to a IK connection between Arms B and C as before, and used the Arm_C Marker as the goal, I could probably get the pose morph to work again. Or not? The angle for Arm_B seems then would be the driver for opening the configuration.
I have a dim appreciation for how I could resolve this with pose morph, but I'm just not getting it yet. Sorry!
Why does the cloner track the end goal of your original rig? My experience is that cloners do their own thing regardless of what you want them to do.
The idea is a child object finds its position in relation to the parent. Local Position. Which I transfer to a copy of that mini rig of two nulls.
Your rig's target is that the arm rig's endpoint is the starting point of the next. So, in essence, it sets its endpoint by changing the starting point. Since you have three arm rigs in the game, that is 360º/3=120º.
So it has a connection between the start and end. If placed into a Cloner, it shapes the target you would like to have if set to three circle-based clones.
So, why two sliders in the PoseMorph? Because I tried to avoid the self-intersecting of the arms. So the starting point needs a specific movement to unfold the arms, and the unfolding works nicely.
To explore that, switch the Cloner off, perhaps even delete the PoseMorph, and move the Move_me! Null.
Please look here; I have set up a 90º example with four arms.
The Doodle shows the start and end positions. The PoseMorph has replaced my simple keyframes.
So it determines its end, and in the Cloner, it looks like being connected.
All the best
I keyframed the cloner into submission and then moved on to the next step - extruding the splines into shapes. However, applying the Extrude to the spline offset the keyframe positions. I've tried every trick I know to get the extruded splines back into alignment (without re-keyframing) but no avail. I tried the constraint tag, but that didn't carry over to the cloner.
It makes sense that with the Extrude as the parent, it would break the dependencies, but I thought using option-click to add the Extrude would transfer all the axis information to the Extrude, but it doesn't.
I used the polygon pen to create a new polygon on top of the spline, and that stays in position. But I'd prefer to keep it editable as long as possible.
Arm Builder_v5 Idealized_v3.c4d
Thank you so much for sharing, MFVis.
Nice to see it comes together. I love the simplicity in your set up! Well done! Love it.
I wish I had that Spline Outline of the project to begin with.
My best wishes for your project!