見出し画像

BeatSaberの譜面作成方法

はじめに

今回はBeatSaberで譜面を作る上で、必要な準備と知識の記事を書きたいと思います。
今回の内容はBSMG WikiMapper Resourcesから必要な物を抜き出した物になります。なので、BSMG Wikiを既に読んでいる人は新しい内容はありませんので、ご承知ください。

必要なツールの準備

譜面を作る上で必要なツールをまず用意しないといけません。
① Audacity (無料の音声編集ソフト)
② Audacity用のFFmpegライブラリ
 (動画やAACなど、標準で非対応なファイルをインポートする場合に必要)
③ MediocreMapAssistant2 [通称MMA2] (マッピングツール MMA2.zip)
     MediocreMapAssistant2の修正版・日本語版 (私がメンテしているVer)
④ ArrowVortex (BPMやオフセット量の確認に必要)

①②はダウンロードしたインストーラを実行してインストールします。
③④はダウンロードしたファイルを、適当なフォルダに解凍して下さい。
③は公式の更新が止まっているため、私の方で修正版と日本語版を配布しています。よろしければ、修正版(英語版)か日本語版をお使いください。
④はrar形式なので、7zipとかを使って解凍して下さい。

③のマッピングツールは他にChroMapperもあります。壁やライティング等の拡張modに対応しているなど、MMA2で足らない機能が追加されており、ツールの開発もChroMapperに移っているため、今後の主流になって行きます。どちらのマッピングツールで始めても構いませんが、本記事ではMMA2で説明します。ただし、ChroMapperの操作も基本的にはMMA2に合わせて作られているので、ある程度参考になります。

MMA2とChroMapperの違いや機能の紹介の記事を書きましたので、参考にして下さい。

譜面データの説明

譜面データは以下の4つのファイルが必要です。
曲データ:OGG形式で、作譜前に準備する必要があります。
カバー画像:JPGまたはPNG形式、縦横比は1:1で512x512を推奨。BeatSaverに投稿するまでに準備して下さい。
譜面情報ファイル(info.dat):譜面全体の概要を示す情報ファイルです。
難易度ファイル:譜面の難易度ごとに1つ作成されます。

①②は元のデータは何でもOKです。記事内で加工方法を記載しています。
③④はマッピングツール(MMA2)で自動的に作成されます。

曲データの準備

始めて作譜する方や、初心者は短めの曲(1分30秒~2分程度)にすることをオススメします。理由は、最初は作譜に慣れていないので非常に時間がかかるためで、途中で挫折する場合があります。(自分がそうでした)
あと、プレイヤー視点から見ても短い曲はプレイしやすいので、プレイ回数が伸びやすかったりするメリットもあります。

また、自分が特に気に入ってる曲は最初は避けたほうが無難です、好きな曲なので手抜きができず、ノーツ配置の妥協が出来なかったり、フルコーラスで作りたくなるから、泥沼にハマって完成しなかったりします。作譜に慣れてから取り掛かった方が良いでしょう。

曲が決まったら曲データを準備するわけですが、できるだけ高品質な音源で用意してください。不明瞭な音源だとプレイしにくいですし、作譜の音取り(ノーツ配置)がしづらいです。何より作譜中は、その音源を何度も聞くことになります。

曲データはWAVファイルで準備します、その他の形式の場合はAudacityを使ってWAV形式に変換して下さい。②のライブラリをインストールしていれば、大抵の音声・動画ファイルはインポート出来ると思います。
曲データ全体をWAV変換する場合は、メニューのファイル書き出しからWAVとして書き出しします。一部を切り出す場合は、必要な部分を選択し選択した音声の書き出しで切り取ってWAV出力して下さい。

厳密にはoggとmp3ならAudacityで変換せずに読み込めますが、稀に読み込めない場合があります。また、mp3の場合はオフセットの自動認識に誤差が出ることがあるようです。WAVファイルでも形式によって読めない場合があるので、一度Audacityで読み込んでWAV書き出ししたデータを使うことをオススメします。

BPMとオフセット値の調査と調整

曲データが準備出来たら、先程インストールしたArrowVortex.exeを実行して、出力したWAVデータをArrowVortexに貼り付けて開きます。
次にメニューのViewからTime based (C-mod) にして表示を変更します。

波形画面はCtrlキーを押しながらマウスのホイールを回すか、テンキーの+と-で、ズームin,out出来ます。

メニューのTempoAdjust sync... をクリックします。

ADJUST SYNC 画面が出るので、Find BPMを押します。

曲のBPMの調査結果が表示されるので、一致率の高い方を選択して
Apply BPMを押します。

F3キーを押してBeat tickをonにして、スペースキーで曲を再生します。
曲の最初、中間、最後など全箇所でリズムが合っているか確認します。
リズムが合わない場合は、別のBPM候補があれば変更して再確認します。
曲全体が均等にズレている場合はMusic offsetを調整すると一致すると思います。自動調査したBPMに小数点以下が含まれる場合、大抵の場合はそのままの方が間違いありません、整数に丸めると曲の最後の方でズレてくる場合があります。

BPMが自動調整出来ない場合は、Tap forBPM を開いて、曲を流しながらWebページのブラウザがアクティブウィンドウの状態で適当なキーを拍毎に叩くとBPMが表示されます。一定時間続けるとBPMが安定してきますので、その値をArrowVortexのinitial BPMにセットして、Music offsetを調整して再確認して下さい。

オフセットは後でも調整できますが、BPMの調整は後から行うのは難しいので、ここでしっかりと確認しておいてください。

曲の途中でBPMが変わる場合は特殊な操作が必要なので、初心者は避けた方が無難です。私も試した事がないので説明しませんが、MMA2は途中でBPMを変更できるので、それぞれのBPMを調べてセットする形になると思います。

BPMとオフセット値が決まったら、曲の先頭から最初のノーツを置く予定の場所までが約2秒になるように、Move first beatの↑ボタンで1拍単位の無音期間を追加します。(2秒ぐらい無いといきなりノーツが現れて斬れません)

※ArrowVortexのMove first beatのボタンですが、1回押す毎に0.001秒未満の誤差が発生するようです。(恐らく丸め誤差)
数回押すと数ミリ秒程度ずれるので、気になる人は手計算で無音時間を計算してください。1ビートの秒数は60÷BPMで計算できますので、初期offset値に2秒ぐらいになるように足せばOKです。

調整が終わったら、ArrowVortexの画面はそのままにしてAudacityでArrowVortexで読み込んだ曲データを開きます。
選択ツール(F1キーを押す)にして、曲の波形画面を適当にクリックしてから、HOMEキーを押して先頭にカーソルを移動します。
メニューのジェネレータの無音(Silence)を選びます。

Arrow VortexのMusic offset値を、無音の継続時間にセットして無音を追加します。

一連の操作方法はチュートリアルの動画があるので参考にして下さい。

もし曲のイントロでノーツを置かない場合は、曲が始まって最初のノーツが来るまで大体8秒を超えないようにした方が良いです。そうしないとプレイしたときにノーツが全然来ないとプレイヤーに思われます。8秒超える場合は、壁やボムを配置する、最初をフェードインするなど検討して下さい。
フェードインの方法はBSMG WikiのTrimming the Introを参照下さい。
フェードインする場所は最初のノーツを置く場所までが、拍単位になるようにArrow Vortexでオフセットして確認して下さい。

Audacity上でのオフセット確認

先程、Arrow VortexでBPMとオフセット確認をしましたが、Audacity上でも確認可能で、手動で調整する場合はこちらの方がやりやすいと思います。

まず、波形表示をスペクトログラムにします。これにより、リズムを打っている所が見やすくなります。

また、スペクトログラム設定から窓関数サイズを小さくすることで、時間方向の解像度が上がるため、拡大した時に見やすくなります。反面、縮小したときに表示が埋まって見づらくなります。通常はデフォルト値にして、拡大したときに値を下げてみるのが良いでしょう。

次に曲トラックを選択してHOMEキーでカーソルを先頭に移動してから、波形の外をクリックして曲トラックを未選択状態にします。

次に、メニューのジェネレーターからリズムトラックを選択して、テンポに調べたBPMを、小節数を0にして、リズムトラックの長さを曲の時間にします。

そうすると、リズムトラックが追加されて再生するとBPMに合わせてメトロノームを打ってくれます。

確認してずれていたら、曲トラックをドラッグして調整します。BPMが違う場合はリズムトラックを削除して、再生成してください。

調整が完了したら、リズムトラックを削除して、曲トラックの先頭が空いた場合は無音を追加します。

曲終了部分の調整

最後のノーツをカットした後、曲データが終了するまで長い(無音時間が長い)とプレイ終了後にリザルト画面に移るまで待つことになります。また、最後のノーツを斬った瞬間に曲が終了すると、全く余韻がなくなります。
だいたい、最後のノーツから3~4秒後の辺りで曲データが終了するのが最適です。ただし、曲によっては3~4秒に当てはまらない場合もあるので、適宜調整して下さい。

最後のノーツから曲データ終了まで3~4秒無い場合は、曲データの最後の部分にカーソルを移動(波形データを選択後にEndキーを押す)して、メニューのジェネレータから無音を選択して、追加する無音の秒数を継続時間に設定してOKを押します。

最後のノーツから曲終了まで3~4秒以上ある場合、無音なら不要な部分をカットして下さい。
曲が終わっていない場合は必要ならフェードアウトします。フェードアウトは、まず譜面を終了したいポイントにカーソルを移動します。そこから曲データの最後までマウスドラッグで選択して、Deleteキーで削除します。
削除した曲データの最後にカーソルを移動(Endキー)して、そこから2~3秒前方をドラッグして選択します。その状態でメニューのエフェクトからフェードアウトを選択します。

オフセットと曲終了部分の調整ができたら現状のデータをマスターとして、メニューのファイル書き出しからWAVとして書き出しして保存します。
この後、音量調整など元に戻せない修正を行うため必ず保存しておいて下さい。後でテストプレイをして、音量調整を再度行いたい場合にマスターデータが必要になります。

曲データの音量確認

プレイヤーとして譜面をプレイしていると、曲の音量が大きすぎたり、小さすぎたりすることが無いでしょうか?ゲームを配信とかする人の場合、特に気になる点だと思います。
曲の音量はAudacityの機能で調整することが可能です。でも、どのくらいに調整すれば良いか数値的な目安が必要です。そのあたりも明確に調査と調整できますので、やってみましょう。

まずは下準備として、曲の音量が明らかに小さいと感じる場合、Audacityで波形全体を見たときにピーク波形が全く1.0や-1.0に届いていない場合は、

Ctrl + A を押して波形全体を選択した状態で、メニューのエフェクトから
ノーマライズを選択します。DCオフセットと最大振幅のノーマライズを
チェックして-1.0dBにしてOKを押します。ステレオチャンネルごとにノーマライズはチェックしないで下さい。こうすることで、ピーク波形が-1.0や1.0より少し下辺りになるようにに増幅されます。

次に、Ctrl + Aで全体選択してメニューの解析からコントラストを選択します。コントラスト解析画面が出るので、その状態で曲の雰囲気が一番盛り上がる部分(サビの部分とか)を15~20秒選択します。選択範囲を計測を押して音量の値が-11dB~-8.5dBの間に入っているか確認します。もし外れている場合は調整が必要です。

音量を大きくする方法

音量の値が上記画像(-16.92dB)の様に-11dBよりも小さい(マイナス値が大きい)場合は、音量を大きくする修正が必要です。
音量を大きくするには、コンプレッサーリミッタの2つの機能を使用します。ただし、下記画像の様に曲全体で見た時に頻繁に出るピーク波形の値が大体揃っている場合は、コンプレッサーは不要です。

下記画像の様に、ピーク波形の値が曲全体で強弱がある場合は、コンプレッサーが必要です。

コンプレッサーで曲の強弱の差を圧縮する

Ctrl + A で全体を選択した後に、メニューのエフェクトからコンプレッサーを選択します。パラメータを以下の画像の様にします。

OKを押して、コンプレッサーを適用すると、下記画像の様に音量レベルの低い部分が持ち上がって、曲全体で大体均一になります。
コンプレッサーの適用前(上)と適用後(下)の比較画像

この状態で、曲全体を通して聴いてみて、ピークの大きい部分の後に音量が途切れるなど不自然な部分が無いか確認して下さい。
不自然な場合はCtrl + Zでコンプレッサーを元に戻して、コンプレッサーのパラメータの閾値を-12dBより小さく(マイナス値が大きく)微調整して再度適用します。パラメータの詳細はBSMG WikiのCompressorを参照して下さい。

リミッターで曲の音量を上げる

コンプレッサーが必要なら適用した後に、リミッターを使用します。
Ctrl + A で全体を選択した後に、メニューのエフェクトからリミッタ(下の方にある)を選択します。パラメータは以下の画像の様にします。

OKを押してリミッタ適用後に曲全体を聴いてみて、ピークが潰れたり、不自然に歪んだりしていないか確認して下さい。不自然な場合はCtril + Z でリミッタを元に戻して、入力ゲイン(dB)の左右を低い値(0dBより上)に微調整して再適用します。その時に左右の入力ゲインは必ず同じ値にして下さい。
パラメータの詳細はBSMG WikiのLimiterを参照して下さい。

曲を聴いてみて問題なければ、もう一度、メニューの解析からコントラストを選んで、先程調査した部分の音量を再確認して下さい。
確認した結果が、-8.5dB~-9.5dBの間であれば調整完了です。
外れている場合は、Ctril + Z でリミッタを元に戻して、左右の入力ゲインを同じ値で±0.5dBずつ変更して再適用して下さい。

最終的にリミッタを適用すると以下の様になります。

音量を小さくする

あまり無いと思いますが、もしも音量の値が-8.5dBよりも大きい(マイナス値が小さい)場合は、音量を下げる必要があります。大きすぎる音量は、小さすぎるよりも問題が大きい(ノーツカット音が聞こえない、プレイヤーも配信してたら視聴者もびっくりする)ので、必ず修正して下さい。

まず、先程の音量調査(解析のコントラスト)で調べた値と、-8.5dBとの差を計算します。次にCtrl + Aで全体選択した後に、エフェクト増幅を選択します。増幅(dB)に先程計算した差の値をマイナス値で入力します。
(音量が-5.5dBだったら、-8.5 - (-5.5) = -3.0)

OKを押して適用後に再度音量チェックをして下さい。-8.5dB~-9.5dBの間に入ってない場合はCtrl + Zで増幅を元に戻して、増幅の値を0.5dBずつ変化させて再適用します。

曲データのエクスポート

ここまで終了したら、マップエディタとゲームで使用出来る音源データの完成です。念の為、今の状態をファイル書き出しからWAVとして書き出しして保存して下さい。(OGG圧縮前のオリジナルデータとして)

ゲーム用のOGGファイルとして、ファイル書き出しからOGGとして書き出しを選びます。ファイル名は適当な名前で良いですが、song.oggが標準的に使われています。
品質は音源が高品質な場合は6~9を目安にします。
投稿動画の流用など低品質な場合は3~5位でも構いません。
ogg圧縮後の曲データのサイズは、最大でも12MBを超えないようにして下さい。zipファイルの状態で15MBを超えるとBeatSaverにアップロードできないので、サイズが大きい場合は品質を下げて調整して下さい。

カバー画像の準備

カバー画像は後からでも良いですが、BeatSaverに投稿するときには必ず必要になります。
画像ファイルはjpg形式かpng形式で解像度は縦横256ピクセル以上、縦横のピクセル値は同じ(正方形:BSMG Wikiでは512x512を推奨)にする必要があります。

画像の調整はPIXLAが登録不要でオンラインで使えて簡単で便利なので紹介します。下記リンクから、PIXLA X 簡単&お手軽グラフィックデザインを選択します。

そして、画像ファイルをブラウザに貼り付けると読み込まれます。
左のメニューパネルの切り抜き&回転を選択します。
アスペクトを選択をクリックして、幅と高さを1にします。
切り取りたい位置にマウスで調整して、適用を押します。

画像37

画像の解像度が1000を超えている場合は、小さくしたほうが良いです。
レイアウト&テンプレートからイメージのリサイズを選択して、幅と高さを512~1000位の間に縮小します。

画像38

調整が終わったら、保存を押して画像ファイルをダウンロードして保存しますます。ファイル名は適当な名前で良いですが、cover.jpgが標準的に使われています。ファイルタイプは通常はJPGで構いません。

画像39

MMA2による譜面作成準備

インストールしたMediocreMapAssistant2.exeを実行してください。
初回起動時にCustomLevels フォルダの場所を聞いてきますので、デフォルトで表示されている内容が合っていればそのままApplyを押して下さい。
なお、CustomLevelsフォルダを設定するとCustomWIPLevelsフォルダは勝手に設定されます。

例:
Steam版の場合
C:\Program Files (x86)\Steam\steamapps\common\Beat Saber\Beat Saber_Data\CustomLevels
Oculus版の場合
C:\Program Files\Oculus\Software\hyperbolic-magnetism-beat-saber\Beat Saber_Data\CustomLevels
Quest版の場合
BSMGGitからmapping-folders.zipをダウンロードして、適当なフォルダに解凍します。解凍したファイルのBeat Saber_Dataの中にあるCustomLevelsの
パスをCustomLevels folderに設定します。

稀に設定したパスが反映されないことがあるので、Settings画面右下のSongsとWIP Songsのフォルダが正しいか再確認して下さい。正しくない場合は、Clear Settingsを押して再設定して下さい。

Settings画面の左側は編集対象の譜面が一覧表示されます。

画像35

WIP Songsのタブは、Custom WIP Levelsフォルダの譜面が表示されます。
通常、作譜作業はWIP Songsで行います。
Custom Songsのタブは、Custom Levelsフォルダの譜面が表示されます。
こちらは、BeatSaverからダウンロードした譜面(すなわち公開されている譜面)を入れるフォルダです。Custom Songsで編集作業を行わないように注意して下さい。誤って譜面情報などを保存すると、譜面のハッシュ値が変わってしまって見た目は同じでも別譜面になってしまいます。
Multi-Mapperのタブは、専用サーバーを建てて複数人で同時に同じ譜面を作譜するときに使用します。
Temp Loaderのタブは一時的に譜面を参照するときに使用します。
Custom Songsで誤編集を防止するため、他人の譜面を参考にするときには、こちらから開くと間違いありません。Beatsaver ID/URL/zip URL 欄にid(bsr番号)やBeatSaverの譜面URLまたはzipファイルのダウンロードURLを入れます。
(公式のMMA2 v4.8.4 では現在のBeatSaverに対応していないため、IDおよび譜面URLには対応していません。BeatSaverの譜面ページから、ダウンロードzipのURLを右クリックでコピーして貼り付けると使用できます。)
※ 修正版・日本語版では上記の問題を修正しました

それでは、左のWIP Songsを選択してから、Create New Levelに作譜する曲名など、わかりやすい名前を入れます。(フォルダ名になるため、ファイル名に使えない文字は使用できません)入力したらCreate Levelを押します。

作成した譜面フォルダのEditボタンを押します。

譜面情報の入力画面になるので、まずは左側の曲名などの基本情報を入力していきます。
また、一番下のOpen Song Folderボタンを押すと譜面フォルダがエクスプローラで開くので、先程準備した曲データ(song.ogg)とカバー画像(cover.jpg)をコピーしておきます。

画像39

Song Name              ・・・ 曲名
Song SubName       ・・・ (Short Ver.), (SDVX Mix), (TV Size)などのタグ
Song Artist(songAuthorName)  ・・・ 曲の作成者、アーティスト
Mapper(levelAuthorName)   ・・・ あなたの名前です。BeatSaverのユーザー名と同じにすることをオススメします。

これらは、一応決め方の基準があります。
Beat Saber Metadata Criteria
必ずしも守る必要はありませんが、もしもランク譜面化を目指している場合は守る必要があります。

また、ここに入力する文字は日本語などは避けたほうが無難です。
ゲームやmodで日本語などが使われることを想定されていない場合もありますし、なによりゲーム内の検索ができなくなります(ゲーム内キーボードはアルファベットのみ)そのため、半角の英数記号のみにしておいて下さい。
代わりにBeatSaverにアップロードする時にタイトルが自由に付けられるので、そこで日本語併記するのはアリだと思います。

BPMは先程調べた値を入れて下さい。
Audio File NameCover Image Nameは、違う場合は修正して下さい。
Preview Start Time はゲーム内で選択したときに流れるプレビューの場所です。次に説明するエディタ設定画面のSet Preview Start at Cursorで現在位置を設定できます。曲のサビの部分などに合わせて下さい。Preview Durationでプレビュー時間を調整できますが、デフォルトの10秒以上にはしないほうが良いと思います。
Environment Nameはプレイステージ環境名です。変更したい場合は変更して下さい。Custom Platformは空欄でOKです。

次に右側のAdd Difficultyを押して作成する譜面を追加します。

画像39

難易度の設定はDifficultyで選択してください。
Characteristic は通常の2刀の他、No Arrows、OneSaberなどが選べます。
Difficulty Label は難易度表示をカスタムで書き換える時に使用します。
Note Jump Speed(NJS)とSpawn Distance Modifierは後ほど説明します。
テストプレイするときにノーツ密度などを考慮して決めますので、
とりあえずデフォルト値のまま作譜を進めて構いません。
左上のCopy Difficulty To New File は、例えばExpertを最初に作譜したあと、コピーしてHardを作譜する時などに使います。
その下の7つ並んだ四角い箱は、ノーツや壁の色などを書き換える時に使用します。

画像40

左ノーツ  右ノーツ  壁の色
左照明色1 右照明色1
左照明色2 右照明色2
の様に並んでいます。クリックすると色を変更でき、右クリックでデフォルト色に戻ります。

変更したらApply Modificationsを押して反映する必要があるので、忘れないようにして下さい。
設定が完了したら左下のSave song infoで保存しておいて下さい。

Edit Levelを押してエディタを開きます。
エディタ画面はこんな感じになっています。

作譜を始める前に、右上の三本線の部分をクリック(もしくはEscキー)して設定画面を開きます。

画像40

まず、Editor Scaleの値を400などデフォルトより大きめにしたほうが、ノーツ間隔が広がって作譜しやすいです。またMusic Volumeを下げてノーツのヒット音が聞きやすい様に調整して下さい。

その他の機能は・・・
Move WaveForm to Other Side ボタンは音声波形の表示場所をノーツ配置画面とライティング設定画面で切り替えます。
Playback Speedは曲の再生スピードです。音取りしづらいときに遅くすると音取りしやすくなる場合もあります。
Move every objects (in beats)は全てのノーツとライティングを指定拍数分移動させます。Apply Move ボタンで決定します。
Make/Delete Bookmark はブックマークを追加・削除します。曲の1コーラス目、2コーラス目とか区切りに入れたりします。
Set Preview Start at Cursor は、現在のカーソル位置を一つ前の設定画面のPreview Start Timeに設定します。

設定を変更したら、右上の縦になった三本線をクリック(Escキー)してエディタ画面に戻ります。

MMA2操作方法

エディタ画面の操作方法ですが、先程の設定画面の右側に英語で書かれてあったと思います。下記に和訳と現在のバージョンに合うように修正したものを記載します。

■カメラ操作:
 右クリック + WASD:カメラを前後左右に移動
 右クリック + Space / Shift: カメラを上下に移動
 Backspace: カメラ位置をリセット

■一般的な操作:
 Esc
: エディタメニュー画面切り替え
 1: 赤ノーツ
 2: 青ノーツ
 3: 爆弾
 4: 壁
 5: 削除
 マウスホイール:カーソル位置の変更
 Ctrl + マウスホイール:カーソル移動単位を変更
 Alt + Shift + 左クリック:マウスカーソルのオブジェクトまでジャンプ
 [ ]: 前方か後方のブックマークまでスキップ
 Shift +ホイールクリック: クイック削除
 Delete: 選択範囲の削除、またはマウスカーソルのオブジェクト削除
 Tab: メニューパネルのノーツ/ライティングの切り替え
 Shift + Tab: エラーチェックパネルを開く
 ホイールクリック: マウスカーソルのオブジェクト色入れ替え
 Alt + 左ドラッグ: オブジェクトの移動
 Alt + WASDF: マウスカーソルのオブジェクトを変更
 B: ブックマークの作成・削除、Escで作成キャンセル
 X: カーソル移動単位パレットを入れ替え
 スペースキー: 再生・停止(押し続けて離すと再生開始位置まで復帰)
 - : 再生速度を10%減少
 = : 再生速度を10%増加(※1 英語キーボードのみ)
 F10:全画面モードON/OFF
 F11:全画面モード解除時にサイズを戻さない
 Ctrl + S: 保存

■ノーツ/壁の配置操作:
 WASDF:ノーツの方向を変更
 Ctrl + F: 壁とフェイク壁の切り替え
 Alt + 右クリック: インプレース編集
 (マウスカーソルのノーツに一時的に配置平面を移動)
 L: 編集ロックの切り替え
 (新しいノーツの追加を防ぐ、Alt を常に押し続けるのと同じ)

■Precision Rotation有効時(Mapping Extensions):
Alt + スクロール: ノーツを回転させる

■ライティング操作:
 1: 赤
 2: 青
 W: オン
 A: フラッシュ
 S: オフ
 D: フェードアウト
 F:赤/青の切り替え
 Alt + マウスホイール: カーソル位置にあるレーザー速度の変更
 W/A/D + S:ストロボモード
 F2:オルタネートカラー ストロボモード(交互に色を入れ替える)
 F3:No-off オルタネートカラー ストロボモード
   (オンのまま色を入れ替える)
 Alt + 左クリック:BPM変更を編集

■選択操作:
 Shift + 左クリック: 選択/選択解除
 Ctrl + 左クリック: 範囲選択(再クリックで確定)
 Ctrl + A: 選択の中止もしくは全ての選択を解除
 カーソルキー: 選択範囲の配置面移動
 Shift + 上/下カーソルキー: 選択範囲を時間方向に移動
 Ctrl + C/V: コピー/貼り付け
 Ctrl + X: 選択範囲をカット&コピー
 Ctrl + Z: 元に戻す
 Ctrl + Shift + Z: やり直し

※1 キーでの再生速度増加は日本語キーボードでは、- キーと同じため認識されません。(Shiftを押しても = キーとして認識されない)
修正版・日本語版では、キーに設定で変更可能にしてあります。

MMA2の詳しい使い方はBSMG Wiki に記載があります。
Mediocre Map Assistant 2 User Guide

譜面作成の参考

ノーツ配置の注意点は以下を参考にして下さい。

上記の和訳版は下記です。

また、BSMG Wikiの Mapping Practicesが上記より詳細に記載があります。
Basic Mapping
Intermediate Mapping
上記のBasic MappingをDeepLで翻訳し修正したものを下記に作成しましたので、参考にしてください。

あと、MASOさんの動画もかなり参考になるのでオススメです。

MASOさんの動画を見ると、とんでもないスピードで作譜されていますが、多くの作譜経験があるから出来ることで、初心者はこれの何十倍も時間がかかります。

作譜は音取り(どのタイミングでノーツを置くか)によるリズムの流れと、配置(どのノーツをどの位置・どの方向に置くか)による腕(セイバー)の流れを考えながら行っていきます。しかし、2つのことを同時に考えるのは慣れが必要です。初心者は音取りと配置を分けて作業したほうが良いと思います。

まず、ドットノーツを音に合わせて単純に並べていきます。この時にヒット音と曲を聴き比べて合っているか確認しながら行って下さい。
最初はどの音を取れば良いか迷うと思います、その時は自分が気に入ってる譜面を開いてみて、曲とヒット音を聴いてみてください。1曲音取りするとかなり慣れてくると思います。

音取りが終わったら、配置作業を行っていきます。基本的には赤青(左右)交互、同じ色のノーツで矢印が上下交互になるように配置をしていきます。基本は片手ずつで、左右同時斬りは、曲の強めたいところでピンポイントで使っていく方が良いです。配置のバリエーションは、他の譜面を参考にしてください。

音撮りと配置を分けてマッピングするのは、最近muxさんが投稿された動画が参考になります。

また、配置パターンについては、こちらの動画も大変参考になります。

音取りで、音を分けて聞くのが難しい場合(ボーカルに隠れてドラムなどの音を聞くのが難しい場合)は、Demucsと言うAI技術で音楽データをドラム・ベース・ボーカル・その他の音に分離することもできますので、試して見て下さい。

Demucsのインストール方法は以下を参照して下さい。
https://drive.google.com/drive/folders/1bm_OMCmlPIrX1vOgWgVwGNfBB4HrXUnA

作譜で扱い易いように、自動的にoggへの変換もするようにしてあります。MMA2の音楽ファイル名を変更すれば切り替わります。

ある程度配置が終わったら、チェックツールでダブルディレクションのチェックをして、できればテストプレイすると良いでしょう。1箇所ディレクションを修正すると、その後も合わせるために配置が変わってしまうので、こまめにチェックしたほうが良いです。

ノーツ配置が終わったら、ライティングを行います。ただ、初心者はこの時点で相当な時間がかかっていると思います。幸い、MMA2に自動ライティング機能があるので、最初はそれで手抜きをしても良いと思います。MASOさんの2つ目の動画の最後の方で行っていますので参考にして下さい。
また、自動ライティングは、MMA2搭載以外にも下記の物があり、MMA2搭載のものより高度な設定ができます。
Lolighter

ライティングの詳細説明はBSMG Wikiの
Basic Lighting
Intermediate Lighting
を参考にして下さい。

また、古い情報になりますが、のしろぐさんの記事もある程度参考になると思います。

作譜作業はとにかく慣れの要素が大きく、最初の譜面は何日もかかるかもしれませんが、何曲か作譜すると短時間で出来るようになってきますので、諦めずにやってみてください。

配置のエラーチェック

ノーツ配置がある程度終わったら、Shift + Tabを押してエラーチェックで確認してみます。

Min Time はチェック対象の最小の拍単位の時間です。デフォルト値(0.24)から変更しない方が良いです。
Max Time はチェック対象の最大の拍単位の時間です。曲のBPMとNJS(ノーツジャンプスピード)で調整して下さい。概ね2拍(BPM120なら1秒)程度あれば問題ありません。
Check For Double Same Directions は、同じ方向のノーツ(ダブルディレクション)が無いかチェックします。
Check Vision Blocks は、中央2つの場所に置いたノーツ(ビジョンノーツ)の後に、Max Time以内にノーツが無いかチェックします。
Check Stacked Notes は、重なったノーツが無いかチェックします。
Stat Panel は Notes数など情報を表示します。
Lightmap は自動ライティング機能です。使用する場合はノーツ配置が完全に完了してから実行して下さい。

譜面データの保存

作譜したデータを保存して終了する場合は、エディタ画面の右上の三本線マークをクリックして、Save map (もしくはCtrl + S)を押して保存してから、Back to song infoを押して戻って下さい。

もし保存し忘れた場合やエディタが異常終了した場合は、譜面情報(曲名等)を入れる画面でAutoSavesタブを開いてRecoverボタンで復元して下さい。

NJSとSpawn Distance Modifierの設定

譜面の難易度設定にはNote Jump Speed (NJS)とSpawn Distance Modifierの
設定があります。これ、適当に設定してないでしょうか?

NJSとはノーツの移動速度(m/秒)です。スコア判定に影響が出るため、基本的にプレイヤーは変更できません。modを使って無理やり変更すると、スコア送信されなくなります。そのため適切な値にしないといけません。

Spawn Distance Modifierはノーツの表示開始(スポーン)位置のオフセット調整用です。プラス値で遠くからスポーン、マイナス値で近くからスポーンされます。基本的に-1から1の間で調整します。こちらはプレイヤーのオフセット調整でもある程度調整が効く要素です。

なお、BSMG Wikiを見るとNJSの目安の記載があります。
Easy : 10NJS
Normal : 10NJS
Hard : 12~14NJS
Expert : 14~16NJS
ExpertPlus : 16+ NJS

また、Spawn Distance Modifierの値はHard以下などNJSが13以下の場合は0でも構いませんが、EX以上は調整した方が良いです。

調整は項目をクリックすると出てくる、Half Jump DurationJump Distanceの値を参考に決めます。

Half Jump Durationは、何拍前でノーツがスポーンされるか、拍単位の値です。マッピングする際に、どこまで先のノーツが見えているか判断できま
す。
Jump Distanceとはノーツや壁が表示されてから消える間に移動する距離です、プレイヤーはこの移動距離のちょうど中間地点にいます。そのため、この半分の値がノーツがスポーンする位置となります。

通常、Half Jump Durationは2~3拍の間で、
Jump Distanceは16~30mの間で調整します。

こちらもBSMG Wikiに目安があります。
Jump Distanceの値の目安
遅い曲(100BPM未満)
標準           : 24~27  EX NJS:14~16     EX+ NJS:17~19
ダンス譜面:24~28   EX NJS:13~16     EX+ NJS:16~18
平均(100~160BPM)
標準           :23~27   EX NJS:14~16     EX+ NJS:17~20
ダンス譜面:24~28   EX NJS:13~16     EX+ NJS:16~19
高速(160BPM以上)
標準           :21~25   EX NJS:15~17     EX+ NJS:18~21
非常に高速(200BPM以上)
標準           :20~24   EX NJS:16~19     EX+ NJS:20~23

ただし、あくまで目安なので、曲や譜面のノーツ密度や配置具合によって最適値は変わってきますので、実際にプレイして調整してください。

NJS等の設定を変更した場合はApply Modificationsで反映と、Save song infoで保存を忘れないようにして下さい。

なお、NJSBPM7.5%15%ぴったりになる値にはしないほうが良いです。(BPM240やBPM120ならNJS18, BPM200やBPM100ならNJS15等)
36 JDバグと呼ばれていて、Spawn Distance Modifierが0の時のJump Distanceが36mや18m丁度の時に、ゲーム環境によってHalf Jump DurationやJump Distanceの計算が2倍や1/2になる場合があります。対策は0.1でも良いのでNJSをズラせばOKです。

ちなみに、Spawn Distance Modifierを計算から求めたい場合は以下を参考にしてください。

まず、ノーツが何秒前にスポーンされるのか(Reaction Time)は、それぞれ以下の計算で求められます。
60 ÷ BPM × Half Jump Duration= Reaction Time(秒)
または
Jump Distance ÷ 2 ÷ NJS= Reaction Time(秒)

この時にSpawn Distance ModifierHalf Jump Durationをオフセットする値になります。なので、テストプレイをしてJDFixerのReaction Timeや公式のJump Duration Type(ジャンプ継続時間のタイプ)をStatic(静的)にした時のJump Duration(ジャンプ継続時間)からReaction Timeを決めて、下記の計算で最適なHalf Jump Durationを求めてSpawn Distance Modifierを決めると良いでしょう。
Reaction Time(秒) × BPM ÷ 60 = Half Jump Duration(HJD)最適値
HJD最適値 - Half Jump Duration = Spawn Distance Modifier

修正版・日本語版ではReaction Timeの表示や、Jump DistanceやReaction TimeからSpawn Distance Modifierを設定する機能が追加されています。

なお、Half Jump DurationとJump Distanceの計算方法は以下の通りです。

NJS    ・・・ Note Jump Speed
OFFSET ・・・ Spawn Distance Modifier
HJD    ・・・ Half Jump Duration
JD     ・・・ Jump Distance

HJD = 4.0
NUM = 60 / BPM
while (NJS * HJD * NUM > 17.999) {   ※1
  HJD = HJD / 2
}
HJD = HJD + OFFSET

if (HJD < 0.25) {     ※2
  HJD = 0.25
}

JD = HJD * 2 * NUM * NJS

※1 BeatSaber1.18.3以前は>18で判定しており、1.19.0以降で>17.999になりました。
MMA2 v4.8.4a-j3以降、ChroMapperはv0.8.467以降は>17.999です。
先程の36JDバグの対策です。これによりバージョンによってHJDの結果が異なります。
※2  BeatSaber1.18.0以下と1.19.0ではHJD最小値は1.0です。
1.18.1~1.18.3及び1.19.1以降はHJD最小値は0.25に変更されました。
MMA2 v4.8.4a-j3(日本語版)以降、ChroMapperはv0.8.444以降はHJD最小値0.25です。

テストプレイ

作成した譜面は自分でテストプレイして、おかしな点が無いか確認して下さい。テストプレイはPC版の場合は、WIP譜面としてプレイできます。
WIP譜面はPRACTICS(練習)モードのみプレイできます。
CustomLevelsに入れた場合は、通常プレイしないようにして下さい。
スコアがScoreSaberに飛んでしまい、無駄なデータがScoreSaberのデータベースに蓄積してしまいます。(少しでも変更したら別譜面になります)

Quest版の場合は、Package Song to Zip でzipファイルにまとめてから、QuestでBMBFを立ち上げて表示されているURLをPCのブラウザで開いてzipファイルをQuestに転送して下さい。もし、ScoreSaberのmodを入れている場合はPRACTICS(練習)モードでテストして下さい。

可能であれば誰かにテストプレイをしてもらったほうが、自分では気が付かない点が分かったりしますのでオススメです。先日新しくなったBeatSaverでは、譜面をアップロードしたあと公開処理をするまでWIP譜面としてテストプレイ譜面の受け渡しに使えます。bsr(id)も発行されるので、配信者の方にテストプレイを依頼してみることも簡単にできると思います。

他人にテストプレイを依頼する場合や、BeatSaverにアップロードする場合もPackage Song to Zipで作成したzipファイルを使います。

最後に

ここまで読んで頂いた方、お疲れ様でした。今回は記事と言うより譜面作成の手順書みたいな感じになっていて、1万6千文字を超えています(汗

私が作譜してみてBSMG Wikiで調べた内容を一通りまとめた物になってますので、これから作譜してみたい方への案内や、既に作譜されている方の参考になれば幸いです。

BSMG Wikiは英語版しかなく、ブラウザの翻訳で読めるとは言え、どのくらいの人が目を通してるのかな?って前から疑問に思っていました。
作譜に関してはマッパー人口も多いため非常に詳細に書かれていますので、一度目を通してみると参考になる部分も多いと思います。

また、マッピングの項目の最後にはこんなことが書かれています。
Coping with Mapping Anxiety (マッピングに関する不安への対処)
DeepLで翻訳した画像を下記ツイートで載せましたので、マッパーの方は
一度読んでみると、思うことがあると思います。


最後に私は普段はBeatSaber関係のお助けツールみたいなのを作っています。
下記にまとまっていますので、よろしければ御覧ください。
BeatSaber自作ツールの紹介

本記事のライセンス

本記事のコンプレッサー説明の波形画像はBSMG Wikiで使用されている画像を引用しています。BSMG Wikiコンテンツの著作権とライセンス表記は以下の通りです。
Copyright © 2019-2021 Beat Saber Modding Group
Licensed under CC BY-NC-SA 4.0
また記事の内容はBSMG Wikiを見て作成していますので、本記事のライセンスも同様に以下のライセンスとします。
Creative Commons BY-NC-SA 4.0 License.
CCライセンスの BY-NC-SAの意味は日本語版クリエイティブ・コモンズ・ライセンスのFAQを参照して下さい。