Ragnarock is a virtual reality (VR) rhythm game in which you play a Viking captain competing in a longship race. With two hammers, the task is to crush the incoming runes in sync with epic Viking music. The runes are defined by a beat map which the player can manually create. The creation of beat maps takes hours. This work aims to automate the process of beat map creation, also known as the task of learning to choreograph. The assignment is broken down into three parts: determining the timing of the beats (action placement), determining where in space the runes connected with the chosen beats should be placed (action selection) and web-application creation. For the first task of action placement, extraction of predominant local pulse (PLP) information from music recordings is used. This approach allows to learn where and how many beats are supposed to be placed. For the second task of action selection, Recurrent Neural Networks (RNN) are used, specifically Gated recurrent unit (GRU) to learn sequences of beats, and their patterns to be able to recreate those rules and receive completely new levels. Then the last task was to build a solution for non-technical players, the task was to combine the results of the first and the second parts into a web application for easy use. For this task the frontend was built using JavaScript and React and the backend - python and FastAPI.
翻译:《瑞格纳洛克(Ragnarock)》是一款虚拟现实(VR)节奏游戏,在游戏中,玩家扮演维京船长参加长船赛。玩家需要使用两个锤子在伟大的维京音乐的节奏下砸碎不断出现的符文。符文由节拍图谱定义,而节拍图谱的手动创建需要耗费数小时。本篇研究旨在自动化节拍图谱的生成过程,也就是学习编排任务。该任务分为三个部分:确定拍子(动作放置)的时间、确定与所选拍子连接的符文应在何处放置(动作选择)和创建Web应用程序。对于第一个任务“动作放置”,利用从音乐录音中提取先驱本地脉冲(PLP)信息的方法,可以学习放置拍子的位置以及数量。对于动作选择任务,采用循环神经网络(RNN),具体来说是门控循环单元(GRU)来学习节奏的序列及其模式,以便再次创建这些规则并接收完全新的关卡生成。最后,创建Web应用的任务是为非技术玩家构建解决方案,将前两个部分的结果凝聚到一个易于使用的Web应用程序中,此任务的前端使用JavaScript和React构建,后端使用Python和FastAPI构建。