Another way in which we are iterating on our work from last semester is looking at Tom’s animation sequences. Niharika animated Tom in Maya using a 3D model of that was based of a scan taken from 2D pictures. The skeleton of the 3D model is matched 1:1 to the mechanical engineering, replicating the movement of the servos and linear actuators.
This way the animation is accurate on our animatronic, mimicking what Niharika designed on the computer. The sequences for the five functions are then converted through software provided by Weigl so the show controller can understand them, giving the Dynamixel servos and Ultramotion actuators coordinates to move.
Originally, Niharika exported her animations at 24 fps minimal keyframes as we found they worked for our purposes of putting together a quick show. What we found, however, is that we were missing fidelity in some of Tom’s movements and he has been suffering from jerking and “snapping” from time to time.
Our goal for this semester was then to modify the existing animations and make it smoother. The transition from one animation to another animation also caused snapping sometimes because of idle animations present at the end of each animation which would not only be noticeable by the audience but would also cause a lot of jerks in the animation. Apart from the snapping issues the animations lacked performance that would help make the character look more realistic and therefore Niharika worked on figuring out how to use the different range of motions to get certain animations representing Tom’s character traits to make him look more alive. She also learned about how to utilize the show controller software to further make the animations smoother by referring to the tutorials provided by Weigl on their support page.
To make the animations smoother Niharika started by first observing the existing animations and looking at the videos from the previous semester to note where the animations lacked performance and observe the jerks to figure out the problem. After we noticed what each animation lacked, Niharika discussed some of the problems with our mechanical engineer Alex Gobeler and therefore based on her suggestion decided to use the different range of motions for all the functions and use different speeds to start modifying the animations. Earlier Niharika avoided using the range of motion because she was afraid that it may cause further jerks but she then later realized that the problem that had occurred in the first semester while using the different range of motion was because of the speed being used at that time. Timing and spacing are really important for animations and therefore Niharika realized that by varying the timing for different range of motion for all the functions it would not cause jerks. She used the same approach for adding performance. However to figure out the timing for different range of motion was a challenge in itself as it also depended on making the iterations, testing the animations and then modifying or polishing the animations in Maya again.
Since this semester we added new shows based on our client’s requirement, Niharika therefore started with the new shows and started with different speeds for different range of motion like for example the range of motion used for Tom’s laughter varies with every laugh to make the laughter animation look different for different content. To achieve this Niharika played around with the timing and spacing. She also made the graph editor her best friend and started using it to make the animations further smoother by polishing the curves after each animation which not only helped her notice any jerks that may be occurring but also add the spacing to make the curves smoother. She also referenced back the range of motion test that we did last semester for determining the ideal speeds and accelerations for animations that would not cause any wear and tear on the animatronic. Please refer to the video below for testing the different range of motion from last semester.
Niharika experimented with different speeds and acceleration. While creating the animations she also kept in mind the resistance from foam for specific functions like head turn that would reduce the speed further, therefore for those functions she made the animations a bit faster for the head turn to deal with the resistance coming from the foam. After modifying the animations and creating the first set of iterations Niharika then worked with our creative director Dustin Stephan to do animation reviews after testing out the animations on the animatronic during our playtesting.
After playtesting they determined that the animatronic still lacked performance for certain animations based on feedback from our play testers. Therefore, Niharika and Dustin then worked together to take videos of Dustin acting out as Tom to get reference videos for the animations. Using the reference videos Niharika created a second iteration of animations after modifying them further. But since the animatronic was taken apart for assembling it again to add in the mechanical changes made by Alex Gobeler we could not test out the animations till the day of shipping. Based on the observations made on the day of shipping, Niharika decided to create a third set of animation iteration for half of the shows and then keep half of the shows at the second iteration so that she could test onsite and compare the speeds to finalize the speeds, range of motion and acceleration to be used for different functions.
At onsite during testing with Alex Gobeler and Tim Eck our alumni advisor we discovered the second set of iterations worked well for the animatronic and the new set of iterations made the animations look a bit robotic at certain points. Therefore, after finalizing the speeds, range of motion and acceleration Niharika created the final iteration of animations onsite to make all the shows consistent. At onsite we were also fixing the snapping issue which we noticed during our grand opening show. To fix this issue Niharika worked with our programmer Rajat Gupta to ensure that the idle animations at the end of each animation is reduced and for certain shows like See you later where the timing needs to be proper for the joke to land with the audience, Niharika ensured that there were no idle animations at the end of the animation to ensure that the timing works well for the joke. The final set of iterations also involved modifications to the range of motion where Tom is looking and interacting with the volunteer, kids and the other characters like Father Time and Joel the troll in the castle. We determined these range of motion for all the interactions after doing our initial tests before the Grand opening show. The final iteration also included modifying the scepter function to ensure that the scepter is not hitting the head when Tom is performing.
In conclusion Tom foolery went through four iterations for the animations this semester. We determined that it is absolutely necessary to test out all the animations on the animatronic after every iteration to ensure that the animations make the character look realistic and to determine any new problems that may have occurred due to the iterations.