どもも。カサコンです。
ここ最近(でもないけど)BMSはLR2からbeatorajaでプレイすることが多くなってきた私ですが自分のいつもの悪い癖が出てきてしまったようで。。。
beatorajaのスキンってどうやって動いているんだろう?
と気になってしまったので自由研究にしてはちょいと遅いですが調べてみたことを色々と書いてみたいと思います。備忘録にもなるし
ただ私はこれまでLR2のスキンなどは1から作ったことは無く既存のスキンを改変した位の事しかしたことがないので内容はとんでもなく初歩的であることをご理解ください。
お恥ずかしながらデザインセンス7級なんですw
ちなみにこれまで改変したことはコチラにまとめてあります。
CSV、JSON、Lua・・・
beatorajaではLR2でも使われるお馴染みのCSV形式の他JSONやLuaを用いたスキンの記述が可能なようです。
Luaはプログラム言語なので計算をしたりすることが出来、ものすごい興味があるのですがJSONスキンをまず理解しないと理解出来なさそうなのでJSONスキンについて調べていこうと思います。
できれば対応するCSV形式での記述も書いていきたいものです。
まずはヘッダー情報から
まずは曲選択画面(decide)から作ってみようと思います。
理由は必要な情報量が少なくてよいので動きを見るには良いと思ったためです。
参考ページもそう言ってるしねw
何を書いていいか全くわからない場合はシンプルな 決定画面 や リザルト画面 をおすすめします。
https://github.com/exch-bms2/beatoraja/wiki/Lua%E3%82%B9%E3%82%AD%E3%83%B3%E3%81%AE%E8%A8%98%E8%BF%B0%E6%96%B9%E6%B3%95
JSONスキンはヘッダー部分に以下が定義されているようです。
?のところはあまり良くわかってないので注意w
type | スキンの種類 |
name | スキンの名前 |
w | スキンの横幅 |
h | スキンの縦幅 |
playstart | 曲開始までの待ち時間?(ミリ秒) |
scene | スキン動作全体の時間(ミリ秒) |
input | ボタン入力が可能になる時間?(ミリ秒) |
close | 曲強制終了にかける時間?(ミリ秒) |
fadeout | スキン動作終了にかける時間(ミリ秒) |
“type” – What kind of skin it is. 0 is 7k, 1 is 5k, 2 is 14k, 3 is 10k, 4 is 9k, 5 is select, 6 is decide, 7 is result, 15 is course result, 16 is 24k, 17 is 24k double.
https://github.com/exch-bms2/beatoraja/wiki/JSON-Skin-Tips-(English)
“name” – Name of the skin that’s displayed in skin select.
“w” and “h” – Width and height of the skin. What resolution monitor the skin was made for. For example Remi-S is 640×480, WMIX is 1280×720 and LITONE5 is 1920×1080.
“playstart” – Waiting time before the song starts, after the bms is already loaded. This gives the player some time to prepare. “scene” – I don’t know, so I use 3600000 because that’s what the default skin uses.
“input” – I don’t know, so I use 500 because that’s what the default skin uses.
“close” – Waiting time after quitting out of a song before it actually quits out of the song. Notes keep moving, Keys and lasers work, but judges don’t show up during this waiting time.
“fadeout” – I don’t know, so I use 1000 because that’s what the default skin uses.
とりあえず触ってみる
beatorajaフォルダ下のskinフォルダに新しくフォルダを作り更にdecideフォルダを作ってdecide.jsonファイルに以下を記述してみた。
{ "type":6, "name":"GPaper", "w":1920, "h":1080, "fadeout":500, "scene":3000, "input":500, }
decide画面なのでtypeは6、スキン名はGpaper、サイズは1920×1080で定義してみた。
そしてbeatorajaで確認してみる。
スキンタブにてDECIDE一覧にGPaperが選べるようになりました。
とりあえず今回はここまでにして次は画像とかを配置してみたいと思います。
拙い内容ですがスキンに興味がある方一緒に調べてやっていきましょう~。
そして色々教えて下さいw