シンプルな音ゲーを作る機会があったのでメモ
先日お仕事でちょっとした音ゲーを作らせていただく機会があったので仕組みについてメモ。
下のリンクが今回制作させていただいたゲームになります。(主に AS3 でのプログラミングを担当しました)
ONI RHYTHM(オニリズム)| ワンダーエージェント:FOURTH SEASON
音ゲーといえば曲のビートとゲームの挙動をシンクロさせないと何も始まらないのですが、今回は SiON を使用してビートとゲームの挙動をシンクロさせています。
曲のビートとシンクロさせる基本的な仕組みはこちら。
SiON MP3 and Beat Example – wonderfl build flash online
ビートの同期については、曲のBMPを決めて(サンプルでは BPMAnalyze.estimateBPM() で .mp3 の BPM を取得しています)SiONTrackEvent.BEAT で BPM に合わせてイベントを取得。
このイベント間隔でゲームのタイミングデータ(楽譜)を読んで、曲に合わせたゲームを進行させています。
タイミングデータは 0 と 1 を配列に入れただけのシンプルなもので、さきほどの SiONTrackEvent.BEAT で決められた間隔で読んだタイミングデータの配列の読み取り対象インデックスが 1 のときに音譜(このゲームだと顔のアイコン)を生成しています。
今回は5つのキーを組み合わせて遊ぶゲームだったので、1曲につき5本のトラックを持つタイミングデータを作りました。
タイミングの正誤判定については、今回は 1/8 小節内でタイミングが合えば Good、発音のリアルタイムから規定時間内(たとえば 500 msec など)にタイミングが合えば Excellent と判定するようにしています。
と、こんな感じで、Flash だと SiON のような便利なライブラリもあるため、あまり手間をかけずに音ゲーが作れました。
もしこれと同じような物を js でやれと言われたら…
はい、速攻断りますw