Beat Sage ( AI mapper ) を使ってみた

# 0. はじめに
BeatSaber を始めてから 5 ヶ月程度経ち MOD にハマった．そして MOD を導入して 2 ヶ月程度経ち，今度は自分でもカスタム譜面を作ってみたくなった．カスタム譜面作成の導入について調べていると，[Beat Sage](https://beatsage.com/#) という譜面の自動生成ツールがあることを知った．もちろん，自分で作るから楽しいのでは，と思った．当たり前だ．しかし，次の懸念点があった．
- 最初はツールを使いこなせず，飽きはせずとも，２回目以降の作成に腰が重くなるのではないか
- やはり選曲は自分の好きなものにしたいのもあり，慣れていないことに加えて，妥協もできずに時間だけが掛かっていくのでは

そんなことから，まずは好きな曲（ かつ，まだ作られてない譜面 ）で自動でサクッと作ってみて，カスタム譜面を作ってプレイしてみる楽しさを先に体験してみようと思った．

# 1. Beat Sage とは
冒頭でも述べたが，譜面を自動で生成してくれるツールだ．何と，YouTube の URL を貼り付けるだけで作ってくれるらしい．Neural Network の技術を活用しているとのこと．幾らか条件が述べられているので，見ておく．
- テンポに依存しない（ 内部では全ての BPM が 120 として扱われる ）
- アクセスできない動画の場合はエラーが出る（ 対策は MP3 の動画ファイルをアップする ）
- Easy モードはない（ AI 処理が困難なようだ．解決次第，公開されるとのこと ）
- 360 度モードとライトショーモードの機能を追加するには，Patreon で有料サポートする必要がある
  （ 計算リソースが高く，サーバー維持費がかかるため ）
- テンポが速く多種多様なリズムチェンジのある電子音楽が最も綺麗にマッピングされる[^1]
  （ 学習サンプルの多くはテンポの速い電子音楽のため．また，テンポに依存しないので変拍子にも強い ）

[^1]: https://uploadvr.com/beat-sage-ai-custom-beat-saber/

# 2. 使ってみた

## 2.1. 選曲
この曲にしてみる．

https://www.youtube.com/watch?v=rK-19lEHO60

## 2.2. 作成

[Beat Sage のサイト](https://beatsage.com/#) に行き，そのまま下へ進んでいく．今回は 0 ステップ目を省略して 1 ステップ目から始める．URL を入れると諸々の情報が出てくる．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/24524fbe-2ab8-c9ca-1a43-f9f010b07a86.png)
折角なので，難易度は全部にチェックした．

Patreon でのサポートはしてないので，「360 Degrees」と「Dynamic Light Show」は無効になっている．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/a59acfce-dc93-b11c-5558-9423220470f9.png)

Advanced Settings はそのままにした．ステージの種類と AI モデルのバージョンが選べる．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/e7672dbd-af07-24ca-6329-85d6be501a77.png)

最後に，こんな感じでノーツをドラッグして斬ると，マップ生成が開始される．終わると自動的に ZIP ファイルがダウンロードされる．
![Beat-Sage_-Custom-Beat-Saber-Level-Generator-Google-Chrome-2022-07-23-18-23-17_Trim (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/44448efe-6e8b-4d85-74da-fe92d838864e.gif)

プレビューも見れる．何個か変なところはあったが，一旦このまま進めよう．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/27819e06-2b36-cdf0-4587-79c5028c8297.png)

## 2.3. BeatSaver へアップロード

ダウンロードした ZIP ファイルをそのまま [BeatSaver](https://beatsaver.com/) アップロードすればよい．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/62afd405-01d7-6abc-97ac-a62f84f8165d.png)
AI マッピングしているので，右下をクリックしておく．マップの詳細はこんな感じだ．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/8de3d2ee-6255-dec7-1aa2-05a224b008af.png)

アップロード後．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/ca7c40ef-8b47-59f7-c723-f10f34480c44.png)

公開した状態で変な箇所があり Bad 評価されるのもアレなので，非公開にしておく．ダウンロードボタンを押し ZIP ファイルをダウンロードしたら，解凍してそのまま `C:\Program Files (x86)\Steam\steamapps\common\Beat Saber\Beat Saber_Data\CustomLevels` へ入れる．

## 2.4. プレイ

ゲーム内でも見れた．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/0a316c27-509f-4267-3adf-5acd534e78e3.png)

実際にプレイしてみた動画がこちら．２回目なので微妙にぎこちないところがあるが，Expert+ にしてはかなり簡単なマップになったな．音の数が少ないしそんなにテンポも速くないからかもしれない．

https://www.youtube.com/watch?v=HKhpaw90Jpc

ちなみに，微妙に音とズレてたり壁の中にノーツがあったり，修正しないといけない箇所は見つかった．一先ずは，AI が作ってくれたマップを基にいじっていくか．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708376/42ce4cc5-e8b2-e7d3-60ca-00c863167c36.png)