
Unityカットシーンシステムの開発と、制作フローの構築
昨今、ソーシャルゲームやブラウザゲームなどでUnityを利用したリッチな3Dキャラクターアニメーションを見る機会が増えてきたので、自分もUnity内で完結するカットシーンシステムの開発及び、制作フローの構築から実制作までを一気通貫に着手してみたので、概要をざっと書いてみます。
自分はウマ娘の大ファンで、またキャラクターのクオリティも他のUnityゲームより抜きん出ているとも感じていたので、ウマ娘内のカットシーンシステムを手本に開発システム名を #ウマウマトーク と名付け二次創作という形で制作開発を行いました。
以下の動画は独自開発・作成したUnity上のカットシーンをUnityTimeLineの録画機能でレンダリングしたものであり、スタンドアロンプレイヤーでも動作します。
Unityで開発している #ウマウマトーク で作った今回の動画は、当然ながら #madewithunity なので、スタンドアロンプレイヤーでリアルタイムレンダ可能な仕様。これでゲームやアプリにも応用できる。(実用するなら最適化必須だし、エディタとビルド後のエフェクトの出方が違う等細かい課題はあるけど… pic.twitter.com/JdARwFOgx4
— ブラザーP (@Brother_PV) August 19, 2022
要件定義/開発環境/制作フロー
開発をする上で、以下の制作フローとUnity上での要件を定義しました。
制作フロー

大枠の流れとしては、モーションやモデルといったアセット外部DCCツールで制作し、Unity上のシステムに組み込み実装、補正をする形です。AfterEfectsなど映像編集ソフトを通さず完結するために、ポストプロセッシングもシステムに実装します。
要件定義
Unity内部でのシステム要件です。
・Unity内完結するキャラクターアニメションシステム(スタンドアロンプレイヤーで再生でき、映像編集ソフト等を介さない。
・インポートしたモーションをUnity内で補正出来る。
・モーションは互換性を持たせる(別モデル間で使いまわせる。
・会話ウィンドウを実装しアニメーションと連動させる。
・モーションブラーや被写界深度、カラコレ等が動的変更なPostProcessingを実装する。
・シェーダーはUnityChanToonShader、物理エンジンはVRMSpringBoneを暫定的に使用。
開発環境
UnityTimelineを軸とした開発構成です。
MikuMikuDance製のモデルやモーションをインポート出来るように
MMD4Mecanimを、VRM製モデルのインポートや物理エンジンを導入するためにVRMSDKを導入しています。また、会話ウィンドウ機能としてUnityAssetの宴を導入しています。
Unity 2020.3.31f1(ビルトインパイプライン
Timeline 1.7.1
AnimationRigging 1.2.0
PostProcessing 3.0.3
Playmaker1.9.1
VRMSDK 0.68.2
MMD4Mecanim_Beta_20201105
宴 V3.0
UnityChanToonShaderV2
システム特色機能
アニメーションの加算合成や、IKでのモーション補正機能を独自実装し
Unity上でのシーン微調整を行い易くしています。
アニメーショントラックの加算機能
Unityフォーラムのスレッドを参考に、UnityTimelineに加算アニメーションレイヤーを実装しました。これは2つ以上のアニメーショントラックを加算出来る機能で、静止ポーズとループモーションを混ぜたい時などに重宝します。
UnityTimeline上のアニメーショントラックの加算機能って必要不可欠機能だと思っているんで #ウマウマトーク で実装した。未だにUnity公式が実装しないのが率直に言って謎。 pic.twitter.com/Hb3euAgFMR
— ブラザーP (@Brother_PV) September 13, 2022
IKによるモーション補正機能
AnimatorIKをEditModeでも動作する状態で実装しているので、エディタでIKの挙動を確認しながらモーションの微調整やIKターゲットの指定など、補正が可能です。
腕IK、脚IK、LookAtをエディタモードでも挙動するよう実装しているので、インポートしたモーションの微調整や、ターゲットの指定など補正が出来る。#ウマウマトーク pic.twitter.com/OKFrXSTTzg
— ブラザーP (@Brother_PV) September 13, 2022
追加したい機能や課題
更に機能を強化して、生産性の向上や、実際にゲーム等の中に入れ込めるレベルにまで実用機能の強化を目指したいと考えています。
・VRMモデルへの対応を強化して、表情入力の簡素化を目指したい。
・シェーダの強化(影の稜線を綺麗にしたい。ウマ娘や原神に近づきたい…
・モバイルデバイスでの動作を目指した軽量化(SetPasscalls多すぎ…
制作実例記事
以下の記事では、今回開発した#ウマウマトークを用いて、Unity上でのカットシーン制作の実例を紹介しています。宜しければこちらも合わせてご覧ください。