2026
Brickswise needed a way to tell people what their product entailed and how it was useful. The answer? Animation! Together we came up with a distinctive style that can be kept throughout their branding.
Because the video’s would have to look nice with 2 separate scripts and both videos took about 2-3 minutes I felt the best way to animate the mouths would be to create a dynamic system for “auto-syncing” the mouth movements to the audio. For this is set 2 thresholds with 3 separate mouth positions but made sure to keep the system expendable to more positions if needed later. This way I can also use this rig in future animations without further editing
cinema4d’s XPresso was the way to go for this. While i usually use houdini for anything node-related this project was fully done within cinema4d (with some illustrator for assets) And complicating the pipeline did not seem nessecary
Some feedback on initial previews was the speed of the animations. In version 2 I created a temporal limit as to how often the mouth positions could update. (essentially a python script that would modulo the current frame and only update the value if that modulo-cycle is equal to zero)
Later on i also added an offset parameter to the system by adding or subtracting a float to the processed voice level. Giving me art-direction control when needed.
another interesting challenge was getting the drinks right. Just having moving pictures felt too static.
After a while of trying different approaches I opted for a pseudo-gravity based approach. I would fill the bottle with a step-gradient. Then I would use the direction vector of the scene (0, 1, 0 as to just point up) and use that as the position input. Then multiplying the uv’s with a noise that would animate slightly. This way the foam of the beer would actually move around inside of the bottles.
Then using a second material (as to not distord the uv’s of the label) i added the labels with an alpha channel
As the character where “2d” designs in a 3d environment I opted for a rubber hose type rig system. Where the limbs would not have joints but instead bend along their length based on a guide NULL. in line with the charm this art style has. The rig is versatile enough that every character could use it with little alterations
One interesting thing I did is keeping the objects separate from the bind. This way I could swap out elements or faces even after the animation was fully done. helping with processing feedback.
Another fun challenge was the eyes. In the first version of the animations the eyes would blankly stare to the front and just statically move with the head. I wanted te eyes to keep looking at a point in space while the head was being moved rotated etc.
To achieve this I used another XPresso system. This time taking in the rotation of the head spline and using some inversion math to make sure the eyes would move opposite to the direction of the the head. By making sure the eye movement was applied before the final 3D position I was able to keep the vector math relatively simple.
The eyes and the rig are fully controllable apart from one another, to the tag i also added 2 sliders to offset and animate the offset. Effectively giving me full animation controls for the eyes.
A lot of this animation was made in the rendering engine. Using Cinema’s Toon shaders as a base. I created a lot of shaders, Edges where a key part of this shader. For “regular” edges i made an outline that would be broken randomly.
A challenge I had to face was that lines would be inconsistent when the camera moved. This is due to the nature of toon shaders and how they process geometry at render time relative to the camera. The scale of the lines was an easy fix. By multiplying the width of the lines with a remapped spline for the distance of the camera I was able to keep line width consistent.
However the random line-breaks would break whenever the camera crossed their breakpoints.
A funny thing about the audio-track for this project is that it was written by Pieter (BricksWise) to accommodate 2 animations with similar timings. This way the same animation would work for both scripts. He actually made the scripts line up with the amount of vowels used per word so the sync would be as seamless as possible. While this worked for a big portion of the video. There where a few moments while recording where the voices went slightly off-script. Thankfully these moments where easily caught by my animation rigs and their modular/procedural nature.