Vive SRanipal SDK: 舌ブレンドシェイプのチュートリアル(英題:Vive SRanipal SDK: Tonque blendshape tutorial)の日本語訳

初めに

この記事は下の動画の内容を個人が簡単に翻訳を行ったものです。


Vive SRanipal SDK: Tonque blendshape tutorial

この翻訳は機械翻訳片手に翻訳を行い、それをまとめたものになります。
意訳が大いに含まれていますし、ニュアンスや表現が実際とは異なる意味になっている箇所があるかもしれません。
ご承知おきの上ご覧いただけますと幸いです。

冒頭(0:00~0:49)

f:id:karukaru808:20200914211105p:plain
このビデオは Tongue_UpLeft_Correction ブレンドシェイプの作り方を説明します。

f:id:karukaru808:20200914211321p:plain
これはブレンドシェイプの動作を説明するための例です。

理学士 Andrew Patrick Smith 著、2006年12月発表
マッスルベースの表情アニメーションに使用されているブレンドシェイプの重ね合わせについて
(原題:MUSCLE-BASED FACIAL ANIMATION USING BLENDSHAPES IN SUPERPOSITION)
4.5章 重複したブレンドシェイプの重ね合わせ
(原題:4.5 Superposition of Overlapping Blendshapes)
https://core.ac.uk/download/pdf/4271934.pdf
より引用

理論(0:50~1:59)

f:id:karukaru808:20200914214014p:plain
ベースメッシュ、ブレンドシェイプA、ブレンドシェイプBがあります。
ブレンドシェイプAとブレンドシェイプBを重ね合わせると中央が不自然に盛り上がってしまいます。
そこでブレンドシェイプAとブレンドシェイプBの交点に当たる部分を反転して、矯正用のブレンドシェイプを作成します。
ブレンドシェイプA、ブレンドシェイプB、矯正用ブレンドシェイプを重ね合わせると、理想的なメッシュになります。

f:id:karukaru808:20200914214605p:plain
理想的なメッシュ = ブレンドシェイプA + ブレンドシェイプB + 矯正用ブレンドシェイプ
矯正用ブレンドシェイプ = 理想的なメッシュ - ブレンドシェイプA - ブレンドシェイプB

矯正用ブレンドシェイプの作成(2:00~5:14)

f:id:karukaru808:20200914215251p:plain
舌のベースメッシュ、ブレンドシェイプA(Up)、ブレンドシェイプB(Left)、理想的なメッシュ(UpLeft)があります。

f:id:karukaru808:20200914215536p:plain
ブレンドシェイプA、ブレンドシェイプB、理想的なメッシュの3つを選択します。

f:id:karukaru808:20200914215713p:plain
最後にベースメッシュを選択します。

f:id:karukaru808:20200914215812p:plain
Create Brend Shapeボタンを押してブレンドシェイプを作成します。

f:id:karukaru808:20200915001051g:plain
作成したブレンドシェイプの確認をします。

f:id:karukaru808:20200915001829g:plain
ブレンドシェイプA(Up)とブレンドシェイプB(Left)のウェイトを同時に1にしたら理想的なメッシュ(UpLeft)になってほしいですが、舌先が細長くなってしまい理想的なメッシュではない、誤った状態の形状になってしまいます。

f:id:karukaru808:20200915002045p:plain
ブレンドシェイプA(Up)とブレンドシェイプB(Left)のウェイトを-1に設定して反転させます。

f:id:karukaru808:20200915002340p:plain
この時のメッシュ形状は、理想的なメッシュ - ブレンドシェイプA - ブレンドシェイプB という状態になります。

f:id:karukaru808:20200915002544p:plain
これは矯正用ブレンドシェイプになります。
(矯正用ブレンドシェイプ = 理想的なメッシュ - ブレンドシェイプA - ブレンドシェイプB であるため。)

矯正用ブレンドシェイプの動作確認(5:15~6:19)

f:id:karukaru808:20200915003015p:plain
ヒストリーを削除して、再度ブレンドシェイプを作成します。

f:id:karukaru808:20200915003353g:plain
ブレンドシェイプA(Up)とブレンドシェイプB(Left)、そして矯正用ブレンドシェイプのウェイトを同時に1にします。
すると理想的なメッシュ形状になります。
(理想的なメッシュ = ブレンドシェイプA + ブレンドシェイプB + 矯正用ブレンドシェイプ であるため。)

f:id:karukaru808:20200915004457p:plain
これでブレンドシェイプA、ブレンドシェイプB、理想的なメッシュから矯正用ブレンドシェイプが作成できました。

理論の拡張(6:20~7:45)

f:id:karukaru808:20200915004752p:plain
この理論は対象となるブレンドシェイプが任意の個数(最低2個)に拡張しても適用できます。

f:id:karukaru808:20200915004925p:plain
例として、Tongue_UpLeft_Correctionブレンドシェイプは以下のような組み合わせで作成できます。

理想的なメッシュ = Jaw_Open + Tongue_LongStep1 + Tongue_LongStep2 + Tongue_Up + Tongue_Left + Tongue_UpLeft_Correction

Tongue_UpLeft_Correction = 理想的なメッシュ - Jaw_Open - Tongue_LongStep1 - Tongue_LongStep2 - Tongue_Up - Tongue_Left

f:id:karukaru808:20200915010519g:plain
Jaw_Open、Tongue_LongStep1、Tongue_LongStep2、Tongue_Up、Tongue_Left、の5つのブレンドシェイプのウェイトを1にします。
すると舌先が細長く誤った状態になってしまいますが、矯正用ブレンドシェイプであるTongue_UpLeft_Correctionのウェイトを1にすると理想的なメッシュになります。

Tongue_Up、Tongue_Left、Tongue_UpLeft_Correction、の3つのブレンドシェイプのウェイトを変えても、誤った状態にはなりません。