2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リズムゲームを面白くする音に関する演出〜『ありすのステージ』製作時に得られた知見〜(全1記事)
提供:株式会社Aiming
リンクをコピー
記事をブックマーク
清水史人氏(以下、清水):それでは始めていきます。
(会場拍手)
株式会社Aimingの清水史人と申します。Twitterとかでは「@fumilin/ふみ」って名前で活動しています。個人制作で今まで2つほどリズムゲームを作っています。
作っているリズムゲームの1本は、二次創作でありますが、いわゆるオーソドックスなアイドル系のリズムゲームになります。このゲームを作ったなかで「こうしたらおもしろくなった」と自分で感じた点や実装について紹介できればと思います。
その前にリズムゲームのおもしろさとはなにかを知る必要があります。@geekdrumsさんの『ワンダールクス』の4つのレイヤーの例がわかりやすそうです。
これをリズムゲームについて当てはめてみると、このような感じになっています。
おもしろさってけっこう主観的なんですが、どちらを選択するかなどの駆け引きとして表現することが多いみたいです。リズムゲームでは駆け引きはあまりなく、どのキャラを強化するかなど、そういうことしかないのかなと思います。そもそも曲に対して叩くという行為がおもしろいので、そこを伸ばしていくのがよいのかなと思っています。
あとは背景の演出というのも入れてみると大きいもので、実際作っていて、ここが入るとすごくおもしろいなと感じました。
背景の情報のレイヤーをおもしろくすることなんですが、個人的には固定の演出ではなくインタラクション性のある演出だとおもしろいのかなと思います。すごく難しいところなんですが、例えばキャラの並び順を変えたらダンスが変ったり、要所要所で成功とか失敗の演出が入ったり、確率発動のスキルのカットイン的なものが出たり、プレイ結果によって表情やエフェクトなどが変わるといったところがおもしろさの1つかなと思います。
「ありすのステージ」で取り入れているものとしては、他のゲームではあまりありませんがカメラワークを毎回変化させています。ただし、「この画面ではこのカットで見せたい」ということもあるので、それらは別途指定するようにしています。
あとはサビ前でウインクする目がランダムだったり、ステージ終了時にスコアによって表情が変ったり。あとはカメラワーク切り替えのタイミングをタップなどの入力。タップの入力に合わせることによりタップしたらカメラワークが変わったと思わせるようなことも狙っていたりします。
カメラワークが毎回変わる例の紹介動画です。
ここではどの角度でもよくて、特定のカットは見せたいので同じようなカメラワークになるようにしています。ここはまたどこでもいいので状況に応じて変ったりするようにしていて。最後のキメのところは指を上げたところに視点が向くように制御しています。
では、実際どうやって制御したかといいますと、『ユニティちゃんライブステージ!』の実装がベースになっています。『ユニティちゃんライブステージ!』は、あらかじめステージ上に20個ぐらいの点が置いてあって、自分と近くないところをランダムに選んで、そこに2秒間隔で飛ぶ、みたいな実装になっています。
そこから改造した点としては、切り替えタイミングを2秒ではなくて、「このタイミングで飛んでください」と外から指定できるようにしたり(登壇者注:後ほどユニティちゃんライブステージの実装を確認した所、切り替えタイミングは3.42秒に1回(2小節に1回)、切り替えタイミングとカメラポジションの指定はアニメーション経由で指定できるようです)。
あとは、ジャンプカットではなくてつないでカメラが動くようなことも入れています。それは、自分もあまりカメラについて詳しくないんですが、30度ルールとか20パーセントルールに該当しそうな場合、ジャンプカットに適さない場合にそのようにしています。あとは「ここだとつないでカメラを動かしたい」というときもつないで動かしています。
あとは、注視点をキャラ以外に設定できるようにしたり、あとは「この画面ではここから表示させたい」というのをつけたり、逆に「ここから表示したくない」というのをつけたりしています。あとはポストエフェクトのかかり具合を場所によって調整できるようにしています。
具体的なコードの図で、これ個人開発なのと試行錯誤していたのもあってマスターデータ化していなくてすごい見苦しい感じなんですけど、曲に合わせて小節指定をしていたりしていて、だいたい2小節に1回飛ぶようにしています。
「見せたいこの場所ではこの3ポイントのどこか」とか「この場所ではここから何メートル以内にはカメラが動かないように」。ダンスモーションで移動するときに移動先にカメラがあるとちょっとめり込んだりするので、そういったことを避けるようにしています。
カメラのほかに、BGMと同期しているものもいくつかあります。例えば口パクなんですがあるんですけど、口パクはボカロのVSQXというデータを書き出してこのタイミングでこの口だっていうのを出して。例えば「ゆ」だったら「う」、「め」だったら「え」みたいな対応表を出してその口にしています。例外もいくつかあって。例えば「ちゃ」とかはちょっと笑顔な口になるようにとかはしています。
表情も一部スクリプトから制御してあります。基本的には表情はアニメーションをつけてもらっているのでそれを表示するんですが、「ここではウインクを逆にしたい」とか「ここではスコアによって笑顔にしたい」とか、そういうことを外から触っています。
どうやっているかというと、ブレンドシェイプになにも値が入っていないときだけ有効になるようにして、アニメーション側でデータがないときにこれらが有効になるようにしてます。
これはデータの入力時に、歌詞のタイミングがあると「ここで表情を変えたいな」というのがつけやすかったので、コメントとして残してあったりします。
あとBGMとの同期とかでいうと、キャラのダンスとかライトの演出があるんですけど、アニメーターのスピードでアニメーションクリップの速度を変更すると、ちょうど1小節がタイムラインの1になって演出つけやすいのでおすすめです。
また、時間によってBGMとアニメーションの再生がズレていくことがあります。そんなときはカメラが飛ぶタイミングでアニメーションの時間を補正することによってバレずに戻せるので、そういうタイミングで補正かけるのがおすすめです。
長くなってしまいましたが、タップ音が気持ちいいというのも重要というお話をここからします。タップであればタップのエフェクト、長押しであれば長押しのエフェクトとかがあったほうがいいという話と、鳴ってることがわかるような音というのが重要です。
あと、ズレていると気分が悪いので合わせる必要があります。基本的にはタップしたらすぐ鳴らせばいいんですが、素材が原因でズレることがあったり、端末によってレイテンシの問題でズレることがあります。
レイテンシの問題については、UnityではDSP Buffer Sizeを小さくしたり、System Sample Rateを大きくしたりすると改善することがあります。
「ありすのステージ」ではiOSとかAndroidはベストレイテンシの256、Windowsはちょっとぷちぷちすることがあったのでデフォルトの1024にしてあります。System Sample Rateはデフォルトの、モバイルはデフォルトで24000なんですが、44100にしてあります。
Androidはこれでもぜんぜん解決しなくて、おそらくネイティブプラグインとか使うとちょっとましになるのかもしれないんですが、ちょっと沼で自分もよくわからないので、興味ある方は下のリンクを見ていただくと、どういう理由で遅れているとかがわかるのでおすすめです。
これはDSP Buffer Sizeを変えてみた動画です。今、64にしたときにちょっと音が崩れました。そういうことがあるという話と、遅くすると鳴り始めるまで遅いという動画になります。
対策なんですが、譜面を早く流すというのが主流みたいです。あとはタップ音を鳴らさないという実装もあると思います。「ありすのステージ」はとくになにもしていなくて、iOSメインなのでなにもしなくていいかなといった感じです。
遅れてきて聞こえる例を出します。まずなんにもしない場合なんですけど。
これクリック音つけて鳴らすとほとんどズレてなくて、±10msぐらいの間に収まっています。遅れて聞こえているとどうなるかというのを、1フレームずつ遅らせると……。
人によると思うんですけど、個人的には3フレーム遅れるとちょっときついかなっていう感じがします。ただ、実際はプレイしながらなのでもう少し許せるかなと思います。
あとは、最後に「曲に合わせて鳴らせばいいの?」って話なんですけど、実はそういうことでもなくて。例えば同時押しとかは、同時に押されたほうが気持ちいいので、遅らせたことがいいこともあります。
具体的には、「ありすのステージ」では2フレーム間だけ猶予を取って降着優先で鳴らすようにしてあります。比較の動画です。これが同時に鳴らしたときです。これが1フレームずれて鳴った場合で。
ちょっとなんか……。まぁ実際触ってみないとわからないところなんですけど(笑)。
(会場笑)
参加者:1フレームの遅れはわからない(笑)。
清水:実際、同時押しが「あれ?」って思ったら、遅らせて鳴らして同時に鳴らしたほうがいいです。
以上です。自分さっきのずっと流れていた曲の宣伝をしたかったので、ちょっと下に書きました。
(会場笑)
ありがとうございました。
(会場拍手)
株式会社Aiming
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05