Blog

[UE4] Time Synthを用いて簡単なリズムゲームを作ってみた1

執筆者 M.M

執筆バージョン: Unreal Engine 4.24

はじめに

最近リズムゲームが人気だと感じてきてます。スマホアプリも多くありますし、コンシューマでも人気のリズムゲームがあったりしますね。そんな中自分で制作したいという方がいらっしゃると思いますが、UE4で一からリズムゲームを作成する場合どのように作っていいかわからないと思うこともあるかもしれません。そんな方のためにリズムゲームを作成するための考え方や手順を紹介していこうと思います。どんなプラグインを使っているのか等、参考にしてもらえたら幸いです。

この記事の内容

1. プロジェクトの準備

2. 譜面の作成

3. ブループリントの作成

3. 実際に動かしてみた

ファイルを用意しよう

今回必要なファイルは2種類です。

  1. Unreal Engine 4.24
  2. アンリアルエンジンのテンプレートプロジェクト

実装してみよう

プロジェクトの準備

リズムゲームを作る大前提として「音ズレの防止」「音楽と完全同期した判定」が必要となります。描画関係でゲームのラグが発生したり、低スペックによる音飛びによって正しい判定を起こしてくれないと、プレイしている人にとって楽しく遊ぶことができなくなります。今回それを解決してくれるプラグインがUE4には存在します。それが「Time Synth」です。これを使うことで音に同期して譜面を表示させることが可能になります。まずはこの設定を行っていきます。

左上の編集からプラグイン設定ウィンドウを表示します。

表示したプラグインウィンドウから「Build-in」→「Audio」→「Time Synth」を選択してUE4の再起動を行ってください。

次に、左上のメニューから新しいレベルを作成します。

「ファイル」→「新規レベル」→「Default」の順にクリックします。

次にカメラの設定を行います。モードからカメラをアウトライナに配置し、以下のレベルブループリントを作成してください。

①モードからカメラを選択してカメラを配置

②カメラを任意の位置に設定

③レベルブループリントを開いて下図のようにブループリントを設定

最後にリズムゲームに必要なBGMを追加して設定を行います。音楽ファイルをコンテンツに配置し、コンテンツブラウザの「新規作成」→「サウンド」→「Synthesis」→「Time Synth Clip」の順に選択してください。作成したファイルをダブルクリックし、以下の画像のように設定を行ってください。

①任意の音楽をUe4に取り込んでSoundWaveに設定RandomWeightとDistanceRangeは画像の通りに設定

②曲にフェードインアウトをするか設定する。しない場合は画像の通りに設定

③曲の再生する長さに応じてNumBarsを調整

譜面の作成

次に譜面を作成するための構造体を作成します

譜面データは譜面の位置だけが書かれていても意味がありません。

本来であれば曲の名前や、テンポ、wavファイルによっては開始地点からどれだけ調整するかなども記録しておく必要があります。

が、今回はシンプルに作りたいので、最低限動かすのに必要な譜面のデータだけを作成します。

というわけでこのような構造体を作りました。

①構造体を選択

②上記の通りに構造の設定

次に、「コンテンツ右クリック」→「その他」→「データテーブル」を選択して、先ほど作成した譜面構造体のテーブルを作成します。

テーブルの中身に関しては後述する「最小カウントするQuantization Type」に応じて任意に設定を行ってください。

①先ほど作成した構造体のデータテーブルを作成

②作成したテーブルに任意の値を設定

まとめ

今回はプラグイン導入から譜面のデータテーブルの作成までを紹介していきました。

次回はこの譜面をブループリントで読み込んで音ゲーのシステムを作っていきます。

関連記事