Steps
- Rotoscope Animation
- Run the Extraction.py script to query the joint angle values. (exports .txt files with the data)
- Open the sampled data in Microsoft Excel and condition (periodically extend). Note the bias (‘bias_init’) and the time shift (‘t_shift’)
- For each signal file, run the FFT.py script. This script exports extra values, amplitudes, and phases for the fourier series.
- Open these .txt files and reformat to .csv files.
- Follow the notes above to create the rig for synthesis
- Run the Synthesis.py script for each component to be animated.
- Adjust the signal (time shift and maybe an offset shift?)
Analysis to Synthesis
One point that I wanted to illustrate was the importance of using enough components when forming the Fourier Series. Below is a video of the Fourier Series for the shoulder rotation signal converging to the desired signal as the number of components increases.
Below are images of the frequency spectrum, the discrete frequency bins, and the discrete phase bins for the same shoulder rotation signal (‘Theta_01’):
Synthesis in Maya
With the first 100 components, the Fourier Series was calculated and used to key frame the shoulder joint in the following video. The purple-ish joint has been synthesized in order to match the black joint.
I’m still working on determining how to synchronize all of the signals to get the proper fluid motion. Here’s the synthesis with the shoulder and elbow rotation values calculated using Fourier Analysis:
Good progress has been made, but still lots to do. I’ll update tomorrow regarding the remaining future tasks before a (hopeful) September defense!
I’m out!