To Make Me Fret: Final Show!
The day has finally come!
Around noon, I started setting up for the final show in the studio as the rest of the team arrived. I had hoped to have everything ready by 3:30 pm so we had an hour buffer to fix anything that went wrong (especially after yesterday's license issue, phew!).
Setting up the computers. I started by bringing the computer carts into the studio and connecting them to power and ethernet. When the main computer was ready, some of my teammates were able to make any last-minute adjustments to the project while I set up everything else.
Power cables for tech. While organizing chairs as needed for the audience I also pulled down some power cords from the ceiling in the studio where I knew we needed power for Kinects and other equipment.
Room organization. With the help of other teammates, we pulled the storage boxes for lights and other equipment out of the studio and placed them neatly in the hallway. I pulled out the projection screen and positioned the projectors. I prepared the display cables from the projectors to the computer but didn't connect them yet. From the past few playtests, I noticed that it's best if we calibrate Kinects first and the projectors second.
PTZ cameras for recording. As the main stage was being used to calibrate the Kinects (a process that usually takes 15-30 minutes), I booted up the mocap desktop in the studio to set up the cameras and lights. There are 3 PTZ cameras already placed in different locations inside the room. I angled them to best fit our scene and adjusted the zoom and brightness.
Studio lights. We didn't want to use the white, overhead lights of the room during the performance. Thus, I also set up some of the studio lights on the ceiling and adjusted the DMX lights to a reddish-pink color that fit the theme of our final.
Sound and mics. In the past, we had some issues with connecting the main computer to the speaker system in the room. Thankfully, I had found a very (very) long aux cord that we could use a few weeks ago. We would normally connect the cable from the computer directly to the mixer. However, I wanted to be able to record clear audio along with cameras during the final. After consulting with Professor Nick, I instead connected the aux cable to the ATEM Mini on the console desk (which was already connected to the mocap computer, which is connected to the mixer).
After setting up the sounds, Nick (the groupmate, not the professor) noticed that the right and left channels of the audio weren't playing from the speakers correctly. To fix this, we looked through all of the steps in our audio connections and came to the conclusion that the stereo output was being sent out correctly up until it reached the audio mixer. We tried swapping some cables but it didn't help, so the issue might be something that I have to bring up to Professor Nick later. An hour and a half before the show, Nick and I decided to send the audio as mono from the source directly so we didn't lose any data when played from the speakers.
Since I already wanted to record video and audio, I thought I might as well give Nick a mic as the Ringmaster of the show. With the mic also being connected to ATEM Mini as a different audio source, I was able to record it separately from the audio from the Unreal project.
Project stream on screens. Besides the projection screen, it was important for us to stream the live scene to the TV that was to the front-left of our performer Cindy. With the aid of the screen, she could tell exactly when the "error message" on the screen popped up as her cue to "shut down". I also set up the remaining three screens in the room to stream the same video source. This way, we could make sure that the audience and the team members could easily keep track of the show as it progressed.
Projector calibration. After Kinect calibration was done and looked good, I connected the two projectors to the main computer. I quickly set up a DSLR camera and also connected it to the computer for calibration through the Scalable Desktop software. With a quick edit to the alignment on the corners of the screen, the calibration process was done in 10-ish minutes.
Cable organization. As things slowly started to settle before the show, I did one last sweep through our setup around the studio with a tape in hand. We had some unruly cables running from one machine to another, so I made sure to tape them neatly to the floor. Making sure no one tripped was a priority both before and during the performance!!!
And it's showtime!!
My role in the final performance was the same as last time: a minion! I was responsible for staying near the main computer and keeping an eye on nDisplay and Kinects in case something went wrong.
We didn't have any issues with nDisplay this time. The restart key I implemented worked really well, and I didn't need to shut down nDisplay and launch again. Kinects, on the other hand, had moments where they wouldn't recognize Cindy's poses even when she T-posed. In moments like these, I had to wait for an opportunity between the Ringmaster and the audience's interaction to quickly re-calibrate Cindy's T-pose.
I also had a small moment of panic when iPi Recorder refused to broadcast data to iPi Mocap Studio on the other machine. I thought something went wrong with our ping-pong setup on two machines, which wasn't fun to figure out. Thankfully, after trying everything and closing and restarting the software, it started broadcasting properly. The only issue was that I had to calibrate the background again, which required everyone to move out of sight of Kinect cameras. Thankfully, this issue only happened between two performances and there wasn't any audience inside the room to shoo away.
After the second run of our show, while waiting for more audience to gather, I finally got collisions to work with our puppet with the help of Professor Paul.
The first thing I tried was creating a new collision capsule specifically for the puppet's leg. I realized that the body capsule was a parent of the puppet rather than the other way around. So this time I made sure to make the leg capsule a child of the puppet, in case that might fix the issue. However, this still didn't work.
Next, with the Professor's suggestion, I tested to see if the spheres in the scene were colliding with each other. I duplicated them a crazy amount and made sure collisions and physics were still checked on. When I played the scene, the spheres moved around and collided with each other!
Going from here, I attached two spheres to the puppet's feet in the outliner. I realized that Unreal has a neat feature where as soon as I dragged an actor to a skeleton to parent, it would suggest all joints and sockets to attach the actor to.
For the two spheres attached to the puppet, I made sure to turn off physics, otherwise they would fall off the feet as soon as I pressed play. A quick test with Cindy moving around to kick the spheres showed that this method worked! Then I made sure to turn the spheres on the feet invisible for the performance and saved the scene to launch nDisplay again.
And that's a wrap! *claps to the whole team*
I'm pretty proud of my team and the project we put together in only 10 weeks (even less!). We definitely have areas where we can improve if this project runs again or if we want to put on another show for the Senior Showcase in June. For now, I think we did great work and definitely deserved an ice cream treat after packing up the show!
Comments
Post a Comment