Mapping Virtual Practices – Antoine Marc Lecture

Antoine Marc, a choreographer, producer, and director (https://antoinemarc.com/), was another one of the guests we had during our Mapping VR Practices lectures. He talked about his work of combining performing arts and technology to create experiences. Antoine specializes in Media and New Technologies and has worked as a consultant on multiple stages of films, live shows, and award-winning concepts to apply his technology techniques to them.

I will be honest, I wasn’t quite sure how relevant this lecture was to our studies into the realms of virtual reality outside of the conceptual ideas Antoine had that we could impart towards our own work. His most recent pieces focus on trying to combine technology and dance into one performance, which he stated began simply from his own curiosity about new emerging tech.

The idea of developing something out of sheer curiosity is the only real thing I took from this lecture, having done the same myself with the development of my Hybrid Hands project. I will admit that perhaps I missed the key point of this specific guest lecture, but even after a rewatch of the discussion, I could not take anything else of value from it, unfortunately.

Mapping Virtual Practices – Ed Tlegenov Lecture

For two sessions, we had guest lectures from Ed, who came from Autodesk.

The first consisted of some discussion about how applying for jobs in this industry works. We had discussions on building a strong résumé, as well as updating our Linkedin profiles.

During this discussion, I did begin the process of reformatting a LOT of my employment-related items to better suit applying for jobs in the industry. Before, my main CV consisted of just my work experience and grades, but I tried creating a VR CV that only used relevant information for job applications, as well as reformatting my blog to organize it better in hopes of using it as a portfolio of sorts.

A smaller, but just as important element was creating a ‘tagline’ for our LinkedIn page, which would be used for any onlookers on the sight to gauge who we were, what we were studying, and what we were working on. Mine was: Adaptive game developer | BA Virtual Reality Student | Creating hybrid hand system from the ground up for virtual reality

This lecture did give me some incentive to start looking for internship positions much stronger, with me going out of my way to message the HR team at CM Games (a developer who’s VR work I follow) to see if they had any jobs. I was fortunate enough to have a personal connection to the company, with my mother knowing one of the lead members of the team. Using that opportunity, I found the contact details and sent over this cover letter:

Dear Mr Funtikov

I was suggested to contact you directly by our mutual acquaintance Martin Villig so let me introduce myself.

My name is Jamie Flack, I am a 21-year-old student who is currently enrolled in my second year in a BA(Honors) Virtual Reality course at University of the Arts London. I am looking to do my internship this summer, which has brought me to CM Games. I am an avid fan of your immersive VR experience ‘Into the Radius’ and would be overjoyed to work alongside the team responsible for it.

If my application in successful, I would be interested in joining you for an internship in the coming summer during the large break in my studies. I am currently based out of London, however, I do have dual citizenship in Estonia, so I could manage a remote internship or stay in Estonia if needed.

I bring two years of experience developing VR experiences at university, having gained skills in 3D modeling and animation in Autodesk Maya, as well as virtual reality development and C# coding skills in Unity. Besides this, I also have experience working in team-based projects on a global scale, and have successfully created multiple Virtual Reality experiences that garnered me high grades during my course. 

I consider my strengths to be primarily in the areas of 3D modeling, however I have plenty of knowledge in other areas to use if and when. Regardless, I will be happy to learn anything and everything you possibly have to offer.

I believe my knowledge and experience would be useful during my time at CM games, and I know that the insight and knowledge your company’s team members could grant me would be immensely beneficial, and give me the best kickstart in the industry I could possibly ask for.

Please find me CV attached below. I hope you take my application into consideration, and I look forward to hearing from you soon.

Kind Regards Jamie Flack

While I was unsuccessful with my application, I believe my cover letter was strong, and still think the advice Ed gave definitely helped me present myself in a much stronger light.

For the other lecture we had the next week, we focused on trying to emulate the development pipeline discussions that companies have when brainstorming a game. To start, we were given a brief to create a multiplatform VR experience that could rely on the confines of the Oculus Quest room-scale size. After some discussion, we began brainstorming elements that would be needed to develop. While most of the items needed were quite obvious, it did show that working well to identify exactly what you need to develop for your experience from the start is crucial for successfully developing a project on any scale.

While both lectures brushed ideas I was already aware of, they did so in a much more illuminating light, giving me the knowledge, and the incentive, to understand the processes.

Wardsend Cemetery – Part 3: Video Presentation

Given that this project is for actual commercial use, we need to make sure to keep our clients in the loop on how the project is developing and such. One part of this that was discussed was the creation of a small video trailer to outline the experience and possibly act as an actual trailer for our clients to use at some point.

A few people alongside the creative directors of the project gave me an outline of what they wanted from the video, and from there it was up to me to make it to reality.

Timeline for the video idea

I have some prior experience editing videos, so I got to work using the Unity Recorder plugin to get some good clips for the video. The animations were all decently simple, mainly just being camera zooms or panning of lights for certain shots. The hardest thing overall was probably just finding some background music to use, and then syncing up the clips to work with the audio I got. After a few hours however, I had a decent trailer made, and let the others in the team peer review it. We worked to iron out some parts and finally had our trailer.

Warsend Cemetery Project – Part 2: Gallery Room

My next task on the project was 3D modeling a small gallery room the player would be situated for the experience. The room didn’t need to be complex, as the main attraction was the interactive painting, but I did do a few things to try and make the room look as good as possible.

Using some of the pictures taken during the trip down to Sheffield to see the gallery, I modeled a similar room with wooden flooring and other similar elements. I also added some simple overhead lights, and some extra paintings on the wall for decoration. Altogether the room worked perfectly fine for what was needed.

As for the actual paintings, I remembered back to one of our previous lectures that involved AI generated art, and used a program with a few keywords such as Sheffield, Cemetery, and more, to generate some simple artwork. However, since we didn’t want to distract the user from the main art, I blurred them a bit so as to keep the aesthetic.

Altogether, the room functions well, and with the player environment created in our project, we could turn more attention on the workings of the primary painting.

Warsend Cemetery Project – Part 1: Google Map Terrain

For the Warsend project, accuracy is high in the level of importance, especially when it comes to matching the painting up as closely as we can. It was decided early on that we needed to get an accurate gauge of the terrain for the picture, and I was tasked with doing this by using a few different Blender techniques.

Billy assisted with the first attempt, giving me a link to a video that showed off the use of a program called RenderDoc.

Using this, I was able to grab data from Google Maps, and create an initial environment for the terrain.

There were of course pros and cons to this method. Whilst we got a strong amount of detail, it also included items we would not be using in the final terrain, such as the modern buildings not present in the painting. So after some digging, I decided to vary our options and try to use a different method to simply create a height map using data from google maps.

Given that we were planning to populate the scene with models and foliage regardless, having a simple height map seemed like the best course of action, and we went with it for a time.

Unfortunately however, we began to have issues with texturing the terrain correctly, trying to make use of UV projection methods to simulate the same painted effect as the piece we were trying to imitate.

I tried to work alongside Billy to try and get it working, but after some failures, and some advice from other sources, we eventually dropped this concept for the terrain, instead opting for a method of layering pieces of the picture in a way to project the terrain out plenty for the experience.

Whilst my time pursuing this method was ultimately not needed, learning about RenderDoc was a fun experience, and I can see myself possibly using it in the future to grab terrain for far away locations perhaps.

Hybrid Hands Project – Part 1: Theme Board & Initial Progress

This is my first post documenting the progress I have made on my project as of the date of 28/04/22. I will outline what I have done, what I still need to do, what resources I have come across, and areas I am currently stuck on, as well as reviewing some sources of inspiration.

Initial mood/inspiration board:

These are images I had in mind when thinking about ways to augment the usage of hands. I will keep these ideas in mind as I progress further.

Element 1 – Sword Cutting:

What inspires me – I want to create a system similar to the dynamic cutting one from Metal Gear Rising: Revengeance. The system is very precise and having something like that in VR would be interesting.

Metal Gear Rising: Revengeance cutting system

What I have done – The sword cutting element is 99% completed. I am able to cut a box and have the created pieces be made based on the angle of the blade, as well as them having realistic physics. I also added a sound effect whenever a piece is cut for added effect.

What I need to do/Areas I am stuck on -There are a few issues regarding collisions in the center of the box glitching out a bit, as well as pieces falling through the floor and not colliding with the flooring. I also might want to add some kind of visual effect to the cuts.

What resources I have – Billy was kind enough to link me to a useful twitter tutorial for cutting mechanics involving the sharpening of a stick with a blade, as well as a chainsaw cutting wood. Whilst the concept of how to follow said tutorials currently escape me, they may prove useful in future edits to the system. The bulk of the system was made following an old VR fruit ninja tutorial I found on youtube made back in 2016.

The tutorial I used to build my cutting system

Element 2 – Claws

What I have done – I have created a rudimentary model to use as controllers for the claw based climbing system. I also spent some time trying to follow a few tutorials online on how to implement it. However, most do not use the most updated XR systems, and thus, were unable to work.

What I need to do/Areas I am stuck on – Finding a way to alter the old code tutorials I have watched to work with updated XR and make my climbing work – Get the fundamental climbing working, and then implement a way of which it is tied to the claws being embedded into the wall, similar to a climbing pick.

What resources I have – Whilst currently not seeming to work, the tutorial by Valem was the most updated I could find online.

Element 3 – Hand Selector

What I have done – Created a UI system available to the player to allow for simple switching of hands for testing.

My initial hand selector UI

What I need to do/Areas I am stuck on – In the long term, I need to develop this UI into a radial menu that the player can access with ease. Something akin to the Half Life: Alyx weapon select system would work well.

Half-Life: Alyx Weapons Guide - SegmentNext
Example of the Half Life: Alyx system

In the short term, whilst the UI is present, I am having some issues mapping the buttons to swap controller models with ease. Initially, the buttons were only successfully changing one controller back and forth between models, so I came up with the idea to use tags on the objects to allow both controllers to switch with ease. I have yet to successfully implement this.

What resources I have – N/A

Miscellaneous Notes & Conclusion – My coding knowledge is still very limited, and given all the mechanics I need to create by hand for my project, I may need to find some assistance in a few areas. I’ve done some basic research on development of the whip and cannon and also found I have very limited resources to draw inspiration from on how to code them, so I will need to find a solution or possibly re-evaluate my project and its focus and range.

Virtual Trajectories – Final Thoughts

Animation is still not my strong suit.

But, I have learned a lot in this module.

My virtual trajectories project definitely had its ups and downs, not to mention PLENTY of issues to make completing it a heavy challenge even with help. However, I now know to some degree the steps and requirements needed to design, model, rig, and animate my own character, which is definitely an incredible life skill to have in the industry.

Animating by hand is a skill that definitely still eludes me though. I definitely think without the help from the mocap data we recorded, I would not have been able to get this done on time. Kelvin was also an amazing help with my project and I owe a lot of solutions to the problems I ran into to him.

There were also some outside issues that made completing my project a bit more tricky. My significant other – whom I haven’t seen in two years due to COVID – was visiting during the final weeks of the project, which definitely made it hard to want to put attention to Maya work over her. Thankfully she was very understanding when I decided to sit down and work hard on my project for a few days.

To conclude, I can safely say I owe a lot of the strength my project has to the help I got along the way, but now that I know what to do, I am confident in saying I have some ability to allow me to create and animate a character I need for any project in the future.

Virtual Trajectories – Rigging and Animating

Kelvin taught us two different ways of rigging up our characters. Placing the points manually to make a skeleton and connecting them by hand, or by using the quick rig system which I ended up doing.

My character with a rigged skeleton

After getting the skeleton working, I began trying to apply the Mocap data supplied by Billy during one of the in-person classes to the rig.

This caused problem after problem.

To start, I was initially trying to apply the mocap animation to my handmade skeleton. This failed to work multiple times until Kelvin suggested the use of a quick rig.

Then, multiple parts of the model began failing due to weight paints affecting them. The staff and the scarf were the two biggest issues regarding this.

Multiple different skeleton points began greatly affecting the scarf

At this stage of my project, I was reliant on a lot of help from Kelvin. After sending over my file, he was able to get the scarf working, and came up with an idea of separating the staff section of the model to make it its own poly, and then attach it to a point on the rig. Not only did this work for the staff, I was also able to apply it to the scarf section as well, and get the animation looking tolerable to begin with.

From there I needed to tweak the mocap data a bit to remove points where the model had heavy clipping and also try to alter it as best I could to fit the image I had for what the animation was supposed to look like. Once altered, and rendered out, this was the final result of my hard work.

Virtual Trajectories – Animation Basics

In year 1, we began learning a bit about the basics of animation. However a lot of what we did use premade animations and simple techniques overall. I still 100% consider myself a beginner on the side of animating anything, and this was pretty apparent when we began learning how to animate in Maya.

A lot of sources have stated that Maya is the ‘industry standard’ for a lot of people when it comes to animation. I can definitely understand this, with many tools and options being available for people to use to perfect their animated characters. However, for someone who has never animated in his life, the number of options quickly overwhelmed me.

For one of our first lessons, we were tasked with animating a sack. Thankfully, it came pre-rigged and ready to work with, but this still didn’t make the job any easier for me. We were asked to try making the sack show emotion, watching a few cartoons and other media to outline the basics of how animation principles work. After a lot of difficulties, I was able to make this:

I tried to make the sack look sad/depressed, having it take a big sigh out before slumping over. I added a small bit where it would look around to see if anyone cared, but then go back to slumping over. While I was given positive feedback regarding my depiction of the sack, I still think I could have done better, with the idea of what the sack feels like being hard to read without me stating it directly beforehand.

Animation is something I definitely need to work on.

Virtual Trajectories – Modeling and Coloring

It felt nice finally getting back into modeling after so long a break. In year 1, I considered the modeling portions to be my favorite section of all we learned, so I was excited to get back in and start modeling this character.

Using the drawn pictures I made as a basis, I began work modeling up the robed figure. The actual hood itself was a lot more challenging than I expected, and I was glad to have Kelvin around to help me with modeling it correctly.

An error I can see looking back at this now however, is that I did not try to model it symmetrically from the beginning, a point I seemed to miss when Kelvin stated it, and one I would regret later down the line.

The picture above shows how the model looked after a while. With the base bones of the character body created, I got to work smoothing the model, adding the arms, legs and eventually after a lot of annoyance regarding it, redoing the upper scarf-like portion to look more how I envisioned it. Beyond that, I also gave the character a small staff on their back to add to the overall look of the model.

As you can see, I also had begun trying out some material options regarding the color palette of the model, wanting to get as close as I could to the way I had envisioned it overall. After some digging, I eventually found the Toon shader for Arnold, which had an interesting outline feature for materials that I like the look of.

So after painting up the model with shaders and materials, I eventually had this:

I’m honestly really happy with how it turned out when colored. I finally finished the modeling and coloring after a bit of trying out the rigging and animation side of the project. Because of that, you can also see that I ended up making the model symmetrical, to allow for an easier time rigging up and animating my model later on.