Project file research
After spending a lot of time getting the hang of the programming process and working out all the lower-level and OS-interfacing stuff, it’s time for me to start developing the more tangible features. I also recently found out that Ordinary Folk has some freebie project files on their site that could give me some insight and jog my memory as to the experience of doing motion design every day (to which it’s almost been a full year since I did it seriously). I’m playin’ by the rules and forking over 60 bucks for AE and Photoshop, so I can say with confidence how this program will be doing better (also a motivator for me to get it done so I can drop the subscription earlier!).
The project files I’ll be inspecting today are from this short piece. It’s done primarily with shape layers and hand-placed keyframes, with no use of 3D layers. A good match to how I envision what I want this program to do.
The pipeline the team had between programs appears to be linear, going from Illustrator to PS to AE, with no messy backtracking. The initial storyboard was likely done in IL, with the styleframes being done in PS in conjunction with some of IL’s bezier paths copied over. There’s not much deviation from the styleframes in the final piece, and a lot of textures and smaller elements from the PSDs are directly copied over.
Procedural layer creation
The first potentially annoying aspect of this project I saw was in the shadowy overlap areas where there’s a change in color. They aren’t being done by blend modes like I expected; they’re duplicated and matted. In PS it’s done manually, and in AE it’s done with expressions that link every property.
One of the major concepts I want to experiment with is the ability to manipulate duplicated layers via ways other than simply ctrl+D or copy/pasting. Not stuff that you have to ‘bake’ every time you want to edit the actual layers like that one Trapcode plugin. I want something like a pre-compose effect that you can slap on a layer which generates a real layer on top of it that automatically has the correct properties parented to it.
A better example to demonstrate my point is the tunnel at 00:05 in the source video. The way the expressions are hooked up appears to make it difficult to easily switch out how many circle-squares there are without manually drilling into some layers and doing a bit of work.
There’s this one part of the project that causes AE to absolutely churn and kill off, the pink squiggle in the top left towards the end. Upon seeing the layer in a precomp with a lock on it I knew exactly what the slowdown was gonna be: expressions.
I can’t even scrub through the cached frames in full FPS! I suspect it’s what lach said about how property channel evaluations aren’t cached (my program currently behaves this way as well). Oh my god. Touching the parameters can lock it up for 5-10 seconds. The viewport pans at like 5 fps. Why is it this bad??
Well, to give AE some credit, they are trying to generate a whopping 100 shape layer points along a basic sine waveform, even though it’s only 10 lines of code. People that work on game engines must just be magical or something; I dunno how they’re able to make anything run in realtime with only 2 billion instructions per second.
In all seriousness this is one of the reasons I’m kinda scared of implementing any sort of scripting language. I feel like it’d be more intuitive for the three of us (me, the computer, and the user) to go with a model like Cavalry or C4D or Blender where there’s modifier nodes/blocks/blueprints that you build up with. It likely won’t be as high priority as other things on this list because those programs already do it pretty well, though I’ll likely start experimenting with something after re-adding basic shape layer support.
They also use this rigged box script a ton which essentially just exposes the scale/roundness parameters of a rectangle in the Effect Controls tab. Only took ya guys 10 years to add that new properties panel at Adobe, huh?
This purple squiggle is pretty interesting, as its points are linked up to nulls. The animation itself is pretty subtle and could probably be done with just the path; maybe they had different plans for this or it’s the result of a script/preset. The gradient on the stroke is also achieved with a plugin called Thicc Stroke. I’ll keep it in mind when learning about how to implement strokes on a bezier path like this.
I’ve never liked how the panels tab above the timeline fill up with every precomp you jump into, making it difficult to quickly jump to a specific comp without remembering its name and flipping through the tabs or right clicking to close them all. I’m likely gonna implement a version of it where the default behavior is that it’s only for precomps that you specifically pin to it. The precomp introspection I’ve already implemented also reduces the need for it.
I implemented the ability to box-select layers in my program already, but I completely forgot the behaviour doesn’t exist in AE. It feels weird having to direct my attention to a specific portion of the lefthand screen to select them. What’s more is that box-selecting keyframes in AE automatically selects the layers, so it’s not like they’re trying to prevent unintentional layer selection because it conflicts with something else.
It’d be nice if the viewport were more like Illustrator where I could hover over shape layers and be able to see their outline and click on them even if they’re nested in precomps. I wanna try to make the program more comfy for designing stills, not just for animation.
They likely used a plugin to make the main audio persist between precomp windows, something that I already have set up to be implemented easily. There’s also a generated BPM chart made out of keyframes in an empty shape layer. I’ll likely set aside two or three days to add some audio features in the near future.
The stripping of all inputs for a solid two seconds when you accidentally click on a locked layer is embarrassing. It feels like the animation for this is exactly the same as in AE 1999.
Tapping UU or SS to hide all the channels has a 2 second lockup in 30+ layer-count precomps…
To summarize, the basic plan is:
- Implement shape and bezier tools
- Recreate still from OF piece in program
- Experiment with procedural layer stuff
- Recreate tunnel shot
- Experiment with procedural bezier stuff
- Recreate pink squiggle