講演者
五十嵐 蒼
横山 亜弥
序盤は講演内容の書き起こし、最後に個人的な感想を記載しています!
MV新機能追加実装事例
■リアルなライブ感を演出したい
お願い!シンデレラ(GRAND VERSION)事例
リアルなライブ感とは?
1、コール
社内有志のプロデューサーさんたちで収録
2、ダンス以外のモーション
ステージ間での移動
モーション数60種類以上追加
プロデューサーへのアピール
キャラクター同士の絡み
ダンス以外のモーション
・通常のMV
1曲を通してダンスを撮影
基本的にダンス1~5種類
ポーズや演技によって増加
ダンス以外のモーション
必要な所ごとに分割して撮影
動きに差を出すため、似た動きも演技内容を変えて複数撮影
ダンス3種類以上(+60以上)
キャラクター同士の絡み
アイドル同士でハイタッチをさせたい
しかし、既存機能では慎重さのあるアイドルたちではハイタッチができない状態
↓
IKモーションの導入へ
IKモーションとは?
身長さのあるキャラクター同士を、モーションの破綻が起こさずにきれいな接触ができる
背景オブジェクトなどの固定物に対して、どのキャラクターも同じ場所を触れることが出来る
例:ドアを開ける、本を開く、階段の昇り降り
IKモーション用のモーション作成
・最高身長と最低身長のキャラクターで設定
■アイドル全員に楽器を演奏させたい
課題
1、アイドルの体系差の対応方法
2、アイドルによる利き手の対応
3、モーションキャプチャー撮影方法
1、アイドルの体系差の対応方法
身長差分
楽器にアイドルと同じ分のスケールをかける
胸差分
胸のサイズは5パターン
胸のサイズによってきたーやベースのストラップの位置が変わる機能の実装
2、アイドルによる利き手の対応
アイドルが左利きの場合
左利き用の楽器と反転したモーションを読み込む機能を実装
反転した結果、位置のずれが起きカメラから見切れてしまう
アイドルが左利きの場合、カメラを分岐させる機能を実装
3、モーションキャプチャー撮影方法
リアルライブのバンドメンバーの方にキャプチャー撮影を依頼
指はすべてモーションデザイナーによる手付け
■各MVでの事例
・マルチカメラ
複数のカメラによるレンダリング結果を好きなマスクで切り抜く
カメラワークによる表現の幅が飛躍的に広がった
無駄な描画負荷は可能な限り減らす
1、画面に表示するテクスチャを用意する
2、各カメラは自分のマスク指定部分にだけ描き込みを行う
・Chara Motion Cverwrite
ダンスモーションの途中に、別のモーションを差し込む機能
ダンス以外の表現の幅が飛躍的に広がった
従来のモーションの再生の仕方
ダンスモーションを消して。演技等のモーションを上書き
ダンスモーションを調整しなければいけなかったので、気軽に別のモーションを差し込むことが出来ない
カメラ担当者とモーション担当者でのやり取りが増え、効率が悪い
新機能でのモーションの再生の仕方
クリップ化してあるモーションを好きなタイミングに配置が可能
カメラ担当者がモーションを好きなタイミングに配置できるようになり、不要なやり取りが減り、効率が上がった
・風機能
風が吹いているように揺れ物を揺らす機能
空気感を感じられる特殊演出が可能になった
毛束などの自然な単位ごとに周期をずらした力を加える
紙や衣装がバラバラになりすぎず自然な動きになる
・TimeLine分岐機能
指定した条件によりカメラやモーションが分岐する機能
キャラ同士やユニット限定での特別な演出ができるようになった
■アイドルをより魅力的に!衣装のアップデートについて
衣装を3Dモデル化するにあたって厳守すること
1、ポリゴン数テクスチャ容量等を仕様内に抑えること
カラーテクスチャ1枚・ライティング用テクスチャ2枚
限定化の中でいかに表現するかが腕の見せ所
2、すべてのカット、ダンスモーションに対応すること
MV中に不自然さを感じさせないこと
歩く、走る、しゃがむ、接近する動きに耐えられること
・タスキの虹と星を動かしたい
虹と星のコントロール用テクスチャを選定
「カラー」「スペキュラー」「マルチ」
この3つのテクスチャのどこかに
・虹のコントロール用
・星のコントロール用
の情報を与えなければならない
虹のコントロール用
「カラー」に情報を与えスクロールアニメーションをさせる
→タスキの色が変化
星のコントロール用
「スペキュラ」に情報を与え、スクロールアニメーションをさせる
星を3つに分けてコントロールする
スペキュラカラーマップのRGBチャンネルに星の情報を3分割
→それぞれ違う動きをさせる
専用シェーダーでの設定
スクロールの周期
揺らめきの揺れ幅
揺らめきの速さ
を調整
虹と星をそれぞれ違った動きをさせる
↓
理想的な表現が可能に
・裾を引きずらせたい
地面判定用に床へのコリジョンを追加
しゃがんだときに裾が広がるのを実現
・大きい翼を付けたい
二人を接近させたいカットで衣装が干渉してしまう
隣り合うアイドルへの干渉を防ぐコリジョンを追加
衣装が干渉することなく二人が接近できるようになった
■ドレスコーデ機能
対応衣装の色替えが可能に!デレステ衣装の追加機能
対応した衣装の各パーツのカラーをコーディネイトして、MVやフォトスタジオなどでアイドルが着用する衣装を制作することができる追加機能として実装された
カラーパレットを作成し、衣装ごとに決められた5つのパーツの色替えを可能に
1・より美しい色の表現を目指す
衣装の色を変えるにあたって各要素の色へのアプローチ
2・全員が着用可能な上下バリエーション衣装の追加
バリエーションの組み合わせ分の体系差分モデルを用意する
・カラーパレットへのこだわり
より美しい色の表現を目指して
アイドル衣装では鮮やかな色が大事
デレステの衣装テクスチャは「光沢色」と「影色」の描き込みが多い
・立体感を表現する光沢色と影
・質感を表現する光沢色と影
・物から物に落ちる影
・隣接する物の際に入る接地影
・服のシワ影
SpecularとShadowの情報を抽出して、「光沢色」と「影色」の制御ができるように
Diffuse :「ベース色」の設定
Specular :「光沢色」の設定
Shadow :「影色」の設定
ベースカラーだけでなく「光沢色」や「影色」などの要素も分けて色を調整できるようになった
鮮やかで美しい「色」表現が可能に!
・レッスンウェア衣装の追加
上下バリエーションの実装事例
バリエーション豊富な、拡張性の高い衣装に
色のコーディネイトだけでなく、上下の組み合わせが自由
全員が着用可能な上下バリエーション衣装にする
現状のバリエーション分をそのまま担保することが前提
既存の衣装の仕組みのままだと、バリエーション分そのままにモデルを作成すると膨大な量の体系差分モデルが必要になる
今後の運用を想定してみた
・バリエーションを一つ追加するたびに発しえする工数
体系差分(17種)【身長×体格×胸サイズ】×上下の組み合わせ分【衣装上×衣装下】
Tシャツを追加するだけで17×4パターン…現実的ではない
衣装の上下を切り分けて作成、ゲーム上で上下一対の衣装に合体する!
→ゲーム上でメッシュとテクスチャを結合させて一対の衣装に生成する
上下を切り分けて作成し、ゲーム上で上下一対の衣装に
こうすることで1バリエーションにつき、体系差分の17種だけを作成するだけでOKに
追加バリエーション分も体系差分モデルを作るだけになった結果、衣装追加、更新の頻度を高くできるように
■ユーザーに新たな体験を!新規アプリコンテンツ「3Dコミュ」制作事例
・最大10分以上の長尺&12人のキャラクターが登場する
・「VR VIEW」と「GYRO VIEW」の2種類がある
アイドルを身近に感じられること
1、アイドル同士の自然なやり取りを再現すること
2、アイドルが存在している!と感じられるようにすること
3、アイドルたちのいる世界を表現すること
・1、アイドル同士の自然なやり取りを再現すること
自然な動きとは?
背景や小物を使った動きやアイドル同士での複雑なやり取りができること
キャプチャー撮影前にリハーサルをして演技の導線確認を実施
演技内容、尺、背景や小物の位置の確認
事前にリハーサルを行ったおかげで
・シナリオや背景の不備に気付き自z念い修正することで、撮影時のリテイクの数が減り、アクターの負担を減らすことが出来た
・アイドルや小物の位置が正確になったことで、より自然な演技ができるようになった
・2、アイドルが存在している!と感じられるようにすること
リアルなサウンドの追求
キャラのオーディオプレイヤーとして「顔/腰/右手/左手/足」の最大5つを使用
・Foleyで、動作音・プロップス音を収録
・3DオーディオSDK「ResonanceAudio」の導入
・没入感3Dオーディオフォーマット「Ambosonics」で環境音の実装
・BGMは、存在理由に合わせて実装方法を変更
楽屋のスピーカーから流れるBGMはダイエジェティック
ゲーム内という設定の電脳空間ではノンダイエジェティック
・3、アイドルたちのいる世界を表現すること
・楽屋裏ならたくさんのアイドルにいてほしい
・楽屋には鏡がたくさんあるはず
・特殊な世界観でも表現したい
・長いコミュでも途中で表現に戻ることなく通して見たい
作りたいものを作るためには、負荷対策が必要!
■負荷対策事例の紹介
1、メモリ負荷対策について
10分以上の長尺&モデル12体
膨大なサウンドやモーションを使う
3Dコミュ2話目ではボイス330種類以上、SE470種類以上
→メモリ負荷対策が必須
・サウンドの分散ロード機能
非常駐音源をブロック単位で管理する。
タイムラインからロードの指示を出し、再生終了したクリップは自動は気を行って、常駐メモリを減らす機能
3Dコミュ2話では、SEは5ブロックに分けている
2、FPS負荷対策について
常に60FPSをキープさせたい
→3Dコミュは描画物が多くFPSが下がりやすい
VR VIEWでは描画負荷が約2倍になる
モデル12体が同時に移る
→FPS負荷対策が必須
鏡の表現
楽屋や舞台下に鏡は絶対ほしい!
→映る部分の描画負荷は約2倍
3Dコミュはプレイヤーは動かないので、鏡が映す範囲やオブジェクト種を設定可能にして、無駄な描画負荷を減らす
3、イテレーション効率化ついて
負荷対策は、負荷計測のイテレーションの効率化が大切。
一回の計測にかかる時間が、トライ&エラーできる回数を決める。
要素を削るのは最後の手段
例:MV負荷計算
jenkinsで以下を自動で行う
・apk/ipaやリソースビルド
・接続してある端末で自動実行
・結果を収集しKibanaで分析
1、メモリ負荷対策
2、FPS負荷対策
3、イテレーション効率化
→エンジニア、デザイナーで連携することで、3つすべてにアプローチする
やれないことよりもやれるkとを考えやすい環境になる
■まとめ
常にユーザーに新しい体験を届け続けるためには、同時にいくつものコンテンツを開発・運営することが重要。
そしてその中で最も大切なことは
・デレステとしてアイドルをより輝かせるために「目指すビジョン」
・それぞれのアイドルがアイドルらしくあるための「譲れないポイント」
を明確化すること
■感想
割と力業でねじ伏せているなという印象。
初期設計時にもう少し考慮されていれば、というものも多いですが何分運営が長いのでしょうがないですね。
どれもこれも聞いている分にはできそうに思いますが、蓄積されているデータ量が半端ないでしょうから。
そういった黒の部分の話も聞きたかったなって思いました。