0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

U/Day Tokyo 2025 参加を受けて考えるリズムゲーム向けエディタ拡張の仕様

Last updated at Posted at 2025-12-16

目次

はじめに

本記事は Akatsuki Games Advent Calendar 2025 15日目の記事です.
他の記事もぜひ読んでみてください!

この記事では,先日行われた Untiyの公式技術カンファレンス「U/Day Tokyo 2025」にご登壇された 高原 和啓さんの講演「『怪獣8号 THE GAME』開発効率を究極まで高めるエディタ拡張の技術と思考」をテーマに,以下について書いてみています.

  1. 講演から学ぶエディタ拡張のあり方
  2. 実践編: リズムゲーム向けエディタ拡張の仕様定義

U/Day Tokyo 2025 についてざっくり

U/Day Tokyo 2025 は,ユニティ・テクノロジーズ・ジャパン株式会社(Unity Technologies Japan K.K.)が主催する Unity 公式の技術カンファレンスです.

カンファレンスでは,

  1. Unity Japan,Unity 本社のスタッフによる以下講演
    • 近日リリース予定の最新バージョンで活用できる最新グラフィック機能
    • ランタイム上のアプリケーションのパフォーマンス改善や開発効率化のノウハウ
    • 次世代の没入型体験を実現するためのXR活用方法
  2. Unityでゲーム開発を展開しているデベロッパーやパブリッシャーによる開発事例の講演

が行われました.本記事では,2のデベロッパーやパブリッシャーによる開発事例の講演に着目しております.

image.png
fig1. U/Day Tokyo 2025 で販売されたグッズ一覧.私はUnityパーカーを買いました.

1. 講演から学ぶエディタ拡張のあり方

そもそも: エディタ拡張とは?

エディタ拡張は,Unityエディタの機能を拡張するもので,C#スクリプトを用いて独自のウィンドウやインスペクタ,メニュー項目などを作成することができます.

Unityエディタは汎用的なゲーム開発ツールではありますが,実際にゲームを開発する際にはプロジェクトごとに特有の要件が存在します.

Unityエディタの標準機能だけではこれらの要件を満たすことが難しい場合もあるため,エディタ拡張を用いて開発効率を高めることがよく行われます.

開発効率を高めるエディタ拡張とは?

本題です.講演のスライドを引用しながら,開発効率を高めるエディタ拡張について考えてみます.
実際に紹介されたエディタ拡張の詳細については,後日公開されるアーカイブ版をご覧ください.

開発効率を高めるための意識

エディタ拡張を作るにあたり高原さんが意識されていたのは,

  1. Unityの標準機能のような振る舞い
  2. 標準的な操作,規則に従う
  3. 開発者が日常的に使う

この3点.これらは,「チームと開発者が幸せになる」という想いから派生したものだそうです.1つ1つ見ていきましょう.

1. Unityの標準機能のような振る舞い

Unity内部に組み込まれるエディタ拡張がUnityの標準機能と大きく異なる振る舞いを示した場合,当然ながら開発者の学習コストが高くなってしまいます.

2. 標準的な操作,規則に従う

いくら便利な機能であっても,特別な操作感を要求するものであっては学習コストが高いでしょう.極端な例ですが,ゲームオブジェクトのコピーが 「Cmd + p /Ctrl + p」で行われたら混乱しますよね.

3. 開発者が日常的に使う

日常的に使わないツールを開発したところで,当然ながら業務効率化にはなりません.
技術的な興味ベースで作ったものがよくよく考えれば不要だったとなること,ありますよね.

エディタ拡張がもたらす変化

上記3原則に基づいて設計されたエディタ拡張は,以下の2つの変化をもたらします.
その変化の結果として開発環境が開発中のゲームに最適化されていきます.

  1. 開発速度の向上
    • 検索性向上 / 自動化 / オンボーディング短縮
  2. 作品の品質の向上
    • 品質向上作業への集中 / バグ発見・対処の工数の確保 / 作業の再現性の担保

この変化は一度始まると循環し,さらなる開発環境改善の工数確保にもつながります.

1章まとめ

ここまで,エディタ拡張を用いた開発効率向上の根底の考え方に触れてきました.
次章では,その価値観を適用して実際にリズムゲーム向けのエディタ拡張の仕様定義を行ってみようと思います.

2. 実践編: エディタ拡張によるリズムゲーム開発チームの開発効率の向上

実践編です.今回は,以下のような仕様のリズムゲームを作っていると仮定してみます.

  • 開発エンジン: Unity6
  • 制作するゲーム: スマホ向け3Dリズムゲーム.Arcaea(*1)や Paradigm: Reboot(*2) のような,奥からレーンが流れてくるタイプのイメージ.
  • 使用するノーツ: ワンショット系(タップ,フリック),ロング系,スライド系

参考にした音ゲーのプレイ動画

Arcaea

**Paradigm: Reboot**

リズムゲーム開発チームの開発効率を高めよう

開発効率を高めるエディタ拡張の原則をおさらいしましょう.

  1. 標準機能のような振る舞い
  2. 標準的な操作,規則に従う
  3. 開発者が日常的に使う

並列で記述されていますが,実際にエディタ拡張を作る際のとっかかりは3の原則です.
では,リズムゲーム開発チームで開発者が日常的に使いそうなものはなんでしょう?

そう,譜面作成に関する機能ですよね!運用中のリズムゲームでは頻繁に譜面を作成することになります.

個人開発で特に感じる課題が,作った譜面のプレビュー作業(ノーツ配置 → シーン上で確認 → 修正)のサイクルにありました.

プレビュー作業の工数を分解してみると,以下のようになります.

(プレビュー作業の全体工数) = (プレビュー1サイクルの時間) × (品質を担保するために必要なサイクル数)

右辺の項について,それぞれ以下の課題がありました.

  • 1サイクルあたりの時間: シーンの再生や読み込みを必要とする実装になっていて,配置したノーツを確認できるまでに時間がかかっている
  • 品質を担保するのに必要なサイクル数: シーンを見ながら編集できない影響で,イメージ通りの譜面を実現するための試行錯誤が多い

これらの課題の解決を行う仕様を考えてみましょう!

リズムゲームの開発効率を高めるための譜面制作用エディタ拡張の仕様

プレビューのサイクルに着目したエディタ拡張のメイン機能は以下の通りです.

  1. Unityの再生ボタンを押さずプレビューできるようにする(1サイクルの時間の短縮)
  2. 実際に譜面が流れるシーンを見ながら編集できるようにする(サイクル回数の削減)

1と2を実現するために,Timelineにノーツの始点と終点の時間情報を管理させることとし,シーン上で配置の調整ができるようにしてみます.

ノーツの時間座標とノーツの空間座標の分離

ノーツの座標情報には,時間座標 (z座標)空間座標 (x, y座標) の2種類があります.

時間座標は,楽曲に合わせてリズムを取るための情報で,ノーツが流れてくるタイミングを決定します.一方,空間座標は,ノーツがレーン上のどこを通るかを決定します.

これら2つの位置情報の操作をそれぞれTimelineとSceneビューで分担することによって,それぞれの座標情報の編集を直感的に行えるようにします.

要素 役割 主な操作場所
時間座標 (タップするタイミングや押し続ける長さなど) ノーツの開始・終了時刻(z座標),セグメントの持続時間 Timeline ウィンドウ
空間位置 同一時間軸における座標 (x, y座標),中間点の経路 Scene ビュー

A. Timelineによる時間座標の編集

Timelineは,時系列データの管理に特化したUnity標準機能です.
image.png

リズムゲームにおける譜面データは時間軸に沿った情報が中心となるため,Timelineを活用することでこれらの時間情報を効率的に管理できます.ノーツに限定した時間軸情報で言えば,

ノーツ種 必要な時系列データ
ワンショット系(タップ/フリック) ノーツをタップ・フリックするタイミング
ロング系 ノーツの開始・終了タイミング
スライド系 ノーツの開始・終了タイミング,および各分節点のタイミング

というふうになります.これら全てのノーツを1つのクリップとして管理した場合,Timeline上でノーツの開始・終了時刻を調整することはできますが,分節点を持つスライドノーツの経路を直感的に編集できません.
分節点を持っているノーツであるスライドノーツは,始点から終点までの全体を一つのクリップとして管理するのではなく,ノーツの経路を構成する各区間を独立したTimeline Clipとして表現するようにします.

B. Sceneビューによる空間座標の編集

Timeline上のクリップ操作で空間座標を編集するのは,直感的とはいえません.
そこで,Sceneビューでノーツの空間座標を編集できるようにします.
3D空間上でノーツの位置を直接操作できるため,ノーツの配置が直感的に行えます.
また,Timelineの再生もSceneビュー上でリアルタイムに反映されるため,ノーツの配置を確認しながら編集できます.

2章まとめ: 原則への接続

この譜面制作用エディタ拡張の設計が,第1章で学んだ開発効率を高めるための3原則の対応をまとめてみましょう.

原則 貢献する仕様 貢献の具体的内容
1. Unityの標準機能のような振る舞い Timelineの標準機能を応用したノーツの配置作業 時間軸の編集をTimelineのクリップ操作に委ねることで,新規学習コストを抑制する.
2. 標準的な操作,規則に従う Sceneビュー上で行うノーツの空間座標の操作 ノーツの位置調整にUnity標準のUIコンポーネントの操作を使用する.
3. 開発者が日常的に使う 譜面作成・プレビュー機能に特化 運用中のリズムゲームで頻繁に行われる「譜面作成と品質担保サイクル」の改善を直接の目標とする.

終わりに

最後までお読みいただき,ありがとうございました.
本記事では,U/Day Tokyo 2025の講演から得られた知見を元に,リズムゲーム向けエディタ拡張による開発効率向上の仕様定義までを行いました
今回仕様検討したエディタ拡張(およびリズムゲーム本体?)は,次回の記事で実装フェーズへ進めてみようと思いますので,その時まで気長にお待ちください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?