I spent a lot more time than I expected rescaling models and rearranging things to better fit the VR interface. This is something I had hoped to do weeks ago, but was delayed due to the lack of equipment. At the time being, I’ve only been able to finish this for the opening room and not the other planned rooms. Now that I better understand the proportions I need, this should go by much faster in the future.
The biggest hurdle this week was with the NavMeshBoundsVolume. This is a game object that dictates where you can and can’t move in a space. While this object isn’t exclusive to VR development, I had never needed to manipulate one in my previous games, so I was generally unfamiliar with it. I was having an issue where if the player moved on top of the bed, they wouldn’t stay the amount of space they had moved vertically. They were essentially locked to a specific set of Z coordinates that was higher than the floor, even when trying to move to a different part of the floor.
Manipulating the NavMeshBoundsVolume fixed that, but it created a new problem. In changing the range of the NavMeshBoundsVolume, the Volume now wanted to interact with objects that I didn’t want it to. This led to the events of the following GIF:
Trying to restore the Volume back to how it had been created a new movement problem. Movement wasn’t working at all. I spent the majority of a day trying to fix it until I decided the best course of action was to just rebuild the game, which I then did and was able to avoid all of the above problems, but it was extremely time-consuming.
Another roadblock I’ve ran into with VR development in Unreal is that the VR controller pawn doesn’t work like a character pawn in other Unreal templates nor like any pawns that I’ve created myself from scratch. Essentially, the VR controller pawn doesn’t create solid objects with proper collisions like a normal character pawn does. Most of the development work I’ve done in Unreal (As well as Unity) in the past has been entirely collision based. This has required me to rethink and relearn a lot of development.
Right now, I’m mainly trying to complete my game’s interactions by using these Blueprints.
These Blueprints operate the grab mechanic. I’ve been playing around with it to allow me to “activate” objects in addition to grabbing them. For example, I can grab this purse to add it to my “inventory” and I can grab this door to enter the next level. This allows me to operate most basic game logic despite the lack of proper collisions with the VR Controller pawn. I'm now trying to add variables to this operation. This rough video showcases some of these mechanics: https://youtu.be/7TruacKWJ-E
There have been multiple other issues this week, but they aren't exclusive to the VR side of things. One of those issues was an attempt at cloth physics that did not go as planed. I'm going to revisit that later in following the MOSCOW system by labelling it as a "Could Have". While I definitely want cloth physics working, especially in the clothing store portion of the game, I can't guarantee they'll work at this moment.
Three other issues holding me back this week include work on my group project (I created a procedurally generated game board for that in Unity completely from scratch, but that's not what this blog is about), personal illness (I had the flu all week), and lack of documentation for developing in Unreal. The illness made it hard to work and more uncomfortable than usual to work on a computer all day, especially since I had to attach a screen to my head and move my body around with it, but I got through it.
The more annoying thing about the illness is that I couldn't record any in-game dialogue. While I'm not going to do all of the dialogue myself, the actor situation never panned out since my contact would not reply to my emails. I do have some friends that might help me out, including one who is a professional radio DJ in New York. I can't guarantee their assistance though. Motion Capture acting will have to be entirely done with my girlfriend and a friend of mine, assuming the license I need is renewed.
The documentation issue has made me decide on Unity for the Group Project. Documentation is much, much easier to find for Unity than Unreal. However, I have less experience in Unity. I went with Unreal because I had developed similar first person experience games with the software and I figured that experience would transfer well to VR development. However, as you can see, it's required a lot of relearning. Which wouldn't be so bad, but the documentation for development in Unreal simply isn't as widespread as I'd like.
For this coming week, I'm going to record dialogue, record MoCap data (Hopefully), and build the rest of the levels now that I have level transitioning working fine. Once I have the MoCap data, I should be able to animate characters for the remaining levels. I continue to hope to have the project finished at the end of this month, however, I might edge closer to the Gold Product Deadline than I'd like. This is mostly due to the initial issues with getting software installed pushing my work back weeks.
I'm trying not to stress about this and just get on with my work, but every time something breaks, I lose hours, if not days, of time. That can be very unnerving and discouraging. I worry a lot of the creative side of this project is going to falter because of the technical issues. I'll continue to log development in an effort to properly measure the development process and the time it consumes.




No comments:
Post a Comment