2024.10.01
自社の社内情報を未来の“ゴミ”にしないための備え 「情報量が多すぎる」時代がもたらす課題とは?
リズムゲームを面白くする音に関する演出〜『ありすのステージ』製作時に得られた知見〜(全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.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには