見出し画像

波形メモリシンセをGodotEngineで作る

今年のはじめくらいから、godotengineというのを使って遊んでいる。これはunityやunreal engineのようなゲームエンジン兼開発ツールである。

https://godotengine.org/

チュートリアルを使ってゲームを作ってみて、なるほどこれは簡単だあ!って思った。こういうツールを使うと、今までエンジンから実装しようとしてことごとく投げ出してしまった私のような人間でもゲームを完成させることができるのでは。。と思えるものだった。

そしてさらにエンジンの理解を深めるためにゲームを作り始めた。まあ昔ながら縦画面のシューティングゲームである。

godotengineはゲーム・ロジックはvisualscript/gdscript/C#/nativescriptという3種類の方法で書くことができる。基本はgdscriptである。visualscriptを使ってノンコーディング(ノードベースの)でゲーム・ロジックを書くこともできる。nativescriptはC/C++を使って書く。

作っているうちにエフェクトやBGMをどうしようかなあ?って思った。今どきのゲームはwav/mp3/oggなどのファイルをタイミングよく再生するだけの簡素なものになってる。もちろんエフェクトもかけられたり、3Dポジショナルな定位とかもできるとかすごいはすごいんだけどね。

なのでDAWとか使って効果音をレンダリングして、それをインポートしようかなあって思ったんだけど、それもめんどくさいし(そのほうが結果的には手っ取り早いのだが)、なんかプロシージャルにエフェクトを生成したくなってきた。ほしい音はナムコ絶頂期の波形メモリサウンド。

で調べてみると、godotにはAudioStreamGeneratorというのがあり、これを使うと任意の波形を生成できることが分かった。これでできるじゃないか!って思ったが、試してみると残念ながら実用的な速度を得ることは難しそうだった。

そこでnativescriptで音源部分を作ることにした。C++を触るのはかなり久しぶりで、四苦八苦しながらなんとか音を出すことができた。

そしてこの音源をいじるためのエディタをgodotで作り始めた。今はこのエディタをひたすら作り続けている。趣味の時間すべてをこれに割くモチベーションはなく、まあ気長にゆっくり実装している。ようやくエディタとして使えるようなレベルになってきて、ナムコのマッピーを演奏したりして遊んでいる。

このエディタにいくつか機能を付け足してゲーム製作に戻ろうと思っているが、サクっとゲームを作れるのでは。。という感じでは今なくなっている😅


この記事が気に入ったらサポートをしてみませんか?