Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,634 views

Published on

演出のBGMとの同期・レイテンシ・同時押しについての話

2018/6/13に行われた「Aiming × KLab コラボMeetup!」にて発表したときの資料です。
公開用に、一部追記など行っております。
https://aiming.connpass.com/event/85240/

Published in: Technology
  • Be the first to comment

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

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

×