Well how would you approach it?
How do you make something like the above tie itself in CG?
C4D Spline wrap?
Hook up nulls to a spline in Xpresso and animate them?
A proper rig with bones? LOTS of bones.
I tried this method in C4D and no doubt I was missing something, but in the time available to me I just didn't manage to balance the control I needed (through FK) whilst making it a practical rig to animate (using some IK). I didn't manage to hit that sweet spot.
The problem I found with the spline wrap on the other hand (or sweep for that matter), was the lack of fine controls when it came to the banking. The scarf would need to twist and to scrunch up in just the right places as it knotted itself. Even with a 2 rail sweep, and the graph control interface which Cinema provides, this is fiendish difficult to control, and just not interactive enough to be practical when animating:
Enter Blender: Bendy Bones
I decided to see how Blender's Bendy Bones system would fare. I've been playing with this a little over the past month or so, and have found, once it's set up correctly, that it offers a gorgeous, intuitive rigging method. With just two or three bones, you can make a rig that can squash and stretch, scale in or out at the root or tip, control the curvature of the bendy bone in all directions at both ends and more.
Given such an adaptable (I'm trying not to say flexible) system, it was tempting at first to try and make the knot happen with just one bendy bone between two "control bones" as in the example above, but it soon became clear that I would need more control than this. The next experiment was a chain of bendy bones interspersed with control bones:
This seemed to offer everything I needed: easy banking by just twisting the control bones, intuitive deformation of the bendy bones, a forgiving capacity for squash and stretch, in short, everything I would need in order to manipulate the geometry into a knot. It was time to take the principles I'd figured out in this test rig and apply it to the scarf. The rear portion of the scarf was always going to be composited behind some text in the finished ad, so it would need minimal control there, but I made a chain of bendy/control bones for each tying end of the scarf:
You may spot in the above example that some of the control bones are green, meaning they have a constraint applied to them. This was a copy rotation constraint set to 75%, which I experimented with to try and make it easy to keep the twist of the scarf smooth without having to adjust the rotation of each control by hand. It did work to a degree, though I found that it impeded me at each pass when I was refining the animation and caused a fair amount of popping. I don't think I would use these constraints if were to do the project again; auto-keying is a wonderful thing and makes it dead easy to neaten up animation after the fact. You'll also notice in the video above that the geometry gets a little tortured causing the back faces to poke through the front at times. This turned out to be a simple fix, and happily one which was in keeping with what the art director was after: a fatter scarf:
The final additions to the rig were some bones perpendicular to the main rig, parented to some of the control bones. These had Stretch To constraints applied, targeting a small control bone at each end of the "squash" bones. These enabled me to control the bunching of the scarf as the knot tightened, and also helped mitigate overlapping geometry:
The next step was to try and get tassels dangling off the ends, and I actually created two sub-rigs with a bendy bone for each tassel, which worked ok-ish (see above) until the art director decided the tassels had to be longer than she had drawn them in the storyboard, and there needed to be twice as many of them. No doubt there is a way of using Blender's driver system to automatically make a rig fit to geometry as you edit it, but such a system would only get you so far. I realised that in this instance a hair system would be much more suited to art direction than a manual rig: what if she wanted 20% less tassles? 50% longer again? Less flexible? Blow around more/less? Random lengths? Using a hair system would make such changes far more manageable.
At first I made the hair system in Blender, and tried to make use of the extraordinary Particle Instance Modifier, which is able to clone geometry onto each hair, and deform it as the hair would deform. I missed a step and couldn't get it to apply to my geometry correctly, but for future reference, just remember to apply all transformations (Ctrl-A) to your geometry (like freeze transformations in C4D) before applying the deformer. (Many thanks to Gottfried Hoffman for pointing this out). See also Jimmy Gunawan on the topic.
Back to Cinema 4D
Anyway, despite wanting to push ever further into Blender's incredible capabilities, I was out of time, and decided to export the animated scarf to C4D as an alembic file, then apply the tassels as hair there. Had I had more time I would have developed a procedural wool material in Cycles, but to keep it speedy, I decided to use a pre made material in GSG Texture Kit Pro instead, called appropriately enough, Handmade Scarf.
I used a layer shader to alter the colour and contrast, tweaked the displacement and that was pretty much it. Oh, I used PLAmate too, to bake out the hair before sending it to the farm. I also rendered two takes: one of the front portion of the scarf, and one of the back so that it was super-easy to comp it around graphics.
The ad is currently still being edited and hasn't aired yet so I can't show it in the final spot, but here's a render: