流行りのBeat Saberに曲を追加する件
皆さん、Beat Saberやってますか?
知らない方はこれを見てもらえばよいと思います。
リリースから1カ月で10万本売れたらしいです。
STEAMで2千円で売られてます。
先日PSVRでの発売もされると発表があり、今後が楽しみです。
ちなみに、このゲーム結構体動かすのでエクササイズになるんじゃないかと思ってたら、運動量はテニス並みだという記事見つけました。やっぱりね。どおりで汗かくと思ったよ。
今回は、このBeat Saberに曲を追加する話です。
購入当初は10曲くらいしか入ってないんですね。
人によってはすぐに遊び終わりそうだなと思ってましたが、今日曲が追加できるということを初めて知りました。
やり方はこのサイトに書いてありました。
結構アニソンとかもあってテンション上がりました。
トーキョーグールのOPをダウンロードして中身を確認すると
ファイルはたったこれだけ
試しにhard.jsonを開いてみると
{"_version":"1.5.0","_beatsPerMinute":135,"_beatsPerBar":16,"_noteJumpSpeed":10,"_shuffle":0,"_shufflePeriod":0.5,"_events":[
{
"_time":15.75,
"_type":0,
"_value":1
},
{
"_time":15.75,
"_type":1,
"_value":1
},
{
"_time":19,
"_type":2,
"_value":1
},
{
"_time":23,
"_type":3,
"_value":1
},
{
"_time":31,
"_type":4,
"_value":1
}
],"_notes":[
{"_time":20,"_lineIndex":1,"_lineLayer":0,"_type":0,"_cutDirection":1},{"_time":20,"_lineIndex":2,"_lineLayer":0,"_type":1,"_cutDirection":1},
{"_time":21.5,"_lineIndex":3,"_lineLayer":1,"_type":1,"_cutDirection":0},{"_time":21.5,"_lineIndex":0,"_lineLayer":1,"_type":0,"_cutDirection":0},
{"_time":23,"_lineIndex":1,"_lineLayer":0,"_type":0,"_cutDirection":1},{"_time":23,"_lineIndex":2,"_lineLayer":0,"_type":1,"_cutDirection":1},
という感じで文字列がたくさん書いてあります。
最初にテンポとかゴニョゴニョ書いてあって
- events
- notes
- obstacles
という大きく3つの要素で構成されているようです。
exentsの内容はこのページに書いてありました。
あとはノーツと壁の設定ですが、構造が簡単そうだったので自分用に整理しました。
{"_time":20,"_lineIndex":1,"_lineLayer":0,"_type":0,"_cutDirection":1}
どうもこれがノーツを定義しているようです。
要素は下記5つ
- time
- LineIndex
- LineLayer
- type
- cutDirection
timeは時間、おそらく曲が開始してからの時間(単位は不明ですが)だというのは想像できるので、後の要素を調べてみました。
これが画面ですね。
LineIndexは左から順に0,1,2,3
0始まりというのはなんだかとっても配列っぽいです。
LineLayerは高さの層のようです。
これも一番下から0,1,2
これがcutDirection。切る方向ですね。
赤か青かはTypeで判断しているようです。0が赤で、1が青。
2は何も出てこなかったので不明ですが、3は切ってはいけないとげとげですね。
別の音楽では壁を使っているものがあったので、それもわかりました。
obstaclesというのがNotsの次にあるので、同じように設定すれば良いみたいです。
{"_time":5,"_lineIndex":0,"_type":0,"_duration":1,"_width":1},
一番左端から幅1、長さ1の壁です。横に移動してよけるタイプですね。
- lineIndex:壁の発生ポイント
- type:0は横、1はしゃがんで避ける
- duration:長さ(画面上は奥行きに当たります)
- width:壁の幅。typeが1の場合widthは4のことが多いです。
幅2だとこのくらい
{"_time":20,"_lineIndex":0,"_type":1,"_duration":1,"_width":4},
これはType1のしゃがんでよけるタイプの壁ですね。
はい、ここまでわかれば後は簡単です。
切りたいタイミングを設定していくだけですね。
やることは簡単ですが、1つ1つ設定していくのはかなり面倒ですけどね。
とりあえずEXCEL?何かツールがあれば楽なんだけどな。
ともあれ、中身がわかってしまえば自分でも作れるはず!
明日から作成開始します。