【CEDEC 2018】『うたの☆プリンスさまっ♪ Shining Live』が「CRIWARE」でリアルなライブ感を演出…KLabがサウンド・演出テクニックを披露
コンピュータエンターテインメント協会(CESA)は、パシフィコ横浜にて、8月22日~24日の期間、国内最大のゲーム開発者向けカンファレンス「コンピュータ・エンターテインメント・デベロッパーズ・カンファレンス 2018」(CEDEC 2018)を開催した。
本稿では、8月24日に行われたセッション「『うたの☆プリンスさまっ♪ Shining Live』(以下、『シャニライ』)~コンテンツの強みを生かしたサウンド・演出テクニック~」の模様をレポートとしてお届けする。
本講演には、KLab株式会社KLabGames事業本部 エンジニアの古田祥源氏、クリエイティブ部 サウンドディレクターの市川恵津子氏、クリエイティブ部 CGクリエイターの伊東勇輔氏らが登壇。アイドルたちのボイスやストーリー中での演出、ガチャの訴求アニメーションバナーとそれらに付随する各セクションとの連携、容量問題をCRIWAREを用いて解決した事例を語ってくれた。
まず、冒頭で『シャニライ』のゲーム概要を動画を交えて紹介。本作は、アニメや、CD、書籍などさまざまなメディア展開がされている女性向け人気コンテンツ『うたの☆プリンスさまっ♪』をもとにした音楽ゲーム。昨年8月よりサービスを開始し、今では累計400万ダウンロード突破の実績を打ち立てている。
次にゲームを作るにあたってコンテンツの魅力はどこか特に考えている点を3つ挙げた。1つ目はアドベンチャーパート。原作であるPSP版の『うた☆プリ』を踏襲し、アイドルたちの物語を描いているとのこと。2つ目はリズムアクションゲーム。『うた☆プリ』には、100曲を超える楽曲が存在し、これらを遊べるリズムアクションパートも用意。最後にホーム画面のコミュニケーションにおけるシステムに注力していったそうだ。
ここからは、上記3点の要素をCRIWAREを用いて、効率的かつ魅力的に制作したノウハウを披露。その前にスマートフォン向けゲームの作る上で考慮すべきことをいくつか挙げ、なかでも端末種類ごとに対策するのは難点であると解説した。どうしても制作する上で避けては通れない道ではあるのだが、これらはCRIWAREの導入によって解決できてしまうという。
音楽ゲームにおいて、音の遅延は降ってくるノーツのタイミングが変わってきてしまうため、ユーザーが特に気にする点である。遅延を解決するために、一般的にはユーザーがどれぐらい遅れて音を聞いているのか自身で設定する必要があるが、この工程を自動で行ってくれる機能が『シャニライ』には実装されている。これはADX2の音声再生遅延推測機能を利用すると遅延時間をその場で計測してくれると説明した。
ADX2の話題が出たところで、どういったものなのか取り上げた。アプリで音声を再生するためには、.acbファイルと.awbファイルの2種類が必要となる。そして、この2つを読み込み、CueSheetという1つのデータを生成していくこととなる。
ここで重要となってくるのが、CueSheetのグループ単位でファイルが管理されていること、波形データとメタデータに分かれていることだと述べた。この形の長所として、ライブ画面で使っている音楽を楽曲選択画面やストーリーで流したいといったときに流用できることだと例を踏まえて取り上げた。
続いてライブパートの演出について。『うた☆プリ』はアイドルの成長を描いた楽曲が多くを占めているため、そこをどうにかして表現したかったことを語った。そのほかにも、実際にライブ会場にいるような臨場感を追求したそうだ。
ライブ画面では、スポットライト、レーザーライト、カラーライト、舞台演出、モニター、カットイン、サイリウムの演出がある。スポットライトなどのエフェクト類は社内ツールのEffectManを使ってタイムラインシートを作成しているとのこと。舞台演出などはユーザーの選択した内容が適応されている。
ライトの制御をするためには、1つの動きに対して1つのコマンドを上書きしていくため、1曲あたりで100個のコマンドを使うこととなる。これをスムーズに行えるよう、ソーティングできる機能をEffectManには実装しているという。
サウンド演出のテーマに移ると、まず語られたのが楽曲画面の再生方法についてだ。先ほども取り上げたように、楽曲選択画面では同じ波形データを参照しているのだが、再生のさせ方で違う点を5つ紹介した。
この楽曲選択画面で楽曲のループ設定をAtomCraftで行った際に、初めに試したのが1つのキューの中に複数の再生開始ポイントを含める方法だった。しかし、これではループ時にフェードインアウトが付けられないため断念。
次に考えたのが1つのCueSheet内にCueを2つ作成する方法。これは1番目より手順が増えてしまうが、望み通りフェードインアウトが付けられるものとなっていた。これでうまくいくかと試してはみたが、失敗に終わってしまった。
実は、楽曲の前後4秒に演出が入るので無音を入れてほしいとの要望を開発から受けていたという。そのため、前後4秒にAtomCraft上で無音を追加すれば解決できるかと考えていたが、これが失敗に繋がる要因となってしまった。演出発生のタイムラインはオーディオの実時間から計測しているため、AtomCraft上で無音を追加すると演出開始ポイントがずれてしまうとの指摘を受けたのだ。
AtomCraft上で前後4秒に無音を追加することはできないため、波形編集ソフトで実時間4秒を前後に足そうと試みる。しかし、これは1曲につき8秒ずつ増えるため、アプリに負荷が掛かってしまう。そこでCRIに相談した結果、ソフトを使用して無音を追加するのではなく、マテリアル自体の時間を追加できる機能を実装してもらったとのこと。これにより、楽曲数×8秒のサウンドデータ分の容量を削減できたことで、よりスリムになった。
『シャニライ』のストーリーでは、進行具合によって歓声を変化させているという。キャラクターの呼びかけや登場では盛り上がり、トークをし始めたときには歓声を控えめにするようにスクリプトで設定しているそうだ。音に強弱をつけ、それを滑らかに表現する上でAISACが効果的であると触れた。
AtomCraft上では、1種類のライブ開演前の観客の声と3種類の盛り上がりの歓声の音素材を混ぜて、その配合率を変えながら曲線的に盛り上がりの設定を作り、実装しているそうだ。また、ここにローパスフィルターと距離設定を変化させる値を作ることで、歓声を距離の離れた場所や壁を隔てた場所で聞く状況にも設定可能となった。これによって、会場のどの地点で、どれだけ盛り上がっているのかが表現できるようになったという。
さらに、リバーブの有無やセンド量を調整したいときはかなりの工数を要するため、ボイスすべてに設定している、カテゴリAISACを調整することでリバーブ、センド量の有無を選べるようになっている。これを設定することによって、ライブ会場が外なのか中なのか、反響の度合いでどういった場所で行っているのかが即座に理解できた。
最後にLive2DのLipsyncについて語られた。『シャニライ』のサイドストーリーにおけるボイスデータだけで5000種類、衣装に紐付くボイスが1000種類で手作業でイチイチ付けていたら時間が足りなくなる。そこで、再生中のボイスを利用してLive2Dにリアルタイムで反映させる手法を取ることにしたとのこと。
ここで問題となるのが、どんなデータを取得してアニメーションに落とし込むかだ。考えられる対策として音量の大きさを口の大きさにすること、防音によって口が動かなくなるといったことはないので、開発初期はこの方法を用いていたようだ。
これにも問題点があり、閉じていてほしい文字でも口を開け続けてしまうという欠点を挙げていた。いろいろ調べていくとADX2にOutput Analyzerという機能が利用できるのではないかと考えたそう。このなかにはRMS Level MeterとSpectrum Analyzerがあり、その2つを試してみると、前者は平均値なのでキャラクターがハキハキとしゃべってくれなかったが、一方で後者は周波数単位で取得ができるため、試してきたなかでも求めていたものとなったと語った。
まとめとして、既存のファンがなにを求めているのかを考えていくのが重要であると述べ、『シャニライ』においてはエンジニアもデザイナーも求められているものを常に意識しながら取り組んでいたようだ。また、凝ったサウンドや演出でも制作側から提案しやすい環境を作れたのは、CRIWAREという高機能なミドルウェアが開発者の手元にあったからだとまとめて、本セッションは終了となった。
(取材・文 ライター:聖☆あべさん)
■『うたの☆プリンスさまっ♪ Shining Live』
©早乙女学園 ©KLabGames
会社情報
- 会社名
- KLab株式会社
- 設立
- 2000年8月
- 代表者
- 代表取締役社長CEO 森田 英克/代表取締役副会長 五十嵐 洋介
- 決算期
- 12月
- 直近業績
- 売上高107億1700万円、営業損益11億2700万円の赤字、経常損益7億6100万円の赤字、最終損益17億2800万円の赤字(2023年12月期)
- 上場区分
- 東証プライム
- 証券コード
- 3656
会社情報
- 会社名
- 株式会社ブロッコリー
- 設立
- 1994年3月
- 代表者
- 代表取締役社長 鈴木 恵喜
- 決算期
- 2月
- 直近業績
- 売上高65億6300万円、営業利益2億8300万円、経常利益3億1200万円、最終利益1億6800万円(2022年2月期)
- 上場区分
- 東証スタンダード
- 証券コード
- 2706