この記事は VTuber Tech #1 Advent Calendar 2018 13 日目の記事です。
#自己紹介
こんにちはゆずです。
自分はUnityエンジニア・3DCGデザイナーです。
VTuberのシステム構築、キャラクターセットアップ等を行っていたりするものです。
先日のVTuberハッカソン全国大会にてクラスター賞を貰いました!
#はじめに
VTuberを作る際モーションキャプチャーといった機材を用いることはよくあるのですが……
11日目のさんたーPさんが解説してくれています。
しかし、モーションキャプチャーには精度が綺麗に出なかったり、そもそもキャラクターの体型と(中の人)が違うので貫通してしまったりなどなど、修正する要素が出てきてしまいます。
それを修正する方法としては
DCCツール(Maya・MotionBuilder等)が最初に挙げられるかもしれませんが、
やはりランニングコストが高いのでUnity上で手軽に修正する方法を少し紹介したいと思います。
今回は有名な有料アセットFinalIKを利用して簡単な修正をしていきたいと思います。
#そもそもFinalIKは何をするアセット???
VRChatやVR等でフルボディIKを使うもの…
だけではなく、もともとはUnityなのでゲームで使うもので
例えばAimIK銃を打つときに銃口がエイムの方向に向かせるなどなど。
現在のアニメーションをIKを使って上書きで修正するアセットです。
#Timelineと併用してみよう
まずはTimelineのAnimationTrackにキャラクターを配置し
モーションキャプチャー等のアニメーションクリップを流し込みます。
再生!!!!
実際にあったデータです(PerceptionNueron)
これはひどい…(ここまで来たら流石に撮り直しますがw)
今回は左腕を貫通しないように直してみましょう。
キャラクターにFinalIKのFullBodyBipedIKを入れます。
空オブジェクトを2つ生成し手の位置、肘の位置をイメージした場所に置きます。
LeftArmのターゲットにそれぞれドラッグして
PositionWeightの割合を少し上げるだけで…
と、とりあえず貫通しなくなりました…
一安心
モーションデータのすべてを修正することはないので、
このようにIKを使って修正といった細かい作業を少し加えるだけで
簡単に修正ができます。
Timelineを用いれば先程の空オブジェクトをアニメーションさせたりすることも可能になります。
#FinalIKをプレイモードじゃなくても実行する方法
FullBodyBipedIK.csのスクリプトを開き
[ExecuteInEditMode]属性を追加します!!(プレイ中ではなくても実行する属性)
※これはいろいろなアセットで使えるテクニック!!!
#もっときれいに修正するには…
有料アセットのVeryAnimationやUMotionPro
でクリップ単位で修正
もしくは完全手動修正……
また、3DCGのリギングを勉強しよう!!!(きっと楽しい…IK、コンストレイント)
#もっと簡単に修正するには…
Timelineの拡張や、IKを自分で実装しちゃおう!
#まとめ
モーションキャプチャーのデータ修正は大変!
ここぞというところ以外はしないように、モーション撮影時にしっかりチェックしよう!!