Skip to content

第02回 ゲームと時間 ​

ゲームでは、時間に合わせてさまざまな処理を進める必要があります。
演出の開始タイミング、敵出現のタイミングなど、それぞれの処理は個別にタイムラインを持ち、時間に従って進行します。

今回はリズムゲームを題材に、ゲーム内での時間の扱い方を学びます。

完成見本では、曲に合わせて画面をノートが流れます。
このノートの表示とヒットのタイミングを、曲の再生時間に合わせて制御する仕組みを学びます。

今回の授業内容 ​

  • 時刻と時間の長さを区別し、秒・拍・Tickを換算する
  • 曲の再生・ノートの表示・入力判定をひとつの時間軸で管理する
  • 開始前の負の時刻、周期の位置、時計の精度と更新間隔を区別する

曲の再生時間に合わせてノートを発行し表示、適切なタイミングでの入力判定を行う仕組みを学びます。

音楽を扱うためには、時間の扱い方を正確に理解する必要があります。
この回では、配布済みの時計を読み、単位の換算と基準時刻との差を計算します。ノートの発行・移動・入力判定への利用は、第03回で扱います。

配布プロジェクト ​

第02回の開始用プロジェクトを展開し、Unity HubにRhythmGameを追加してください。
読み込み後にAssets/UNSLOW/RhythmGame/Scenes/RhythmGame.unityを開いてください。

開始版には8音の練習譜面、音源、時計、UI、再挑戦の補助処理が用意されています。ノートの発行・位置・入力判定の中心部分は未実装ですが、この回ではコードを変更せず、曲の時計とBeat・Tickの表示を確認します。動画は第03回まで進めた完成見本です。

スクリプトはAssets/UNSLOW/RhythmGame/Scripts/以下にまとめられています。

配布ファイル一覧
ファイル・フォルダー役割
Assets/UNSLOW/RhythmGame/Scripts/SongClock.cs曲の再生を予約し、曲の時刻を返す
Assets/UNSLOW/RhythmGame/Scripts/ChartSource.cs拍とTickで配置した練習譜面を用意する
Assets/UNSLOW/RhythmGame/Scripts/NoteData.csTickを判定時刻へ変換し、レーンと時刻を保持する
Assets/UNSLOW/RhythmGame/Scripts/RhythmGame.cs開始、ノートの更新、判定、終了を進める
Assets/UNSLOW/RhythmGame/Scripts/RhythmInput.csInput Actionから入力を受け取る
Assets/UNSLOW/RhythmGame/Scripts/RhythmView.cs曲情報と判定結果を表示する
Assets/UNSLOW/RhythmGame/Scripts/BeatTickView.cs拍と、その拍の中の現在位置を表示する
Assets/UNSLOW/RhythmGame/Prefabs/レーン、ノート、Tickの表示部品
Assets/UNSLOW/RhythmGame/Input/RhythmGame.inputactions開始、再挑戦、4レーンの入力設定
Assets/ThirdParty/UDEVGothic/TMPのSDF Font Asset、元フォント、ライセンス
Assets/ThirdParty/Audio/音源と、その出典・利用条件

操作方法 ​

レーン左からD、F、J、Kでヒットします。
SpaceまたはEnterで開始し、Rで最初からやり直します。

開始版でも曲の再生と再挑戦はできます。
ノートの発行・移動・入力判定は、第03回の実装済み開始版で確認します。

授業の進め方 ​

時間と時計、秒と拍の関係から始めます。
その後、フレームと楽曲の進行を比べ、曲の開始点を基準にした時刻と、拍の中を繰り返す位置を扱います。

完成確認 ​

  • BPMとTick数から、1拍と1 Tickの秒数を計算できる。
  • 画面の更新と音声の進行を区別し、時計を選ぶ理由を説明できる。
  • 曲の開始前・開始時・開始後の時刻と、負の値の意味を説明できる。
  • 剰余から拍の中の位置を求め、再生・表示・判定が共有する時間軸を説明できる。

次回は、今回の時間計算をノートの表示と入力判定へ使い、CSVで譜面を作ります。

ライセンス ​

アセット作者提供元ライセンス
Synthwave House Loopの添付ループ音源FupiOpenGameArtCC0 1.0 Universal
UDEV Gothic v2.2.0と、元フォントから生成したSDF Font Assetyuru7UDEV GothicSIL Open Font License 1.1

音源の記録はAssets/ThirdParty/Audio/LICENSES.md、フォントの出典・著作権表示・ライセンス文書はAssets/ThirdParty/UDEVGothic/に同梱されています。