ディープラーニングで

音ゲー譜面を自動作成!

KLab株式会社 開発推進部 データ基盤グループ

高田敦史

1
自己紹介

高田敦史

全社横断のデータ基盤の構築・運用

近年は機械学習プロジェクトの推進にも着手

○ データ基盤のデータ活用



2
今回紹介するプロジェクト

ディープラーニングで音ゲー(リズムゲーム)の譜面を自動
生成

● 図2: 音源データ

● 図3: 譜面データ

上側を入力されると、下側を出力するイメージ

※現時点では、自動生成されたものをそのままプレイヤーに提
供することは考えておらず、あくまで制作の補助という位置づ
け。



図1

図2

図3

3
先に結果を紹介

先に一番気になると思われる部分を紹介。

どこまで実現できてるの? → すでに社内で使用できる状態

● 社内向けWebサービスを通じて、譜面自動作成機能を提供。

● サウンドさんによれば、少なくとも微調整すれば使えるレベル。

開発者に音楽の知識がなくても実現できる。

4
スコアオートメーションツール

● ゲーム開発チームで開発したWebサービス。

● 音源をアップロードして、譜面を作成。 ← ここに組み込んでいる

● テストプレイも可能。

5
本プロジェクトがはじまった経緯

6
本プロジェクトの関係者

サウンドさん
● 依頼元
ゲーム開発チーム
● スコアオートメーションツール開
発
● 非MLの譜面自動作成
データ基盤チーム
● 横断組織
● 機械学習プロジェクト
● 「機械学習で譜面できないか?」という依頼を
受ける
発表者はココ
7
譜面作成のワークフロー

サウンドさん
MIDI形式譜面
企画さん
CSV形式
マスターデータ
演出など追加タイミング指定
8
問題点

サウンドさん
MIDIデータ作成
は大変な作業
9
理想形

すべてAIに任せて楽
をしたい
● 譜面は歌詞や振りつけに合わせて決定している部
分もあり、完全自動が実現できるかどうかは未知
数。
● 難易度初級や中級だけでも AIに任せられれば楽に
なる。
10
妥協点

サウンドさん
MIDI形式譜面
微調整
AIさん
MIDI形式譜面
ベース作成
11
機械学習による生成を実現するまで

12
一般的な機械学習プロジェクトの進め方

1. 技術検証

○ やりたいことがそもそも実現可能なのかどうかを調査。 

2. 実装(モデルの学習含む) 

○ コアエンジン部分(モデルによる予測)の実装。 

○ 既存のライブラリを使う場合はシンプルだが、自分でディープラーニングの実装をする場合は大変。 

3. システム組み込み

○ コアエンジン部分だけあってもユーザーに提供できない。 

○ MLOps。今回はゲーム開発チームがWebサービスを開発。 

13
なぜディープラーニング?

● 一般論として、既存のライブラリや、学習済みネットワークでやりたいことが
実現できるなら、そちらを使った方がいい(楽だし、性能もいい)。

● が、音ゲー譜面作成に特化したライブラリはさすがにない。そもそもゲーム
によって譜面の仕様が違う。

● ビート抽出などのライブラリはあるので組み合わせればできるかも?

○ そのアプローチはすでにゲーム開発チームで試していた。

● ディープラーニングしかない。ディープラーニングやりたい。

14
ディープラーニングとは?

本来の定義としては「層が深いニューラルネッ
トワーク」

近年は、pytorchやTensorFlowなどのフレーム
ワークを使用していれば(大体)ディープラーニ
ング

15
技術検証

既存の研究や技術で使用できるものはあるか?

当初の目論見

● 自動採譜(音源から楽譜(MIDI)を作る)が音ゲー譜面に近そう。

● 特に開始位置検出(Onset Detection)。

この辺を調べつつ、探したら、もっとジャストな研究もあった。



16
Dance Dance Convolution

Donahue, Chris & Lipton, Zachary & McAuley, Julian.
(2017) Dance Dance Convolution. In Proceedings of the
34th International Conference on Machine Learning, vol.
70, pp.1039-1048.

ディープラーニングを使用して、音源からDance
Dance Revolutionの譜面作成。

17
Dance Dance Convolution

以下の2つのネットワークを組み合わせて対
応。

1. Onsetモデル: 音源からノーツのありそう
な位置を推定。

2. 言語モデル: ノーツ種類の推定。過去の
ノーツとノーツ間隔から次のノーツを決
定。



18
ディープラーニングの実装

(1)モデルの実装 (2)データの前処理 (3)実験
(2)(3)は地味な作業だが大変
19
ディープラーニングの難点?

1. 実装できる人が少ない。

○ 個人的な印象としては、慣れればそんなに難しくない。

○ pytorchの組み込みレイヤだけでもかなりのことができる。

2. 学習にはGPU環境が必須。

○ 💸

3. 学習や実験に時間がかかる。

○ ⌛

20
成果のプレビュー

図1: 人間が作った譜面

図2: AIが作った譜面

図3: ノーツ確率

赤線は小節頭。初級だとほとんどのノー
ツは小節頭に来る。

現状小節情報は与えていないが、意外
と取れている。

図1

図2

図3

21
まとめ

● ディープラーニングを使って音ゲーの譜面を作成した。

● すでに実用化まで実現できている。

● ディープラーニングは使いこなせば非常に強力なツールになる。

22

ディープラーニングで音ゲー譜面を自動作成!