今月は、巨人になってミニチュアのノーツを切れる mod を出しました。

説明 / Description 巨人になってミニチュアのノーツを切れるmod。スコア記録は無効化されています。 You become a giant and cut miniature notes. Score submission disabled. 巨人をカメラに収めようとすると、Camera2 は初期設定のままだと描画距離が狭いので、(Camera2の設定内で) 描画距離を Unlimited にしてくだ...
ですが、じつは当初は別の mod でいく予定で制作を進めていました。今回はそちらの話を書いてみます。
当初つくっていた mod。Grave というのはお墓という意味で、死亡地点にお墓が残る mod です。
NalulunaCounters や NalulunaFailedMark では、Fail したところに × マークがつくようになっていますが、これがプレイ中にノーツと同じ速度で流れてくるとおもしろいのでは?と思って実装してみました。
Beat Saber のノーツの動きは、ずっと等速で流れてくるわけではなく、高速で飛んできて、そのあと譜面やプレイヤー設定の NoteJump 位置にさしかかると、譜面設定とプレーヤーの現在の頭位置から計算した速度になり、後方までいくとまた高速で飛び去っていく、という複雑な動作をしており、これと完全に同期するような出現、移動の実装だったり、たくさん同時生成したときにも負荷にならないように Pool 機構をもたせたりと、見た目よりも手間がかかってます。
お墓のデザインは当初はセイバーが 1 本地面に突き刺さっているようなイメージを考えていましたが、それで動かしてみると、上のスクリーンショットのように手前部分には地面がないため、セイバーが 1 本縦に浮いてるだけの図になって奇妙だったので、地面に X の字で横たえるように変えてみたり、その上に墓石と見立てて黒いノーツを置いてみたり…。
こうしてほぼ完成に近い状態までは作ったのですが、これで遊んでみると…、うーん…、なんか邪魔…。ノーツのレーンよりもだいぶ左右に外れた位置に出現するようにはしているのですが、ノーツと同じ速度で飛んでくるので、次のノーツがきた!って無意識に反応してしまうんですよね。
この mod はずいぶん前から温めていたアイデアなので、なんとか生かしたい…。修正案や将来を考えておきます。
まず、ノーツがきたと思って体が反応してしまう問題。ノーツと同じ速度で飛んでくるのが良くないのかもしれません。Fail 地点に差し掛かったら、なにかがふわっと見える形に変えたほうがいいのかもしれません。
死亡時のセイバーの動きが幻影みたいに見えたらかっこいいのですが、それを出そうとすると死亡時のリプレイデータを残しておかないといけないんですよね。Fail 地点だけなら NalulunaCounters や SongPlayHistory に残っているので、新しく mod を導入した直後からすでにたくさんデータがたまっている状況で使える利点があり、そのデータだけでやれるようにしたい部分はあります。
最終的には、フレンドの死亡地点が同期されて見えるようにしたいとも思っています。お墓に一言メッセージを残せたりとか。ただ、これはデータを収集して蓄積するクライアント、サーバーの設計からやらないといけないので、かなり制作に時間を要するとは思います。