見出し画像

【3Dスキャン&WRAP】VRM1.0用のブレンドシェイプを作成する

人間の表情のブレンドシェイプ規格として最も標準的なVRM形式を3Dスキャンデータからラッピング(WRAP)作業により正確に再現することができます。

Vroidなどのデフォルメキャラクターの印象が強いVRMですが、
3Dスキャンからリアル系キャラクターを作成することも可能です。

VRM形式は現在さまざまなアプリで利用でき、表情を多数追加することで魅力的なリアルキャラクターが作成可能です。

【VRM対応アプリ】
・Unity
・VRchat
・cluster
Webcam Motion Capture
・その他のVRM対応サービスはこちらから検索可能です
https://vrm.dev/showcase/

・その他ブレンドシェイプを読み込めるすべての3Dアプリ
※UE5,MAYA,Blenderなど



VRM1.0 表情システム「expression」

VRM1.0から表情システムは「expression」と名称が変更になりました。

出典 : https://vrm.dev/en/univrm1/vrm1_tutorial/expression/
実装するアプリ・システムによって多少変化しますがVRM1.0では18種の表情が規定されています

まずは利用予定のシステムがVRMのどの表情に対応しているかを確認し、
必要最低限の表情を先に割り出します。

Apple ARkitなどのフェイシャルキャプチャを利用する場合は52表情のVRMパーフェクトシンク規格もあります。

必要な表情をラッピング(WRAP)処理してブレンドシェイプを作成します

【Other】無表情:Neutral

基本となる表情です。他の表情は無表情を基準に「加算」されていきます

【Emotion】5種

喜び:Happy
怒り:Angry
悲しみ:Sad
楽:Relaxed
驚き:Surprised

キャラクターの個性を作る感情の部分です。控えめにしたり、過度な表情にしてみたりで印象がかなり変わってきます。

【LipSync】5種

あ:Aa
い:Ih
う:Ou
え:Ee
お:Oh

会話シーンの口の動きになります。キャラクターの個性によってぼそぼそ話す or ハキハキしているのかで演出が変わってきます。

【Blink】3種

瞬き:Blink
瞬き左:Blink Left
瞬き右:Blink Right


自然な瞬きでOKです。
※Wrap処理で左右の瞬きを作成することも可能です

【LookAt】4種

目線上:Look Up
目線下:Look Down
目線左:Look Left
目線右:Look Right

目線がモーフで制御されているタイプのモデルで使用します。
また目線に応じた眼球の動きをまぶたの起伏形状として再現可能です。
眼球は真球ではなく、正面にある角膜が少し膨らんだ「洋ナシ型」や乱視の方はややラグビーボールのような形状になっています。そのため目線を動かした際にまぶたに特徴的な起伏が生じます。

スキャン時には自然な目線でOKですが顔の向きは極力変えずに眼球だけを動かして撮影します。
※目線を眼球の回転+ルックアットで制御する場合は不要になるかもしれません。事前に実装担当者とご相談ください。


VRM1.0エクスプレッションリスト 18種

【Emotion】5
喜び:Happy
怒り:Angry
悲しみ:Sad
楽:Relaxed
驚き:Surprised

【LipSync】5
あ:Aa
い:Ih
う:Ou
え:Ee
お:Oh

【Blink】3
瞬き:Blink
瞬き左:Blink Left
瞬き右:Blink Right

【LookAt】4
目線上:Look Up
目線下:Look Down
目線左:Look Left
目線右:Look Right

【Other】1
無表情:Neutral


ブレンドシェイプモデルの仕様決定

気軽に変更できない仕様が多数あります。ラッピング作業の表情数が多い場合、仕様変更によるやり直しの工数が非常に増えます。よって事前に細かいお打ち合わせ・実機検証などが必要です。
鎖骨部分まで含める場合は体との境目をどこに設定するかも重要になります。(衣装にもよりますが、胸部付近のめり込み回避のため)
男性の場合は喉仏もリアルに動かすのかの判断も必要になります。

【あとから変更はできません!!】

・頭部パーツの範囲の決定
・ポリゴン数

※サブディビジョンサーフェスを前提としているので1/4,4倍には変更できます
・トポロジー(ポリゴンの流れ)の決定
・UVレイアウトの決定

【あとから変更できます】

・テクスチャ解像度(2k/4k/8k) 
※作業は8Kで作成します

・その他必要なMAPの選定(Normal,Specularなど)

UVMAPが同一の同一トポロジのブレンドシェイプ
納品後に内製でさらにブラッシュアップもおすすめです

コストとのバランス

VRM18種の3Dスキャン+ラッピング(WRAP)作業がご予算にマッチしない場合は表情数を減らすなどの判断が必要になります。表情のスロットには似た他の表情のブレンドシェイプを入れてしまってもシステム的には問題ありません。(表情のバリエーションは減ります)

・スキャン表情数の決定
・ブレンドシェイプ作成数の決定
・どのブレンドシェイプを作らないか
・難しい表情のみラッピングのみirisで担当
・他の表情は内製でモデリングして表情数を増やす

表情の合成

複数の表情を合成するなどの「いいとこ取り」も可能です。
表情と表情の中間表情をブレンドシェイプとして作成など、細かい演出にも対応可能です。

デフォルメキャラクターと違い、リアルキャラクターの表情追加を従来の頂点移動モデリングなどで行うと本人の見た目とかけ離れていきます。
リアルを求める場合は被写体の表情のみから再構成する必要があります。
※ショット スカルプト的手法で手動で調整することも可能です

マスク指定による部分的なラッピング指定
目閉じ(両目)から目閉じ(片方)など生成可能です。
MASKを指定して滑らかに他の表情とMIXも可能です


表情の変化の確認作業

人間は静止できず、3Dスキャンの度に位置や姿勢が異なります。首や頭部の傾き、回転などはラッピング時除去します。
ブレンドシェイプアニメーションをテストしながら意図しない部分が動いてしまわないかをチェックします。

こちらの作業と並行で実装担当の方とも動作テストを行います。実際のアプリケーションにブレンドシェイプをインポートして動作確認が重要になります。

表情を組み込みながら破綻が無いかチェック
Blender上のblendshape
MAYA上のblendshape


#モーフターゲット #ブレンドシェイプ #WRAP3D #FACEFORM
#FACS3DSCAN #FACS #WRAP3D #フェイシャル3Dスキャン #3dスキャン #全身3dスキャン #3dスキャンサービス #レスパスビジョン


いいなと思ったら応援しよう!