
2025.02.18
「売上をスケールする」AIの使い道とは アルペンが挑む、kintone×生成AIの接客データ活用法
リズムゲームを面白くする音に関する演出〜『ありすのステージ』製作時に得られた知見〜(全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
関連タグ:
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
第20回エクゼクティブメンターイベント「今、「ひと」と組織が共創する〜働き方の未来へ」
2024.12.07 - 2024.12.07