🎮

第19回UE5ぷちコン参加録

2023/04/22に公開

この記事について

株式会社ヒストリアさまが開催しているゲーム開発コンテスト「UE5ぷちコン」に参加したので、その記録を徒然なるままにしたためたものです。すなわち雑記。読むことによって得るものはあるかもしれませんし、ないかもしれません。暇つぶしにどうぞ。

開催要項

こちらからご確認ください → 第19回UE5ぷちコン
今回のテーマは「ロック」ということで、それに沿ったゲームをサクッと作って応募する形となります。参加すればもれなくオリジナルTシャツがもらえるという、じつに素晴らしいコンテストです。みんな、どしどし応募しよう!(ダイマ) (今回のコンテストはすでに終了しているので、次回開催を座して待て)

応募作品

「GUITAR GUY」という作品を応募しました。

https://youtu.be/ruPY0jm7Ff8

「ロック」というテーマを聞いた時、真っ先に思い浮かんだのは音楽のロックであり、グレイマンに楽器弾かせてはっちゃけさせたいなー、とイメージが湧いたので、それに従って制作に取り掛かることにしました。
ちなみに当初はドラムをドコスカ叩かせる内容で考えていたのですが、モーションをつけるのが大変そう (どちらの手に持っているスティックで叩くのかを判定するロジックが複雑になりそう & 叩く位置をきちんと合わせなければならないのでその調整が面倒そう) といった理由もあり棄却しました。

技術的な学び

私は普段から Unreal Engine を触っているわけではなく、コンテストのタイミングで都度いろいろ思い出しつつ実装するような感じなのですが、なんだかんだでコンテストには 5 回以上は参加しているため、だいぶ知識も定着していました。
おかげさまで、ロジックの部分だけで言えば、特に調べものに時間を取られることもなく、恐らく半日くらいで仕上げられました (ちょっとサバ読んでるかもですが)。
ただ、唯一知識がなくて調査を要した点、逆に言えば今回新しく学びとなった技術的要素は Sound Concurrency の使い方についてでした。

Sound Concurrency とは

サウンド並列処理のリファレンス ガイド

あまりに多くのサウンドを同時に再生すると、大量のリソース消費やパフォーマンスの低下が発生する可能性があります。サウンド並列処理 アセットは、そのような問題に対処するために使用できる主なツールの一つです。サウンド並列処理アセットを使用すると、同時に再生されるサウンドの数を制限でき、その上限に達したときにどうなるかを指定できます。それらのルールを個々のサウンド、サウンドのグループ、またはプロジェクト内のすべてのサウンドに割り当てることができます。

ドキュメントではリソース消費やパフォーマンスの低下の対処方法として言及されていますが、今回の制作においてはそんな大げさなものではなく、単純に「ある音が鳴ってる最中に次の音を鳴らそうとした場合、自動的に前の音の再生を止めたいんだよなぁ」という課題に対処するために使いました。
GUITAR GUY では、演奏キーが押されてイベントが発生した際に、Play Sound → Play Animation という感じで処理を行うようなシンプルな実装をしていました。
Blueprint
適切な処理であるかは不明ですが、今回のようにサクッと制作するようなゲームではこんなものかなぁと。ただ、これだと前述の通り、まだ前の音が鳴っているタイミングで次の演奏キーが押されると音がダブってしまうことになり、すごい勢いで演奏キーが入力されると大量のサウンドが同時に鳴り、音割れポッター状態になってしまうという問題がありました。

そこでこの Sound Concurrency を適用することで、特定の音 = ギターの音は同時に 1 音しか鳴らないようにコントロールすることができるようになりました。具体的な設定方法はドキュメントに譲るとして、同時再生数の調整はこうした機能でできるのだと知見が得られました。

おわりに

今回はそもそも開催されていること自体に気づくのが遅く、慌てて制作に取り組んだのですが、大体 2 週間くらいで形にすることができました。このスピード感 & ノーコードでそれなりのゲームを作れてしまうというのは、さすが Unreal Engine だなぁと毎度感心してしまいます。
なお、拙作は入賞は逃したものの、審査結果発表会で作品紹介していただくことができました。
(発表会の動画を転載します。力作ぞろいなので、興味あればぜひご覧ください!)

https://www.youtube.com/watch?v=CMDMmRmoApg

このコンテストが開催されるたび、ゲーム制作の楽しさと新しい知見を得ることができて非常にありがたいです。毎回運営や審査が大変かと思いますが、次の機会もあるのであればぜひチャレンジしたいなと思います。

Discussion