CINEVERSITY

    Maxon Logo
    • Login
    • Search
    • Recent
    • Popular
    • Users
    • Groups

    Animated Loop using Spline Dynamics

    Question & Answers
    mechanical animation shape shift
    2
    11
    947
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • MFVis
      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?

      Arm Builder_v3 Spline Dynamics.c4d

      1 Reply Last reply Reply Quote
      • Dr. Sassi
        Dr. Sassi last edited by Dr. Sassi

        Hi MFVis,

        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

        CV4_2023_drs_23_CAtr_01.c4d

        Dr. Sassi Sassmannshausen Ph.D.
        Senior Trainer, Maxon Master Trainer, L&D - Strategist
        Cinema 4D mentor since 2004, Member of VES, DCS.

        1 Reply Last reply Reply Quote
        • MFVis
          MFVis last edited by

          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.

          1 Reply Last reply Reply Quote
          • Dr. Sassi
            Dr. Sassi last edited by Dr. Sassi

            Hi MFVis,

            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.
            https://www.cineversity.com/vidplaytut/cv-dynamic_connector_automatically_place_dynamic_hinges_motors_and_springs
            Here is a simplified example: (Which requires the plugin!)
            CV4_2023_drs_23_DYtc_01.c4d

            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

            Dr. Sassi Sassmannshausen Ph.D.
            Senior Trainer, Maxon Master Trainer, L&D - Strategist
            Cinema 4D mentor since 2004, Member of VES, DCS.

            1 Reply Last reply Reply Quote
            • MFVis
              MFVis last edited by

              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!

              1 Reply Last reply Reply Quote
              • Dr. Sassi
                Dr. Sassi last edited by

                You're very welcome, MFVis.

                My best wishes for your project

                Dr. Sassi Sassmannshausen Ph.D.
                Senior Trainer, Maxon Master Trainer, L&D - Strategist
                Cinema 4D mentor since 2004, Member of VES, DCS.

                1 Reply Last reply Reply Quote
                • MFVis
                  MFVis last edited by

                  Back again ๐Ÿ˜ž

                  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.

                  Arm Builder_v5 Idealized.c4d

                  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!

                  1 Reply Last reply Reply Quote
                  • MFVis
                    MFVis last edited by

                    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.

                    1 Reply Last reply Reply Quote
                    • Dr. Sassi
                      Dr. Sassi last edited by Dr. Sassi

                      Hi MVis,

                      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.
                      CV4_2023_drs_23_CAtr_02.c4d

                      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

                      Dr. Sassi Sassmannshausen Ph.D.
                      Senior Trainer, Maxon Master Trainer, L&D - Strategist
                      Cinema 4D mentor since 2004, Member of VES, DCS.

                      1 Reply Last reply Reply Quote
                      • MFVis
                        MFVis last edited by

                        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.

                        Current version:
                        Arm Builder_v5 Idealized_v3.c4d

                        1 Reply Last reply Reply Quote
                        • Dr. Sassi
                          Dr. Sassi last edited by Dr. Sassi

                          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!

                          Dr. Sassi Sassmannshausen Ph.D.
                          Senior Trainer, Maxon Master Trainer, L&D - Strategist
                          Cinema 4D mentor since 2004, Member of VES, DCS.

                          1 Reply Last reply Reply Quote
                          • First post
                            Last post