Come along on my journey through the magical forest, where mushrooms become drums and forest wands turn into drumsticks!
About the Project
I developed a captivating virtual reality (VR) drumming experience using Unity, incorporating intuitive controls and immersive interactions. In this game, players step into a vibrant hallucinatory virtual world where they can unleash their inner drummer.
In our class, we teamed up to think of cool things VR controllers could do. Among ideas like magic wands and fishing rods, drumsticks stood out to me. With help from our professor, I set out to bring drumming into the virtual world.
Some affordances for the VR controller
Phase 2: Development
I designed the drumsticks, ensuring they felt realistic and responsive in the virtual environment.
Leveraging Unity's Mesh Renderer, I added visual details to make the drumsticks come alive but as many unique ideas I explored on internet and papers none of them were making perfect environment for the VR experience I had in my mind.
Building up the environment
Ideas for inspiration for drumming experience:
During the testing phase I realised what worked and what did not :
Rock stage (discarded as too bland)
Jungle setting (didn’t capture the magic)
Northern Lights Skybox ( looked out of place and jarring against those whimsical mushroom elements)
That's when the idea struck to me to use mushrooms as my drums.
Psychedelic mushroom forest settled on for whimsy (this is what I went with)
Ideas for inspiration
But what’s a drumstick without drums to play on, right? But then I thought, drums are boring — let’s get weird about it!
I want to add a dash of magic to my drums. So, I made each mushroom move a little using a special animation script I found on Unity asset store. It’s like giving them their own little dance.
I added an OVR player controller as the parent of my drumstick to ensure the scale and the perspective for a VR user is correct or not. It took me some good amount of time to adjust the mushrooms and the drums to the right scale.
To enhance interactivity, I utilized Unity's Box Collider and Rigidbody components, enabling realistic collisions and responses between the drumsticks and virtual drums.
The Box Collider is like an invisible boundary around each mushroom. It helps them to know when something, like my drumsticks, is getting close. I wanted to make sure that when I hit the mushrooms with my drumsticks; they reacted just like real drums would. I took help from my professor to turn my ideas into code.
The Rigidbody is what makes the mushrooms move when they get hit. It’s like giving them the ability to bounce around and react to what’s happening.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Drum : MonoBehaviour
{
public AudioSource audioSource;
private void OnCollisionEnter(Collision collision)
{
Debug.Log("Drum has been hit!");
audioSource = this.GetComponent<AudioSource>();
audioSource.Play();
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
Phase 4: Game Environment
I filled the scene with about 15–20 mushrooms, each a different size, to create a good environment. Then, I added some drumbeat sounds, grabbing them from Google, and made sure each mushroom had its own unique sound when hit.
Inspector panel of mushrooms
I started the game with a powerful drum roll and cool effects like crashing cymbals and booming taiko drums. Then, I added some groovy elements to the scene for a cool vibe.
Originally, I tried a galaxy sky, but neon colors worked better. I added trees, walls, and a cozy mushroom house, tweaking until it looked just right.
Drumsticks and audio sources
Testing phase
I added two final important touches. First, I filled the whole area with a thick, colorful fog. This fog was bright neon colors and swirled all around the mushrooms and trees. It made everything look dreamier.
Second, Visuals weren’t enough though, so I also added background music.