ブラウザ上に音ゲーを作る構想
かぜぎみなのがなおりません。
前回のつづきと思わせてBMSである。
BMSである。
BMSってなんぞやっていうと、ざっくり行ってしまうと
beatmaniaのクローンゲームです。
色々と音ゲー文化史に複雑に絡み過ぎて
ただのクローンゲームで片づけられはしない存在と化しているのですが、
それの云々は今回の主題ではないので割愛します。
https://www.youtube.com/watch?v=iA1-zTtgAGQ
年一回大型イベントがあり、今年のやつに自分も映像担当として出ています。
まあこれも主題ではないのでどうでもいい。
さてBMSですが、その形式ははっきりいってネット進化と照らし合わせると
極めて時代遅れのレガシーなものです。導入には専用本体をダウンロードし、
BMSデータをダウンロードし、PC上から起動しなければなりません。
いろいろなものがブラウザからそのまま出来るこの御時勢に。
こうさ! WebGLで十分なスペックが出るこの時代には、
youtubeやニコ動みたいにURLにアクセスして出来る音ゲーは作れないか、と。 あとBemuseに触発された
というわけでunityでごにょごにょした備忘録。
WebGLで音ゲーシステム作成
何も障害は無い。
楽曲データとURLの繋ぎこみ
youtubeやニコ動のように、楽曲データとURLが1:1対応するのが理想的。
試したところ、unityのwebGLはApplication.absoluteURLで
問題なくURLパラメータも取れる(URLパラメータ込のアドレスが取れる)
ちょっとセキュリティ的には危ない気がするが実装は可能と言える。
楽曲データ
これが一番の問題であり、今回の主題。
BMSアーカイブを踏襲したもの(シャンシャンは音ゲーとして認めない) を
サーバ上にデータとして置き、それを読みこむのに最適な方法は何か。
1.AssetBundle化してサーバ上に置く
2.フォルダをそのままサーバ上に置く
3.zip圧縮したものをサーバ上に置く
結論から言うと、素直に1の方法しかないっぽい。最大の障害は、
zip圧縮の中にあるoggファイルをデコードするのが困難だったこと。
サーバ直置きならwwwwないしはwebrequestからのgetaudioclipで
問題なく取れるのだが、どうにもoggのデコード、
ファイルストリーム形式で行うのが前提らしく、
zip内に含まれるものをバイナリ配列として取得する所までは出来たのだが、
そこからデコードをかますのが困難だった。 Bemuseどうやってんの
仮にできたとしても、この方法の場合基本的にキャッシュはされない。
動画サイトのそれはともかく、BMS系のアーカイブは容量も結構あり、
毎回ダウンロードを挟むのははっきりいって非効率だし、
サーバ側の負荷も高いだろうと思われる。
(これに関してはBemuseも解決できていない模様)
となると、素直にBMSデータをアセットに置き換えるのがベストだろう。
AssetBundleは作る側に負担がかかるのがデメリット。
アセットバンドルのビルドはUnity本体が必要なので、
作る側にUnityの環境のインストールを強要する事になってしまう。
(ものすごく頑張ればサーバにビルダー置けるかもしれないけど……)
しかし逆に言えば、これは遊ぶ側には何も関係が無い話である。
そう考えると、やはりこれがベストなのだろう。
総合的な企画プラン
・特定のサーバ( また猫缶に負担を掛ける気だなお前) に専用サイトを用意
・WebGLとしてプレイヤーを用意。URLパラメータで楽曲データとの紐づけ
・専用サイトに楽曲データのアップローダを用意
(↑無法地帯になる懸念はある。ファイルロダとしては使えなくする、
作品登録は招待制にするなどの予防法があるくらいか?)
・みんなURLを共有してブラウザ上で気軽に音ゲーしよう!!
作者側は
・アーカイブを作る(bmsonベースかなあ)
・専用のunityプロジェクトからbundle化をかます
(がんばればサーバにパイプかませそうだけど
サーバ詳しくないのでやり方わからん)
・専用サイトからAssetBundleをアップロード、紐づいたURLをもらう
うーん、一応できそうな気はする。
ところで
この話に関しては、BMS及びそれの基であるbeatmaniaの文脈は一度外す。
そもそも今BMSやってる人は、BMSやりつづければいいのである。
主旨としては、そもそもとして、
「インディーの音ゲーがそのままbeatmaniaの文脈に紐づくこと」が
果たして必然か、という疑問があるため。もっと直截に言えば、
BMS形式に縛られたままでいて、音ゲーで遊ぶ事に対しての実現手段として、
beatmaniaの文脈の知識を要求する事が前提になっている現状は
あるいは相当の機会損失が生じていないかと言う事にある。
先にも書いた通り、BMSの導入は今の時代から見ると
相当にレガシーなのだから……
もうちょっと書けることありそうだけどいったん切ろう。