リズムゲームを面白くする音に関する演出
〜『ありすのステージ』製作時に得られた知見〜
ふみ@fumilin
清水史人 @fumilin/ふみ
Unity歴6年ほど。クライアント側が多い。
リズムゲームが好きで、同人で2本ほど作った。
主なタイトル
・将棋ウォーズ(HEROZ株式会社)
・どうぶつしょうぎウォーズ(HEROZ株式会社)
・ポケモンコマスター(HEROZ株式会社)
・キャラバンストーリーズ(株式会社Aiming)
・ありすのステージ(同人)
株式会社Aiming / ソフトウェアエンジニア
ゲームの魅力について
@geekdrums著 ゲームデザインの魔導書「ワンダールクス」より
http://gdgrimoire.tumblr.com/ワンダールクス
アイドル系のリズムゲームについて当てはめてみる
面白さ モチベーション
ノーツの取り方を試行錯誤
ステージ演出のわくわくさ
選んだキャラがステージ上で活躍する
リズムに乗りながら曲を聞く
曲に合わせて入力をする
入力に対する音やエフェクト
コンボが続く
スコアが増える
結果が気になる
その回のプレイに対する評価
報酬がもらえる
選択したキャラが成長する イベントを走る 友人などとスコアを競う
出来なかった曲を出来るようにする
• リズムゲームは面白さの中で反応(Feedback)のレイヤーが占める割合が高い。
• 情報のレイヤーが良いと、わくわく感も得られて素敵。
情報のレイヤーを面白くする
• 固定の演出ではなく、インタラクション性がある演出に
総合的に見て少しでも入ってれば飽きずにわくわくしてくれる(といいな)
一見対応が難しそうに見えるけど…例えば
・キャラの並び順によってダンスが変わる
・要所要所で成功/失敗演出などが入る
・確率発動のスキルのカットイン的な物
・プレイの結果によって表情やエフェクトが変わる
インタラクション性のある演出
• ありステで取り入れているもの
• カメラワークが毎回変化する
• この場面ではこの角度から見せたいなどあれば別途指定
• サビ前でウィンクする目がランダム
• ステージ終了時、スコアによって表情が変わる
• タップなどの入力に合わせてカメラワークが切り替わるように思うことがある
カメラワークの実装-変更点(1/3)
• ユニティちゃんライブステージ!の実装がベース
• 主な改造点
• カメラの切り替えタイミングを外部から渡すようにした
• カメラ切り替え時に条件を満たしていたらシームレスに移動するようにした
• 30度ルールや20%ルールに該当しそうな場合など、ジャンプカットに適さない場合
• その他指定された時
• 注視点をキャラ以外にも設定出来るように
• 指定されたポイントにのみ移動
• 指定された範囲に移動しないように避ける機能
• 被写界深度エフェクトのかかり具合を調整
http://unity-chan.com/download/releaseNote.php?id=CandyRockStar
カメラワークの実装-指定してる図(2/3)
カメラワークの実装-説明付き(3/3)
BGMとの同期-口パク(1/3)
• VSQX(ボーカロイド発声データ)から口パクデータ生成
• 基本は母音+んに変換して口のブレンドシェイプデータに。
• 「ちゃ」では笑顔の口になるようにもしてる
VSQXデータの変換
BGMとの同期-フェイシャル(2/3)
• 表情アニメーション(BlendShape)はAnimationClip内で設定
• スクリプトからは確率や条件付けが必要な表情や、Clip内で指定され
ていないテクスチャ差し替えやまばたきを制御
• 競合問題は、AnimationClip内のBlendShapeのパラメータが0の時の
み、スクリプトから上書きするようにしている。口パクも同じ制御。
BGMとの同期-キャラダンス・ライト演出(3/3)
キャラダンス・ライト演出の補足説明
• 動的に変更させてないので、AnimationClipのみで実装
• カメラのジャンプカットのタイミングでアニメーションの時間を同期
• 処理落ちとかすると音とアニメーションがずれていくのを補正
• ジャンプカット以外の時に補正かけるとバレやすい
反応のレイヤーを面白くする
• タップしたときに、気持ちいいエフェクトを表示して音が鳴れば大丈夫。
• 気持ちいいエフェクト :
鳴る音に尺や見た目を合わせる 派手めにする
• 音(SE)の鳴らし方
異なった入力には、異なったSEを鳴らす。
長押しも、長押ししてるって音やエフェクトで分からせたほうが良い。
目立つSEにする。鳴ってるか鳴らないか分かりづらいのはやめたほうが良さげ。
曲に合わせて鳴るようにする(ずれてると気分が悪い)
音の鳴らし方
入力が来てすぐ鳴らせば大丈夫…と思いきや気をつけてないと色々な要因で遅れる
素材が原因な箇所
• wavの先頭に無音部分が入っていた
• 圧縮形式がmp3だった(先頭に27ms位の無音が挿入される)
• アタックが弱いSEで、遅れて聞こえる
端末依存の箇所
• タップ検知が遅い
• 鳴らそうとしてから実際に鳴るまでが遅い(レイテンシの問題)
レイテンシ
• 設定で改善することも
UnityではDSP Buffer Sizeを小さく、System Sample Rateを大きくする
ありステでは以下の設定にしている。
DSP Buffer Size:iOS/AndroidはBestLatency(256) WindowsはDefault(1024)
System Sample Rate:44100
• 他の改善方法
ネイティブプラグイン案件。ただどちらにせよAndroidは沼
詳しくは↓の記事(Androidの10ms問題)が細かく書かれてて良いかも。
https://postd.cc/the-android-audio-path-latency-explainer/
PC用にはDSP Buffer SizeのConfigを用意
ここでの設定値は32/64/128/256/512/1024の6種にしている
(2048以降は遅延がひどくまともに遊べなかったので除外)
https://docs.unity3d.com/ja/current/ScriptReference/AudioSettings.Reset.html
レイテンシ対策
譜面を早く流す
• 譜面を早く流すと、目押しゲーになってしまうが、リズムに合わせて叩いて、音がずれる
より、ずれを補正して叩いた結果リズムに合った音が鳴る方が、達成感とかあるらしい。
• iOSをBluetoothイヤホン接続でプレイすると、上の現象が分かりやすい。
タップ音鳴らさない
• 苦肉の策。そういう仕様のゲームにしてしまう手も。
何もしない
• リズムに合わせて叩かせたいときはこれしかない感じ。ありステはiOSメインなので基本
これ。(オプションで譜面位置変更できるけどね…!)
ありすのステージを例に
遅れて聞こえるとどんな感じか
遅れてるとどう聞こえる?
1~3フレーム
50msはちょっともたついて聞こえるかな。
33msくらいまでなら許せる!かも。
実際はプレイしながらなので
もう少し許せる範囲は広まる(はず)
なんでも曲に合わせて鳴らせばいいの?
遅れて鳴らしたほうが気持ち良いこともある
多分唯一の例外 同時押し
• プレイヤーは、同時押しをしたことによるフィードバックとして、音や演出が同時
に再生されることを期待している。
• しかし、フレームの境目で同時押しをした場合、1フレームずれてしまう。
• 判定がBADなど悪いときなら仕方ないかーで終わるけど、完璧なタイミングでずれ
て鳴ると違和感を感じてしまう。
同時押しの鳴らし方
• 同時押しノーツの入力が来た時、音をすぐに鳴らさず、両方の入力が確認できたら
鳴らす。
• ずっと待っていても違和感を感じるので、ありステでは2フレーム(33ms)の猶予を
設けている。
• 音量は単発の3db(√2倍)大きく。完全に同じ音が同時に鳴ったときは6db(2倍)大
きく鳴りはするけど、通常の音が2個鳴ったときの音量増加分で違和感ないので、
音割れ対策的にも。
• エフェクトや判定は即座に行っている(同時でなくても違和感なかったり、処理的
に不都合が生じたりなどで)
まとめ
• 情報のレイヤーで、リズムに合ったインタラクション性持たせると楽しくなるよ。
• 入力に対して、エフェクトやSEで即座に最大限褒めてあげよう。
• 場合によっては、ちょっと遅れて褒めてあげよう 同時押し
今回取り上げてたゲームの情報
• ありすのステージ (アイドリズムの二次創作の同人ゲーム)
• Unity 5.4.4f1にてリリース
• 音の再生はUnity標準機能を使用
• Windows/MacOS/iOS/(Android)
• 動画で流れてた曲 - Nouveau Monde(iTunesStore)
https://itunes.apple.com/jp/album/nouveau-monde-single/1274875558
http://fumi.li/arisute/

リズムゲームを面白くする音に関する演出 〜『ありすのステージ』製作時に得られた知見〜