I’m trying to make a Rubik’s Cube in AE (I know, a 3d app would be better, but I relish the challenge and don’t have a 3d app!), and at the moment I have something like 162 layers of sides which make up all the 27 cubes.
This should be pretty easy to imagine: 6 layers are placed in 3d space to make up a single cube, then parented a null layer to those 6 layers which gives me control over the cube as single object. There are a total of 27 cubes for a total of 27 cube null layers.
To animate sides rotating around pivot points, I’m parenting groups of 9 null layers to a single pivot null layer and animating it to make the sides spin. My goal now is to create more pivot null layers that rotate around all 3 axes on all 3 possible levels around which groups of 9 cubes can pivot.
I can see in my mind how this can be done by assigning different groups of 9 cubes to a pivot null layer, and over time reassigning different cubes to different pivot null layers. What I’d like to do is figure out a way that I can animate a pivot null layer something like 90 degrees over 1 second, “bake” the cubes’ positions, reassign the cubes to different pivot null layers, “bake” them again, then animate a different pivot null layer, “bake” the cubes’ positions, etc.
Is this a pipe dream? Is there something I’m missing?
Haha, the bad Rubik Cube…. I don’t think you will have any luck with your current approach. This problem isn’t even solvable in a 3D program with dynamic parenting and has driven people crazy for some time now (the hierarchies get too complex and you never can really resolve all interdependencies). The common approach is to split up scenes into segments where only up to 3 rotations occur and then assemple the rendered files to create the illusion. In AE you would do the same by creating multiple instances of your cube comp and only rotating the sides you need. Then it’s all just a matter of keeping track of where which square is and replace the textures/ layers it uses accordingly.
Thanks for the reply. I hadn’t thought of doing that, but it certainly sounds like a good idea. At least it wouldn’t involve trying to keep track of tons of null objects and what they’re parenting. I was hoping to fly a camera around this in a single comp, looks like I’ll have to do a bit more planning and hope that my client doesn’t want (or expect) immediate changes.
Mmh, you can still fly your cam around… Just make sure you use fold transformations all the time. If your client is a bit picky, you could always have all possible animation cycles handy and then just replace the layers. still not very elegant, but perhaps the best you could do. BTW, I agree on that annoying keeping track of Null objects… If you wanted to do it with parenting, you need something like 7 levels of hierarchy and actually even more Nulls than cubes… I just have a dim memory, but when I tried such things in 3D progs some time ago, it just wasn’t fun at all…
[Mylenium]“when I tried such things in 3D progs some time ago, it just wasn’t fun at all… “
I know what you mean, having tried it using Lightwave’s dynamic parenting a couple of years ago. After the first couple of moves it became unwieldy, so I faked the rotations by rotating the null very fast, doing renders at different cube orientations, then dissolving between them. In this case, it worked because the rotations were very fast: zip-zip-zip. They didn’t have to be completely accurate.
If the cube has to rotate slowly, more than twice … ouch.
Tried the multiple comp thing, and it’s working out REALLY nicely, all I need to do is make sure I do a little planning.
I’ve even taken the master comp of all the different positions and time remapped it, making the thing spin in all sorts of neat directions, and created cameras in all the different comps which through the magic of expressions follows the position of a single camera in a ‘master camera comp’, thereby allowing me to add camera movements which flow nicely between the different positions.
Not so easy in 3d apps either, eh? Now I don’t feel so brave attempting this… : )
Hehe, it’s once more one of those events where the simple mechanics of real life objects “just work” and beat CG where you would need to simulate this. After all, for the most part Rubik’s Cube simply works because the elements constrain each other and are tied to one bicg bally loint inside. One would have a hard time simulating this sliding (it largely goes against how simulations treat friction).