As previously stated we are using a Google Cloud Virtual Machine to speed up the machine learning computations, which is required to achieve an acceptable video processing time. This means that the user videos need to be stored in a place where they can be accessed by the Google Cloud Virtual Machine. One of the most user friendly ways to do this is to let users upload the videos to Google Drive since the cloud Virtual Machine can be configured to access videos from Google Drive.
We have therefore started working on this approach. While Google Drive allows for an easy way to upload recorded videos instantly, our approach introduces some additional steps. We require the player to link to a specific google account and upload their videos to a specific folder created by them. This makes the process a little less user friendly, but, with the scope of the project in mind we have decided to go ahead with this approach.
After the videos are processed by the Google Cloud Virtual Machine, the animation data is stored in Google Cloud storage, from where it is downloaded to a place in the local storage which Unreal Engine can access. In summary the entire animation processing pipeline starts with user recorded videos on the user’s phones and ends in Unreal Engine.
When it comes to bringing animation data into Unreal Engine, we ran into a small hiccup. In our initial approach we used UAnimSequence and the result from this approach is shown below. Unfortunately it turns out that the functions of UAnimSequence are mostly executed in the editor only, and the game cannot build a stand alone solution from the current project. Considering the time we have left, we will have to quickly find a workaround in which joints are animated by modifying their rotation at runtime using animation data. Our gameplay programmer is currently working on finding the appropriate solution for the problem
Our design team discussed in detail about the storytelling prototype. We came up with a design document for what would be an “ideal” game if we had an entire semester to focus on such a game. This included the ideal technology and platforms, along with the ideal user experience flow (which is required for a networked local multiplayer game). We did this to include it as a part of our final documentation. However since we only have 4 weeks of development time and our goal is to come up with a core game loop showcasing the technology, we also came up with a smaller design document for our actual game which focuses on the systems design.
Here’s the one page design document for the “Ideal” game
And here’s our systems design document for our actual game which serves as a Minimum Viable Product
We are meeting our client next week and want to show them a working demo of our entire pipeline. We will fix the animation import issue in Unreal as well as finish the animation processing pipeline which uses Google Drive and the Google cloud platform’s services.