うみぐりゃーずアドベントカレンダー 2022 3 日目の記事です。
はじめに
こんにちは、UMIGURI の開発者の いののて です。趣味でソフトウェアを開発したりゲーセンで某スライダーを擦る音ゲーをしたりしています。弾幕 STG な音ゲーもぼちぼちしてます。ところで聖女アンナちゃん、可愛いですよね。もちろん今開催中のグッズキャンペーンで新規立ち絵入手するつもりです。アンナちゃんが貰える期間の最終日が 1 月 11 日、僕の誕生日は 1 月 15 日。近い。まるで誕生日プレゼントのようですね。
今回、嬉しいことに主催の ひとみとせ さんに うみぐりゃーずアドベントカレンダー 書きませんか!?と誘われて参加することになりました。
アドベントカレンダーは今まで専ら読むだけだったのですがこうして初めての記事、ということで結構緊張しますね。
ノーツ描画の仕様
設定したテーマ 開発者として ということで、この記事では本家や UMIGURI のノーツ描画の仕様について 3 つ解説します。ギミックや AIR-TRACE などで装飾を施す際などに参考になれば幸いです。
地面ノーツの描画順
地面ノーツ (TAP、ExTAP、SLIDE、HOLD、FLICK、DAMAGE) はその種類とフィールド上の奥行き方向の位置によって描画順が決まります。(最背面から順に描画されます。)
注意: UMIGURI は奥行き順ではなく時間順で描画するようになっているので (不具合です) 追い越しノーツの描画順が設計と異なる挙動になっています。また、本来は SLIDE の中継点と終点ノーツにもこれらの規則が適用されるのですが UMIGURI は無視して始点の描画順に依存して描画します。
AIR 系ノーツの描画順
AIR 系ノーツ (AIR、AIR-HOLD、AIR-SLIDE、AIR-CRUSH、AIR-TRACE) は一部を除いて、その種類とフィールド上の奥行き方向の位置によって描画順が決まります。(最背面から順に描画されます。)
譜面に装飾を施しても意図した見た目にならない場合は描画順を考慮すると解決できることがあります。
AIR 系ノーツの描画順について
AIR 系ノーツは立体的なオブジェクトなので、現実世界のように視点から見て手前に位置する物体は手前に、奥に位置する物体は奥になるよう描画したいですよね (開発者目線)。それを実現するためにゲームなどのリアルタイムレンダリング*1 用途の 3DCG では Z バッファ法 という技術があります。
この技術を使えば描画順を気にせず奥行きを考慮した描画ができるのですが、万能ではなく、テクスチャ (オブジェクトの表面に貼り付ける画像) に半透明で後ろが透けて見える部分があるとうまくいかないことがあります。
UMIGURI (や本家) では、AIR-CRUSH の箱の枠や始点の箱の紫の部分、AIR-ACTION は完全不透明なためこの技術を使って順番を気にせずに描画することができます。しかしそれ以外の AIR 系ノーツはテクスチャに半透明要素があるため、それらに描画順を設定し前後関係が擬似的に極力自然に見えるよう描画しています。
ノーツが中央判定タイミングを超えたときの挙動
ノーツが中央判定タイミング (ガイド音が鳴るタイミング) を超えたとき、流れる速度が等倍になります。
例えば -1.0 倍速にして手前からノーツが流れるようにした場合は、判定線に重なった瞬間に反射したような挙動になります。
ロングノーツの背景部分は判定線跨いだとき、これを境に手前側は等速で流したときと同じ形状になります。
おまけ
UMIGURI NEW (仮)
UMIGURI v1 に潜在する様々な問題点を解決するために「UMIGURI NEW (仮)」としてほぼ一から開発している新バージョンです。
重かった UI 描画も独自のエンジンで軽量化し、表現力も向上させています。 開発進捗は Twitter @inonote で流しています。
※キャプチャ画像は開発中で未完成状態なので完成版は大きく変わっているかもしれません。
※プレイ画面の背景が新しくなっていますが、従来の背景に切り替えることも可能です。
UMIGURI ㊙情報
(ゲームディレクトリ)/data/music のサブディレクトリに .umgrignore
の名前で空のファイルを配置すると、起動時の楽曲を収集する際そのディレクトリの存在が無視されます。
楽曲数が多くなるとその分起動時間も長くなりますが、この機能を使うことで起動時間を短縮することができます。
デバッグ機能として実装していたのですが消し忘れました。
例: EXAMPLE ディレクトリを無視したい場合
UMIGURI ┗ data ┗ music ┗ EXAMPLE ┣ 3dBackgroundTest ┣ 3dFieldTest ┣ ⋮ ┣ Tutorial ┗ .umgrignore ←こう配置する
好きな配置
一応作譜人 (さくふんちゅ) でもあるので好きな配置を置いておきます。
SLIDE 中継点を等間隔でカチャカチャ鳴らす配置
チャッチャッチャッチャ...って軽快な音が鳴るの好き。
例:
Bad Apple!! feat.nomico (MAS)
太陽曰く燃えよカオス (MAS)
staple stable (MAS)
何とは言わないけど星 PLUS から始めた民なので残念ながら一番上以外は遊んだことないです... (復活してくれ)
ノーツの効果音を巧みに使っている配置
- Rendezvous (MAS)
楽曲のメロディーの音の高さが上がるのに合わせて AIR-HOLD を配置して高音の効果音を鳴らすようにしています。
また、効果音の高さは TAP → SLIDE 終点 → AIR-HOLD の順で高くなることが知られていますが、この配置は 1 拍目で TAP を鳴らし、 2 拍目で SLIDE 終点 を鳴らし、 3 拍目で AIR-HOLD を鳴らすことで段階的に音が高くなるようになっており、プレイが盛り上がるようになっています。(同時に鳴る効果音の種類も 1 → 2 → 4 と増えてますね。)
最後に
ここまで読んでいただきありがとうございます。
これからチ...ニズムで遊ぶ時はノーツ描画の仕様の知識を活かして、このノーツは描画順があのノーツよりも上だからこんな見た目になってるんだなーとか意識して譜面を見るとより面白くなるかも知れません。僕はしてます。