Beat Saber

From vjmedia
Revision as of 22:54, 1 May 2024 by Chigginson (talk | contribs)

Go Back to Main Project Menu

The in game view of the VR game Beat Saber


Overview

The goal of this project was to...

Introduction

Beat Saber is a virtual-reality (VR) rhythm game where users swing lightsabers to hit approaching blocks mapped to a song. Players need to hit the blocks with the correct color, in the correct direction and with the correct timing to pass the song level. Players have two different colored lightsabers - one color for each hand, and therefore two different colored blocks they can hit while playing through a song (most usually red on your left hand and blue and your right). Blocks can be placed in 8 directions: up, down, left, right, and all the diagonal directions. There are also dot blocks which players can hit in any direction. Players can hit multiple blocks of the same color at the same time as well as blocks of different colors at the same time. Blocks appear in front of players based on the timing of the music playing in the level. Levels also can consist of obstacles for players to avoid, such as walls and bombs. Walls require players to physically avoid them with their headset and bombs require players to avoid touching them with their lightsabers. Levels also have background lighting that changes with the music, blocks, or obstacles as well.

The different blocks and obstacles that users experience in Beat Saber

Users have developed an ability to create custom maps for Beat Saber using some in and out of game modifications. Users can choose any audio file that they want to map using a computer program and upload it to the Beat Saver (https://beatsaver.com/) website. To create a successful and quality map, it has to score well in the following categories listed on the website: fun factor, rhythm, flow, pattern quality, readability, and level quality. Fun factor involves how much fun users had playing the map you created, and would they play it again or recommend it to others. Rhythm deals with how on time the blocks are mapped to the beat of the song, and flow includes how fluid the movements are between blocks and patterns. Pattern quality evaluates how interesting the patterns that are mapped in the song are and if they fit the feeling of the song. Readability involves checking if any blocks are obscured by other blocks, walls or bombs, and level quality looks for if there are any poorly placed obstacles, if there is decent lighting, and if the speed of the level matches that of the song. This project consisted of creating a successful custom Beat Saber map for the chosen song of Edward40Hands by Mom Jeans.

Project Objectives

Every Beat Saber map needs to have audio, and note blocks mapped to that audio, with corresponding lighting being optional yet highly encouraged. To create a successful and quality Beat Saber map, the fun factor, rhythm, flow, pattern quality, readability, and level quality had to be constantly considered within these basic factors. Therefore, the goal of this project was to create a custom Beat Saber map to the song Edward40Hands with note blocks and corresponding lighting to create a successful and quality map based on the criteria. There are many online resources that can be used to aid in the mapping process, such as the Beat Saber Mapping Guide (BSMG) wiki and videos created by the Beat Saber Modding Group, that detail everything you’d need to know about custom mapping, from software and audio setup to information about note block patterns and placements, and even information about play testing your map. These resources were used extensively to aid in this project.

Methods

To begin, the software needed to create a Beat Saber map had to be downloaded and set up. To set up the audio for the map, the programs Audacity and Arrow Vortex were used. For map information set up and mapping of blocks and lighting, the program Mediocre Map Assistant 2 (MMA2) was initially used, and then later switched to Chromapper. Both mapping programs are essentially the same, Chromapper however has access to newer block types released by Beat Saber, such as the slider/arc blocks or burst slider/chain blocks. For this project, the slider blocks were favorable for representing lyrical sections with long held notes, and therefore Chromapper was switched to so that these blocks could be utilized in the Edward40Hands map.

New beat saber blocks, called either ‘slider’ or ‘arc’ blocks allow players to hit a directional block, and then follow a path with their sabers to the next hit block, ‘sliding’ into the next block
New beat saber blocks, called either ‘burst slider’ or ‘chain’ blocks allow players to hit a more spread out direction block in more arced patterns

Audio Setup

To start the audio setup, Audacity and Arrow Vortex were downloaded. Next, the audio file of Edward40Hands was found online and downloaded as a basic MP3. To find the song, I used YouTube, however, it is recommended you use a high quality audio source so that the beats of the song show up more clearly on a waveform representation of the song (this will be important later), and also so it sounds great for the people playing your map. However, the file I found was off the band’s uploaded album to YouTube, so I felt the quality was good. The downloaded song was then imported into Arrow Vortex. This program allows you to find the exact beats per minute (BPM) of the song as well as easily apply an on-beat offset of silence at the beginning of the song. Both of these factors are very important for being able to properly time the note blocks to the audio in your map, and having a few seconds of silence in the beginning of the map allows players to prepare for the map to begin, rather than it starting immediately when the level is selected in-game. When making a Beat Saber map, it is recommended that you choose a song that has a clear and consistent BPM to make your job of mapping to the beat easier. However, in this project I wanted to create a map of a song I enjoy that hadn’t been mapped before, so the BPM was not necessarily clear and consistent. When the BPM was detected in Arrow Vortex, two different BPMs appeared with corresponding percentages for how much of the song they matched. The BPM with the higher percentage was chosen and applied, and then a few second offset was applied as well. The metronome ticks were then played to the selected BPM over the song, to make sure the BPM sounded in line with the audio track. The audio file from Arrow Vortex did not need to be saved, rather the exact BPM (to the decimal) as well as the music offset values were saved to be used in Audacity.

The program Arrow Vortex, detecting the BPM of the song and applying a music offset to the beginning

Using Audacity, the downloaded MP3 file could be edited and then exported as an OGG file to then be used for the Beat Saber map, because OGG is the required audio file type to create a map. To apply the music offset to the audio file in Audacity, a silence was added to the beginning of the song for the duration of the music offset created in Arrow Vortex. This then created an audio file synced perfectly with the found BPM and with the correct amount of silence in the beginning. The audio file was then exported as an OGG file.

The program Audacity, applying the found music offset from Arrow Vortex to silence at the beginning of the track

Map Setup

The mapping environment initially used for this project was MMA2, and therefore the map setup was done in that program. The map was then later transferred over to Chromapper, which uses a similar UI and controls. When MMA2 was first downloaded, folders to store the customs levels had to be created and then the path specified. To create a new map level, the name of the map was typed in and the ‘Create Level’ button clicked. Then, the level information could be set up.

The MMA2 user interface (UI) for creating new Beat Saber levels

There is a lot of different information that you can set and edit in your map, and the information I found essential to provide was the song title, artist, cover image and mapper(me!), so that users can identify the map online, as well the BPM of the song and the audio OGG file, both previously found and set up, so that the map will incorporate nicely timed audio. The environment that the song is mapped in can be changed, affecting the background images and lights. For this map, I chose to use the ‘NiceEnvironment’ because I liked the look and design of it. All the possible environments can be seen on the BSMG wiki. Finally, the map needs to have at least one difficulty level for users to play. Edward40Hands was mapped to one difficulty (Expert) due to time restrictions of the project.

The map level information entered in MMA2 to create the Edward40Hands map

Mapping

doo doo doo...

Note Blocks
Lighting

User Tests

Future Work

This project was completed in full. For any future work on this project, users should follow the methods taken to complete this Beat Saber map and create a new one