この記事はアドベントカレンダー2023 21日目の記事です。
はじめに:ハッカソンとは
ハッカソン(英語: hackathon、別名:hack day, hackfest, codefest)とは、ソフトウェア開発分野のプログラマやグラフィックデザイナー、ユーザインタフェース設計者、プロジェクトマネージャらが集中的に作業をするソフトウェア関連プロジェクトのイベントである(wikipediaより引用)
短期集中で一個のものを作り上げるイベントってことですね。
このブログは、私vPhosによるtraP主催の冬ハッカソンの体験記になります。
チーム決め
まずは誰と作るかですよね!今回の冬ハッカソンでは、チームのメンバーを自由に組むことができました。traPのハッカソンでの制作物は、基本的にゲーム系とWebアプリ系のどちらかになるのですが、私はゲームのサウンドを担当したかったため、ゲームを作ろうとしてる人を探しました。
見つけました。
早速声をかけた……かったんですけど、あまり話したことがない人にいきなり話しかける勇気がなかったので、スタンプをつけるだけにしました。
ありがとうございます!!!!
私がスタンプをつけたことに気づいて誘ってくれましたが、スタンプはつけられても通知が届かないため見落とすこともあります。皆さんはちゃんと勇気を出してメッセージを送りましょうね。
この後もなんやかんやあってメンバーが決まりました。
ということで、
イカれたメンバーを紹介するぜ!!
最強のゲーム案が湯水のように溢れ出る!ディレクター、 @wal!
C#歴10年以上の最強プログラマー! @cobalt!
シナリオもプログラムも俺に任せろ! @beferia!
髪型ウルフのデカい女こそ正義だ!グラフィック、 @Nek0yanag1!
最強のメンバーを招集したグラフィック! @Kasyu!
次々に生み出される†最強のサウンド†! @shogotin!
最強のチームにいる雑魚!!!!サウンド、vPhos!
まあ茶番はこれくらいにして、この7人で一つのゲームを作ることになりました。全員一年生なのですが、ゲームを作る上で必要な人材が全て揃っていて、組んだ時点で最強のチームだと確信していました。
何を作るか
今回の冬ハッカソンのテーマは「まる」と「かく」でした。この二つの言葉から発想を練っていきます。先ほど紹介したように、ゲームの原案はwal君が考えてくれました。
それが、
体の一部を「欠く」四人の少女たちを脱出させるゲーム
です。
四人は順番に部屋からの脱出を試みるのですが、一人一人できることが違うため、全員が脱出するためには一番最初に脱出する少女がその後の少女たちに脱出できるように部屋の物を操作しなければならないという、新感覚の謎解きパズルゲームです。
ただこの原案には次の問題点がありました。
- 身体の一部を欠損しているのはR指定が必要になり人を選ぶ。
- グラフィック的に身体の一部を欠損している女の子を描くのが苦痛である。
- 脱出しても奪われた身体の一部は元に戻らないため真のハッピーエンドにはならない。
ということで、
身体の欠損を、外すと致死量の電流が流れる拘束具をつけられた、とすることで以下の問題を解決しました。私は初期案かなり好きなんですけどね、こればかりは仕方ないです。
その後、脱出する部屋の構造や実装するギミック、少女たちのキャラ設定についても話し合いましたが、具体的な内容は書かないでおきます。
ゲームの構想について人と意見を出し合うのは、本当に楽しいのでぜひ全人類に体験して欲しいです!(もちろんゲームに限らないとは思いますが)
タスクの書き出し
作るものが決まったら、次に決めるべきはタスクの割り振りです。制作期間は1週間と短いので、事前に何をするべきか把握することが必須になります。
サウンドに振られたタスクは以下の通りです。
- メインタイトルのBGM
- ゲームシーンのBGM
- 各種効果音
これらをshogotin君と二人で分担して進めていくことになります。
以下が色々話したり考えたりして決めたことです。
- メインタイトルのBGM
- メロディあっていいかな
- 一人救うごとに楽器増やしたいね
- 結構生音っぽくなりそう? - ゲームシーンのBGM
- メロディないような環境音風がいいね
- 謎解き系のゲームのBGMの雰囲気で作りたい
- 各種効果音
- ゲーム内でのアクションによる効果音は作るのが難しいものが多そう。
- 決定音くらいは作りたいかも
これに従って、音を作っていきます。
また、サウンドが一番謎を知らないまま作業できるということで、テストプレイヤーをやることにもなりました。
ハッカソン開始!
というわけで2023/12/11の0:00に冬ハッカソン2023が開始されました
先ほど書いたサウンドのタスクのうち、自分が担当した
- ゲームシーンのBGM
- 各種効果音の一部
について書いていきたいと思います。
ゲームシーンのBGMについて
まず自分が直面した問題として、「どんなものを作ればいいのかわからない」ということです。
環境音のような雰囲気のBGMをあまりにも知らないため、本当にどういうものを作ればいいかわかりませんでした。これはtraPのサウンドあるあるなんですが、traPで曲が作れる人間のうちゲームのための音楽を主に作ってる人間は一人くらいしかいないため、大体我の強い曲が生えます。実際東方やUndertaleなど曲自体も高く評価されてるゲームもありますし、そういう曲を書いた方がいいゲームも多くありますが、先ほど説明したゲーム性から分かる通りこのゲームはそうではありません。
こういう場合はとりあえず作って、リーダーに是非を聞いた方が早いです。
というわけで以下のやつを提出しました。
これに対してのフィードバックは
- あまりにも不安になっちゃう曲調すぎる
- 時計の音が焦らせるみたいで謎解きの邪魔になりそう
でした。
かなりシオンタウンのBGMに影響を受けてましたごめんなさい。
というわけで環境音っぽいものの主張をもっと強くして、時計の音を削除したものがこちらになります。
これで許可が出たため、これが実装されました。
個人的にはあまり納得はいってないのですが、とりあえずこんな感じで作曲を進めました。
各種効果音について
今回のゲームはリアル寄りのゲームであるため、効果音は基本的に自作ではなくOn-Jin ~音人~さんからダウンロードした音を状況に応じて加工して使っています。また、効果音の種類によっては、謎に深く関わってくるものも少なくありません。
というわけで今回は効果音制作に関して話せることは少ないですが、一部の効果音についてどのように作ったかなどを、これを読んだ皆さんも作れるくらいにはそこそこ丁寧に書いていきたいと思います。
足音について
足音は自作に近いことをしたので紹介します。まず909kickと呼ばれる音を用意しました。下の動画のような音ですね。
ちなみにこれは別にこの音じゃなくてもkickの音であればいいと思います。色々なkickの音で作り比べても面白いかもしれません。(ハッカソンではそんな時間がなかったため、とりあえず909kickを使いました。)
次にこれをSamplerに入れ、Sustainを0に、Decayをいい感じに短くします。
予備知識:ADSRについて
ADSRはAttack time,Decay time,Sustain level,Release timeの略で、シンセサイザーをはじめとする楽器に必ずあるパラメータのことです。(Hold timeを含めてAHDSRと呼ぶこともあります。)以下の画像はvitalというシンセサイザーのADSRを調節する画面です。縦軸が音量、横軸が時間のグラフであるとみなせます。
Attack timeは音が最も大きくなるまでの時間のことです。このパラメータを大きくすると、バイオリンなどの弦楽器のように音が鳴り始めるのに時間がかかります。
Decay timeは音が減衰するのにかかる時間です。ドラやシンバルなどはDecay timeの長いものの代表例だと思います。
Sustain levelは音が減衰したあとにどれくらい音を保持するかを示すパラメーターです。管楽器やシンセサイザーなどはSustain levelが0でない楽器で、打楽器はSustain levelが0である楽器です。
Release timeは鍵盤を離した後、音が残る時間のことです。かなりDecay timeに似ていますが、鍵盤を押している時の減衰と鍵盤を離した後の減衰という違いがあります。Sustain levelが0であればこのパラメータに意味はないと思います。
Decayについては色々試してみるといいと思います。
そうしてできたものがこちらになります。(※利用規約的な問題で雑音をいれてます)
ちょっと足音っぽくなりましたが、これだと人間味がありません。
偶数回目のベロシティを小さくし、音を下げてみましょう。ついでにタイミングもピッタリではなく少しだけずらしてみましょう。(これをヒューマナイズといいます。)
かなりいい感じの足音になったと思います。
血飛沫の音について
※グロ注意なので、本当に苦手な方は音は聞かないことをおすすめします。本文での痛々しい表現は極力減らしています。
効果音には主に4種類の作り方があります。
- その音そのものを録音する。
- その音によく似た音を録音する。
- 似た音を加工してその音にする。
- シンセサイザーで音を作る。
先ほど紹介した足音は3番に当たります。4番の方法はUIの音や機械の音を作るのにとても向いていますが、リアルな音を作るのは至難の技です。1番の方法は論外ですし、似た音を持っていなかったため3番も使えない……と思い、今回は2番の方法で作りました。
このサイトによると水を含ませたティッシュを握り潰すと血飛沫の音になるらしいです。
実際にやってみました。
以下がその音になります。
それっぽい音が撮れましたね!!!
特に遅く潰した音が痛々しい感じになっていて、とてもいい感じだと思います。
しかし以下の問題点があります。
- 雑音が入っている。
- 音源がモノラルである。
基本的に録音環境が良くないのが原因です。雑音は基本的に400Hzより低い音だったので、EQ(イコライザー)という周波数ごとに音量を調整できるプラグインを使いました。以下が録音した効果音の周波数分布です。2枚目の画像では400Hz以下の周波数の音がカットされてることがわかりますね。
こんな感じで雑音の問題は解決しました。
モノラルについては、私がマイクを持っていないためスマホで録音したことに原因があります。
モノラルとは?
モノラルとは一つのスピーカーからしか音が出ていないような音のことです。対義語はステレオです。 皆さんは曲を聴いた時に右と左で違う楽器の音が聞こえたり、ASMRなどを聴いた時にまるで横から音が聞こえてくるような体験をしたりしたことはありませんか?あれは右耳と左耳で音量バランスを変えたり、音のなるタイミングをほんの少しだけずらしたりすることで、まるでその場にいるかのような臨場感を演出しています。このような音をステレオと言います。(ざっくり言えばですが) 逆にモノラルはそのような処理をしていない、悪く言えば臨場感のない音です。しかし、モノラルでの録音は雑音が入りにくく、イヤホンやしっかりしたスピーカーなどを使わなければステレオである意味もないので、電話などに使われています。モノラルをそのままステレオにすることもできますが、それだと臨場感がなくて面白くありません。というわけで臨場感のあるサウンドにしていきましょう!
具体的には、両耳から音が聞こえるようにしたいわけです。ここで重要なのがパンというパラメータになります。以下がパンを振った音源になります。ぜひイヤホン、ヘッドホンをして体験していただきたいです。(中身はピアノの音なので安心してください)
最初は右だけから、2回目は左だけから聞こえたのではないでしょうか?3回目は普通に感じたはずです。しかし実際は1回目の音と2回目の音を同時に鳴らしています。4回目は両耳から聞こえてくる感じがしたと思います。これは1回目の音と2回目の音をずらして鳴らしています。パンを振るというのは左右での音量バランスを変えるというだけなので、3回目の音のように同じ音を同じタイミングでずらしてもステレオ感は出せません。右と左で異なるタイミングで音を鳴らせばステレオらしい臨場感が出せます。
ただ、私はこの方法ではなく、右と左で違う音を同時に鳴らすという方法を取りました。この方がより臨場感が出ると思ってます。
というわけでもう一個水で濡らしたティッシュを握り潰した音を用意しました。
これらの音にパンを振って二つを合わせてみましょう。ただパンを振るだけでなく、真ん中から外側に広がるようにパンの値を動かしてみます。ファイルの最初から音が流れるようにしたり、二つのファイルの音量を微調整するのも忘れずにやりましょうね!
というわけで、完成したものがこちらになります。
結構リアルな音ができたと自負してます!このブログ書いている途中にやっぱあんまりリアルに聞こえなくなりました。
こんな感じで効果音の作り方は終わろうと思います。
余談
サウンドが二人いたのもあり、早々にタスクが終わりました。
私 :「サウンドのタスク終わったよ〜。」
Kasyu君:「あ〜、じゃあドット絵の素材描いてー。」
え??:「私」
というわけでドット絵を描くことになりました。
私はドット絵どころかデジタルの絵を描いたことがありませんし、マジで絵が描けません。
しかしbeferia君のiPadとApple Pencilを借りて何とか描きました。かなりちょっとしたものだったのでまだなんとかなった節があります。(というかそういうものをKasyu君が割り振ってくれたのですが)ネットに見本がいくらでも転がってるという点もかなり大きかったです。
というかもうほぼ模写なので見本の素材を取ってくればよかったんじゃ……
まあ何事も挑戦ですね!
そんな感じでハッカソンの制作時間が終わりました。
制作時間終了後
ハッカソンの制作時間の後は各班のプレゼンと試遊の時間になります。
なりますが……
なるんですけど……
ゲームが動きませんでした……。
プログラム関係は詳しくないのでざっくりとしか知りませんが、複数人で書いたコードをうまく統合できなかったみたいです。まあこういうことはハッカソンにはつきものなので仕方ないと思います。
ちなみにプレゼンは全班の中で一番上手かったです。Kasyu君ありがとう!!!
試遊の時間では他の班の制作物を体験してまわりました。それらの制作物についてのブログもこのあと更新されるはずなので、ぜひそちらもよろしくお願いします。特にゲーム系はダウンロードして遊べると思います。
感想等
まず第一に楽しかったです!!!!
自分が普段している作曲は割と個人活動が多く、共同に何かを作る経験をしているわけではないので、こういう機会はサークルに入ってこそできる貴重なことかなと思ってます。やはり個人で制作するときは多少なりとも孤独を感じますし、自分のモチベがないときはサボってしまいがちになります。しかし共同制作は人とワイワイしながら作れますし、進捗への圧がかかる進捗へのやる気が出るので個人制作よりもずっと進んで楽しいです。
次回のハッカソンは新入生が入ってきてすぐに開催される春ハッカソン2024になります。そこではサウンド以外の仕事できるようになっていたいと思っているので、これからできることを増やしていこうと思います。
終わりに
ここまで読んでいただきありがとうございました!
想像以上に長くなってしまいましたね……。
明日12/22(金)のAdvent Calendarは@Hirono_K,@Pugma(@o_ER4,@Pina641,@comavius,@ramdos,@Alt--er)です!