VRoidでかんたん!パーフェクトシンク(1/3)VRoidモデルのFBXエクスポート
結論:
— Gogo (@3str6) 2020年7月7日
ViviとSakuradaでは形状, UVマップ, 頂点数に差があるため転送はできませんでした。
ただし以下の条件下であればモーフ転送が可能な場合があります。
・UniVRM→FBXExporter経由でBlenderにインポートする
・VRoid Studioのバージョンが同一である
・VRoidの性別が同一である
____________________________________________________________________________________
!本記事の記載内容は過去の手順となります!
現在、VRoidにパーフェクトシンク対応のBlendShapeを実装するには
くにやんさん @nikutokuni 作の 超かんたんBlendShapeコピーツールがおすすめです
VRoid用の表情データセット同梱(VRoidStudio V0.11.3対応)
Blenderを経由せず、Unityだけで簡単にVRoidモデルのパーフェクトシンク対応ができます
Unity初めてのかたでもわかりやすいように手順書を書きました
____________________________________________________________________________________
本解説で使用しているUnity・Blenderのバージョンは以下の通りです。
Unity:2019.4.0f1
Blender:v2.83.2
1.【Unity】VRMモデルをFBXにエクスポート
1-1.準備
1-2.FBXエクスポート
VRMモデルをプロジェクトに読み込み、Scene上に配置します。
Hierarchy ウィンドウでモデルを右クリックし、FBXエクスポートを行います。
BlenderはASCII形式のFBXファイルをサポートしてないため、Binaryを選ぶ必要があります。
Exportを実行すると、Destinationで指定したディレクトリにFBXファイルが作成されます。デフォルトではプロジェクトのAssetフォルダ直下です。
2.【Blender】FBXモデルのインポートとマテリアル調整
2-1.FBXインポート
[ファイル]→[インポート]→[FBX(.fbx)] でFBXモデルをインポートします。
クリックで展開
2-2.メッシュへのマテリアル再割り当て
編集モードで作業します。
Faceオブジェクトで、以下のメッシュに対してマテリアルを再度割り当てます。
1) 耳
耳のメッシュに「EyeExtra」のマテリアルが当たってしまっています。
メッシュをリンク選択して「Face_00_Skin」のマテリアルを割り当てます。
リンク選択では白目や口内もまとめて選択されてしまうため後で個別に直します(耳だけスマートに選択する方法があったら教えてください)
リンク選択
マテリアルの割り当て
耳のメッシュに顔のマテリアルが適用されます。
2) EyeExtra
後ろから見ると、><の目のメッシュに「FaceMouth」のマテリアルが当たってしまっています。
メッシュを選択して「EyeExtra」のマテリアルを割り当てます。
3) 白目
※EyeExtraのメッシュが邪魔なのでいったん非表示にしています。
メッシュを非表示にする(クリックで展開)
メッシュを選択した状態で、
[メッシュ] > [表示/隠す] > [選択物を隠す] でメッシュを非表示にできます。
[メッシュ] > [表示/隠す] > [隠したものを表示]で再表示されます。
耳のマテリアルを再設定したとき、白目のメッシュに「Face_00_Skin」のマテリアルが当たってしまうのでここで直します。
後ろから見ると、白目のメッシュに「FaceMouth」のマテリアルが当たってしまっています。
メッシュを選択して「EyeWhite」のマテリアルを割り当てます。
白目の裏にある交点を選択し、選択の拡大を2回繰り返すと白目を選択できます。
「EyeWhite」のマテリアルを割り当てます。
4) 口内
耳のマテリアルを再設定したとき、口内のメッシュに「Face_00_Skin」のマテリアルが当たってしまうのでここで直します。
白目と同様、中央の交点を選択し、選択の拡大を4回繰り返して唇の際まで選択します。「FaceMouth」マテリアルを適用します。
完了した状態
この状態で一旦Blenderファイルを保存します。
次の手順で、雛形モデルからBlendShapeをコピーします。
3.【おまけ】Blenderでマテリアル手動調整
当初は下記の通り丁寧にマテリアルを直していたのですが、よく考えたらここで見た目を綺麗にする必要はとくになかった
何かの役に立つかもしれないのでおまけとして残します。
3-1.マテリアルの透過設定
クリックで展開
マテリアルのノードが表示されます。
- 画像テクスチャ(Image Texture)
- テクスチャ座標(Texture Coordinate)
- 透過BSDF(Transparent BSDF)
- ディフューズBSDF(Diffuse BSDF)
- シェーダーミックス(Mix Shader)
- マテリアル出力(Material Output)
画像テクスチャの項目で、対応するテクスチャ画像を割り当てます(ここでは眉)。
3-2.メッシュへのマテリアル割り当て
クリックで展開
iPhoneトラッキング向けBlendShapeリスト
追記(2021/12/2)
調査の結果を反映して資料を作り直しました。GIFアニメーションつきで解説しています。
スマホだと表示が崩れます!上記記事内のリンクからGoogleDocsのファイルをご利用ください
シェイプ名 | |||||
1 |
browInnerUp
|
|
眉の内側を上げる 眉尻は動かさない 困った眉 |
眉に関連するシェイプキーは全部で4種 - browInnerUp - browDownLeft / browDownRight - browOuterUpLeft / browOuterUpRight - noseSneerLeft / noseSneerRight
目の表情に関するシェイプキーは全部で3種 - eyeBlinkLeft / eyeBlinkRight - eyeSquintLeft / eyeSquintRight - eyeWideLeft / eyeWideRight
目のシェイプ3種だけでは目元の表情を十分にカバーできない 眉のや頬のシェイプキーに目元の動きも含めることでバリエーションを豊かにすることができる
眉の複数のシェイプを同時に動かしたとき、顔のメッシュに埋まらないように注意
browInnerUpでは眉尻の位置を維持する browInnerUpとbrowOuterUpLeft/browOuterUpRightはそれぞれ100%で合成すると「自然に上がった眉(=びっくりした眉)」の形になる (browInnerUp+browOuterUp) |
|
2 |
browDownLeft
|
|
左眉全体を下げる 訝しむ眉
|
browDownでは眉全体を傾斜しつつ下降させる (browDown+browInnerUp)
上まぶたをわずかに押し下げる 上まぶたの動きは、まばたきと重なったときに目が埋もれて消えない程度にする |
|
3 |
browDownRight
|
|
|
右眉全体を下げる 訝しむ眉 |
同上 |
4 |
browOuterUpLeft
|
|
|
左眉の外側を上げる 眉頭の位置は維持
|
browOuterUpでは眉頭の位置を維持する 上まぶたの目尻側をわずかに持ち上げる
browInnerUpとbrowOuterUpLeft/browOuterUpRightはそれぞれ100%で合成すると「自然に上がった眉(=びっくりした眉)」の形になる (browInnerUp+browOuterUp)
|
5 |
browOuterUpRight
|
|
|
左眉の外側を上げる 眉頭の位置は維持 |
同上 |
6 |
eyeLookUpLeft
|
|
|
左目の瞳を上に向ける |
※ここでは参考のために眼球を動かしています。実際には眼球は動きません。 ボーン制御の眼球を持つモデルでは、シェイプキーに眼球の動きを入れてはいけません。
左の上まぶたの中央を見開く 下まぶたの中央を持ち上げる
頂点が中央よりになるほど変化量が大きくなるように、Surprised目のシェイプキーを合成
上瞼全体を一様に上げ下げするのではなく、中央部を重点的に動かすことで、眼球をみまわしたとき目元がなめらかに動く
|
7 |
eyeLookUpRight
|
※眼球の動きはボーン制御です 片目だと見た目が怖いので両目を動かしています |
|
右目の瞳を上に向ける |
※ここでは参考のために眼球を動かしています。実際には眼球は動きません。
右の上まぶたの中央を見開く 下まぶたの中央を持ち上げる
同上 |
8 |
eyeLookDownLeft
|
片目だと見た目が怖いので両目を動かしています |
|
左目の瞳を下に向ける |
※ここでは参考のために眼球を動かしています。実際には眼球は動きません。
左の上まぶたの中央を下げる 下まぶたの中央を下げる
頂点が中央よりになるほど変化量が大きくなるように、Surprised目のシェイプキーを合成
中央部を重点的に動かすことで、眼球をみまわしたとき目元がなめらかに動く |
9 |
eyeLookDownRight
|
※眼球の動きはボーン制御です 片目だと見た目が怖いので両目を動かしています |
|
右目の瞳を下に向ける |
※ここでは参考のために眼球を動かしています。実際には眼球は動きません。
右の上まぶたの中央を下げる 下まぶたの中央を下げる
同上 |
10 |
eyeLookInLeft
|
※眼球の動きはボーン制御です 片目だと見た目が怖いので両目を動かしています |
|
左目の瞳を内側に向ける |
※ここでは参考のために眼球を動かしています。実際には眼球は動きません。
左の目頭部分を見開く 目の頂点の中央から目頭側だけを動かす
頂点が目頭よりになるほど変化量が大きくなるように、Surprised目のシェイプキーを合成
変化量に傾斜をつけることで、眼球をみまわしたとき目元がなめらかに動く |
11 |
eyeLookInRight
|
※眼球の動きはボーン制御です 片目だと見た目が怖いので両目を動かしています |
右目の瞳を内側に向ける |
※ここでは参考のために眼球を動かしています。実際には眼球は動きません。
右の目頭部分を見開く 目の頂点の中央から目頭側だけを動かす
同上 |
|
12 |
eyeLookOutLeft
|
※眼球の動きはボーン制御です 片目だと見た目が怖いので両目を動かしています |
|
左目の瞳を外側に向ける |
※ここでは参考のために眼球を動かしています。実際には眼球は動きません。
左の目尻部分を見開く 目の頂点の中央から目尻側だけを動かす
頂点が目尻よりになるほど変化量が大きくなるように、Surprised目のシェイプキーを合成
変化量に傾斜をつけることで、眼球をみまわしたとき目元がなめらかに動く |
13 |
eyeLookOutRight
|
※眼球の動きはボーン制御です 片目だと見た目が怖いので両目を動かしています |
|
左目の瞳を外側に向ける |
※ここでは参考のために眼球を動かしています。実際には眼球は動きません。
右の目尻部分を見開く 目の頂点の中央から目尻側だけを動かす
同上 |
14 |
eyeBlinkLeft
|
|
|
左目を閉じる
トラッキングの際、まぶたの下降に伴う瞳の遮蔽を、iPhoneセンサーが瞳の下回転として検知する このため、まばたきと同時に瞳がバウンドするような動きになることがある
|
通常の閉じ目
ここに、まばたきではなく「Joy目閉じ」を設定しておくと、フェイストラッキングで簡単に笑い目閉じができる(通常の閉じ目はできなくなる)
トラッキングによるアニメーションでは、目が閉じかけても瞳の回転は継続するため、 モデルによってはまばたき時に瞳メッシュがはみ出す場合がある 閉じ目のシェイプに瞳のスケールを入れることで貫通対策ができる |
15 |
eyeBlinkRight
|
|
|
右目を閉じる
トラッキングの際、まぶたの下降に伴う瞳の遮蔽を、iPhoneセンサーが瞳の下回転として検知する このため、まばたきと同時に瞳がバウンドするような動きになることがある |
通常の閉じ目
同上 |
16 |
eyeSquintLeft
|
|
|
左目を笑顔にする
|
左の下まぶたを持ち上げて笑った目
ARKitのリファレンスでは瞳は閉じておらず、いわゆる『Joy目閉じ』ではないことに注意 閉じ目と合成されるため、単純にJoy目閉じを設定すると破綻する
フェイストラッキングのみで『Joy目閉じ』をつくるには ①「閉じ目」のシェイプ100%をマイナス ②「Joy目閉じ」のシェイプ100%をプラス することで可能
ただし、円弧状の「Joy目閉じ」はフィクションなので、通常の目から変形させると中間で不自然な表情になりがち フェイストラッキングではこの中間の表情が中心となるため相性がよくない。一瞬で切り替わるキー入力を採用したほうが無難
下まぶただけを押し上げると目の大きいキャラクターは顔の印象が変わってしまいがち(面長になる)
|
17 |
eyeSquintRight
|
|
|
右目を笑顔にする |
右の下まぶたを持ち上げて笑った目
同上 |
18 |
eyeWideLeft
|
|
|
左目を見開く |
左目を見開く
瞳の大きなキャラクターの場合、まぶたを開いただけでは白目の見え方が十分でない場合がある 瞳を縮小して白目が適度に見えるように調整する |
19 |
eyeWideRight
|
|
|
右目を見開く |
右目を見開く
同上 |
20 |
cheekPuff
|
|
|
頬を膨らませる |
頬を膨らませるシェイプキー 正面から見てもわかるようにふくらませるとよい 唇は少し前に出る。とがらせると可愛い 狭めすぎるとmouthPuckerと同時に動いたとき破綻するので注意
狙って発動しやすい表情 mouthPucker以外の他シェイプと混ざりにくいためキメ顔を工夫しやすい |
21 |
cheekSquintLeft
|
|
|
左頬をもちあげる
|
左頬で笑顔を作る 頬の上昇に伴った動き
アニメ風モデルでは、頬全体を動かすより「口角」「下まぶた」などパーツを動かした表現のほうが破綻が少ない
横に伸ばすと笑ったときの口がのびのび広がる このとき口角付近は伸ばさないほうが口の印象を維持できる |
22 |
cheekSquintRight
|
|
|
右頬をもちあげる |
右頬で笑顔を作る 頬の上昇に伴った動き
同上 |
23 |
noseSneerLeft
|
|
|
左の鼻と眉をしかめる
眉を顔の中心にぎゅっと寄せる表情 |
鼻をしかめる動きに付随した動きとして左眉をしかめる 眉頭を下げて寄せる 眉全体の位置は維持
browDownと合成されるので下げすぎに注意 (browDown+noseSneer) |
24 |
noseSneerRight
|
|
|
右の鼻と眉をしかめる
眉を顔の中心にぎゅっと寄せる表情 |
鼻をしかめる動きに付随した動きとして右眉をしかめる
同上 |
25 |
jawOpen
|
|
|
口を開く |
キャラクターの顔の印象を左右するシェイプキー
大きく口を開いた状態を設定する この開きが小さいと口パクがあまり動かない
mouthCloseと対になり、双方100%のときに「顎を開けたまま口を閉じる」形になる。顎のみが動くことで咀嚼する動作となる (jawOpen+mouthClose)
基本的に、歯を動かすのは顎にかかわるシェイプキーのみ ・jawOpen ・jawForward ・jawLeft ・jawRight
・jawOpenとmouthUpperUp/mouthLowerDownを合わせたシェイプが、縦方向の口の開きの最大値 ・jawOpenとmouthDimple、mouthStretchなどをそれぞれ合わせたシェイプが、横方向の口の開きの最大値 |
26 |
jawForward
|
|
|
顎を前に動かす
|
下顎全体が前に動く 顎と舌・下顎の歯を同時に動かす |
27 |
jawLeft
|
|
|
顎を左に動かす
|
下顎全体が左に動く 顎と舌・下顎の歯を同時に動かす
通常あまり動くことがなく、意識的にコントロールしやすい動きのため、特定の表情を意図的に発動させることも可能 |
28 |
jawRight
|
|
|
顎を右に動かす
|
下顎全体が右に動く 顎と舌・下顎の歯を同時に動かす
同上 |
29 |
mouthFunnel
|
|
|
ウの口 唇をとがらせてわずかに開き、閉じた歯を見せる |
唇をつきだしてじょうごのように広げる形 サシスセソの歯を見せる表情を構成する
歯は一切動かさない ★キャラクター表現として、歯を極力見せたくない場合はこのシェイプキーに歯を隠す動きを追加
口角を狭めて鋭角にすると口元に力が入っている雰囲気が出る 唇をめくりあげて突き出す
舌先を少し持ち上げる(人がこの口の形をつくるとき舌先が縮まるため)
歯が埋まらないよう口内のメッシュを調整する |
30 |
mouthPucker
|
|
|
唇の横幅を狭める |
唇の横幅を狭める 狭めた分、くちびるがふっくらして前に出る mouthFunnelとの合成でキスの口になる (mouthFunnel+mouthPucker)
jawOpenと合成したとき、口を細めた形状が縦に細長くなりすぎないよう注意
唇と同時に舌を狭める(口角の貫通対策)
|
31 |
mouthLeft
|
|
|
口角ではなく、口全体を左に寄せる |
口全体を左上に寄せる 歯は一切動かさない
舌のみを口に追従して回転させることで自然に舌を動かすことができる (tongueOut+mouthLeft) |
32 |
mouthRight
|
|
|
口角ではなく、口全体を右に寄せる |
口全体を右上に寄せる 歯は一切動かさない 舌のみを口に追従して回転させることで自然に舌を動かすことができる
|
33 |
mouthRollUpper
|
|
|
上唇を噛む
|
特にトゥーン調のモデルではテクスチャが埋まると口自体が消えてしまう 上唇のエッジが見えている状態を維持しつつ唇を噛む形状をつくる
mouthRollLowerとセットで動作し、口元のもぐもぐした表情をつくる 実際に動くときはjawOpenが少し混ざるため、作成したシェイプよりは浅い動きになる (mouthRollUpper+mouthRollLower) |
34 |
mouthRollLower
|
|
|
下唇を噛む |
同上 |
35 |
mouthShrugUpper
|
|
|
上唇をぎゅっと持ち上げる |
上唇を持ち上げるシェイプ mouthShrugLowerとセットで動作し、口元をしかめて閉じた「への字の口」を作る
さらにmouthPressと同時に動くと口元をぎゅっと引き結ぶ表情になる (mouthShrug+mouthPress)
口角を引き下げる動きは、上唇・下唇に均等に分けると口角がガタつくため、上唇・下唇のどちらかにまとめて入れること |
36 |
mouthShrugLower
|
|
|
下唇をぎゅっと持ち上げる |
下唇を持ち上げるシェイプ mouthShrugUpperとセットで動作し、口元をしかめてへの字を作る |
37 |
mouthClose
|
|
|
顎を開いたまま口を閉じる トラッキング上でこのシェイプが単体で動作することはない
口を閉じたまま顎を開閉することで、咀嚼する顎の動きになる (jawOpen+mouthClose) |
破綻したシェイプに見えますがモデルの異常ではありません
顎を開いたまま口を閉じる動作 jawOpenと対になり、双方100%のときに「顎は全開だが、口はぴったり閉じている」形になる
jawOpenの顔から、口の周りを選択して徐々に選択範囲を狭めながら口だけ閉じさせ、「顎が全開で口がぴったり閉じている」形に整える この状態からさらにjawOpenをマイナスすることでmouthCloseのシェイプを作成できる
女性モデルは顎が伸びるとあまり可愛くないので、サンプルモデルFemaleでは顎の開きを控えめにしています
舌を出したとき下唇を貫通しないよう、舌先を上向きに移動
|
38 |
mouthSmileLeft
|
|
|
左の口角を上げる
|
左の口角を引き上げた笑顔の表情 笑ったときの口の形を構成する(口角を鋭角・鈍角にするなど) jawOpenと合成したとき自然な笑顔の口になること (jawOpen+mouthSmile)
中央から単純に左右に分割すると不自然な動きになる 左右のシェイプを足して100%になるように変化量をグラデーションさせる
舌をやや下げる(人が強く舌を出すときは口角が上がるため) (tongueOut+mouthSmile)
口角が上がることにより口全体が上にずれ、キャラクターとしての顔の印象が変わってしまうことがある 適宜口全体を下げ、位置を維持するようにバランスをとる
歯は一切動かさない ★キャラクター表現として、歯を極力見せたくない場合はこのシェイプキーに歯を隠す動きを追加 |
39 |
mouthSmileRight
|
|
|
右の口角を上げる |
右の口角を引き上げた笑顔の表情
歯は一切動かさない ★キャラクター表現として、歯を極力見せたくない場合はこのシェイプキーに歯を隠す動きを追加
同上
|
40 |
mouthFrownLeft
|
|
|
左の口角を下げる 主に口を閉じた状態で動作する
|
左の口角を引き下げた不快の表情 jawOpenと合成したとき自然な口の形状になること (jawOpen+mouthFrown) |
41 |
mouthFrownRight
|
|
|
右の口角を下げる 主に口を閉じた状態で動作する
|
右の口角を引き下げた不快の表情
同上 |
42 |
mouthDimpleLeft
|
|
|
左の口角を後ろに引っ張る 開いた口をさらに大きく横に開く |
左の口角を横に広げる
mouthSmileなどと合成した際に口角の形状を変えないためには、口角付近ではなく「唇の中央部分」を伸ばす (jawOpen+mouthDimple) |
43 |
mouthDimpleRight
|
|
|
右の口角を後ろに引っ張る 開いた口をさらに大きく横に開く |
右の口角を横に広げる
同上 |
44 |
mouthUpperUpLeft
|
|
|
左の上唇を持ち上げ、歯をむき出す
顎を動かさずにmouthFunnel(ウの口)の状態で歯をむき出し、口を横に広げたときに最も歯がよく見える (mouthFunnel+mouthUpperUp +mouthLowerDown +mouthDimple) |
左の上唇を持ち上げる 歯は一切動かさない
下唇と比べて、人の上唇は口角部分がより大きく上がる 上唇全体が落花生のような形になる
中央から単純に左右に分割すると不自然な動きになる 左右のシェイプを足して100%になるように変化量をグラデーションさせる
jawOpenとmouthUpperUp/mouthLowerDownを合わせたシェイプが、縦方向の口の開きの最大値
|
45 |
mouthUpperUpRight
|
|
|
右の上唇を持ち上げ、歯をむき出す |
右の上唇を持ち上げる
同上 |
46 |
mouthLowerDownLeft
|
|
|
左の下唇を引き下げ、歯をむき出す
|
左の下唇を引き下げる 歯は一切動かさない
上唇と比べて、人の下唇は中央部分がより大きく下がる
中央から単純に左右に分割すると不自然な動きになる 左右のシェイプを足して100%になるように変化量をグラデーションさせる
jawOpenとmouthUpperUp/mouthLowerDownを合わせたシェイプが、縦方向の口の開きの最大値 |
47 |
mouthLowerDownRight
|
|
|
右の下唇を引き下げ、歯をむき出す |
右の下唇を引き下げる
同上 |
48 |
mouthPressLeft
|
|
|
口を閉じた状態で、左の口角をぎゅっと持ち上げる
アヒル口をつくると認識されやすい |
左の口角を押し上げてつぶす 口をぎゅっとした時のみに動作するため、意識的にコントロールしやすい 猫口やアヒル口などのニュアンスを追加することができる (mouthShrug+mouthPress 猫口バージョン)
猫口は、左右対称でないと歪な口元になる あらかじめ用意した猫口シェイプを左右のmouthPressに均等に追加することで左右対称にできる |
49 |
mouthPressRight
|
|
|
口を閉じた状態で、右の口角をぎゅっと持ち上げる
アヒル口をつくると認識されやすい |
左の口角を押し上げてつぶす
同上 |
50 |
mouthStretchLeft
|
|
|
左口角を下に引き下げる mouthFrownに比べ、口が開いているときにより大きく動く
|
左口角を引き下げて口をさらに開く
口を大きく開けたとき、口角が上がってしまうのに対して口角を下げてバランスをとるような動き
閉じた状態で口角を下げて作ると綺麗な動きになりにくい
jawOpen100%のシェイプから理想的な形になるよう口角を引き下げ、そこからjawOpenを‐100%することで適切な動きになる (jawOpen+mouthStretch) |
51 |
mouthStretchRight
|
|
|
右口角を下に引き下げる mouthFrownに比べ、口が開いているときにより大きく動く |
右口角を引き下げて口をさらに開く
同上 |
52 |
tongueOut
|
|
|
舌を出す |
舌を唇からまっすぐに突き出す
口を開いたときに下方向に曲げる変形はjawOpenで行う jawOpenと合成して舌が曲がったとき、アーチが下唇を越えられるように出幅を調整 |
以下はリサーチ経過の資料として残しています。
間違ってるところも多いのでそのうち整理します。
--------------------------------------------------------------
モデリングソフトで52個の新規シェイプキーを追加します
一部のBlendShapeは、モデル標準のBlendShapeから形状をコピーして作ることができます(Blenderの場合 頂点メニュー「任意のシェイプキーを選択部に合成」)
おすすめ便利ツール
Appleが定義したBlendShape文字列で空シェイプキーを52個一括作成できるアドオン
一部のアプリ・ツールは、この文字列が異なると動作しません。入力ミスを防ぐためにも便利なツールです
github.com
Blenderアドオンを使うと、Blender上で顔をリアルタイムに動かしながらBlendShapeを作成することができます
iFacialMocap
- 追記(2021/12/2)
- iPhoneトラッキング向けBlendShapeリスト
- 眉関連
- 視線関連
- 目
- 頬
- 鼻
- 顎
- 唇
- mouthFunnel
- mouthPucker
- mouthLeft
- mouthRight
- mouthRollUpper
- mouthRollLower
- mouthShrugUpper
- mouthShrugLower
- mouthClose
- mouthSmileLeft
- mouthSmileRight
- mouthFrownLeft
- mouthFrownRight
- mouthDimpleLeft
- mouthDimpleRight
- mouthUpperUpLeft
- mouthUpperUpRight
- mouthLowerDownLeft
- mouthLowerDownRight
- mouthPressLeft
- mouthPressRight
- mouthStretchLeft
- mouthStretchRight
- 舌
- パーフェクトシンク対応モデルにするには?
iPhoneトラッキング向けBlendShapeリスト
項目名からAppleDeveloperCenterの各項目にリンクしています
リンク先に各シェイプの参考図があり、具体的な形状を確認できます
眉関連
browInnerUp
browDownLeft
browDownRight
視線関連
eyeLookUpLeft
eyeLookUpRight
eyeLookDownLeft
eyeLookDownRight
eyeLookInLeft
eyeLookInRight
eyeLookOutLeft
eyeLookOutRight
目
eyeBlinkLeft
eyeBlinkRight
eyeSquintLeft
eyeSquintRight
eyeWideLeft
eyeWideRight
頬
cheekPuff
歯や舌を動かしてしまわないよう注意
cheekSquintLeft
cheekSquintRight
鼻
noseSneerLeft
noseSneerRight
顎
jawOpen
jawForward
下顎・下の歯・舌を前に出す 上の歯は動きません
jawLeft
下顎・下の歯・舌を左に動かす 上の歯は動きません
舌だけ単独でさらに左に動かすと、じっさいに舌をうごかしたとき、自然にモデルの舌が動きます (人間は舌を横に動かすとき顎が動くため)
jawRight
下顎・下の歯・舌を右に動かす 上の歯は動きません
舌だけ単独でさらに右に動かすと、じっさいに舌をうごかしたとき、自然にモデルの舌が動きます(人間は舌を横に動かすとき顎が動くため)
唇
mouthFunnel
mouthPucker
mouthLeft
左の口角を左上に持ち上げるように動かす
舌だけ単独でさらにXZ座標上で左に回転させると、じっさいに舌をうごかしたとき、自然にモデルの舌が動きます (人間は舌を横に突き出すとき口が動くため)
mouthRight
mouthRollUpper
mouthRollLower
mouthShrugUpper
mouthShrugLower
mouthClose
mouthSmileLeft
mouthSmileRight
mouthFrownLeft
mouthShrugLower(下唇をぎゅっと引き結ぶ形)と同時に動くことが多い
mouthFrownRight
mouthShrugLower(下唇をぎゅっと引き結ぶ形)と同時に動くことが多い
mouthDimpleLeft
mouthDimpleRight
mouthUpperUpLeft
mouthUpperUpRight
作成時は上唇全体で作成し、最後に左右に分ける
このとき、顔の中央の頂点はそのままだと合成されて2倍のウエイトがかかってしまう
Basisのシェイプキーを0.5かけてウエイトを半分に減衰させること
mouthLowerDownLeft
mouthLowerDownRight
作成時は下唇全体で作成し、最後に左右に分ける
このとき、顔の中央の頂点はそのままだと合成されて2倍のウエイトがかかってしまう
Basisのシェイプキーを0.5かけてウエイトを半分に減衰させること
mouthPressLeft
mouthPressRight
mouthStretchLeft
mouthStretchRight
舌
tongueOut
パーフェクトシンク対応モデルにするには?
Hana_Tool ClipBuilderツール
アバターを使ってZoomミーティングに参加する手順
1. 準備
①Webカメラを使ってリアルタイムにアバターを操作するソフトウェアを実行
↓
②映像をOBS(ストリーミング配信ソフト)上に表示
↓
③映像ソースとしてZoomに流し込む
OBS上に表示している映像がそのままZoomに送られます
複数のソースを組み合わせることで、さらに背景や字幕を重ねることも可能です
2. アバターの表示
概要
アバター表示ソフト
アバターのモデルデータ( VRM形式)
アバター表示ソフトの使用例
3. Zoom導入
Zoomアカウントの作成
Zoomのインストール
仮想カメラ対応パッチのインストール
4. OBS導入
OBSのインストール
5. Zoom上にアバター映像を表示
【BlendShapeBuilder】Unity単体でVRMモデルにほっぺモーフを追加する
準備
Blend Shape Builder
+ボタンをクリックするとFrameを追加します
これによりFaceメッシュのコピーがScene上に追加されます
VetrexTweaker
今回は、横に広げる+前に出す の2ストローク動かしています
ただし、Faceオブジェクトのインスペクタに追加されたcheekPuffモーフは
スライダーを動かしてもScene上のモデルの表情に反映されません
FaceID
公開されており
UnityとPhotoshopでふつうに作るAR写真
概要
趣味でカメラを始めたら、使いみちのない写真が毎日増える
キャラクター3Dモデルの背景に使うことで有効活用したい
作例に基づいて作成手順を書きました
ふつうにUnityで画像作って ふつうにフォトショで合成してるだけです
【当エントリは おきゅたんbot アドベントカレンダー2019 の6日目の記事です】
VRすきまガールズ! / おきゅたんbot Advent Calendar 2019
https://adventar.org/calendars/3941
https://hub.vroid.com/characters/8571450162826387711/models/7130334606365861657
鹿さんはオノッチさんからお借りしました!
作業の流れ
今回の画像の作業時間は(モデルを用意したりの環境構築を除くと)Unityでのポージングに30分、撮影と微調整を繰り返しながら画像を出力するのに1時間(たのしいので…)、Photoshopでの合成と後工程に1時間 という感じです 慣れるともっと速いよ
Unityでグリーンバック画像を作成
■PC用
・まじかる☆ですくとっぷ (テスト版)v0.15 #MagicalDesktop #VRoid #VRoidHub - BOOTH
・VRMお人形遊びPC版 - 120byte - BOOTH
■スマホアプリ
・VPocket
Google Play:http://play.google.com/store/apps/details?id=com.BooApps.VPocket
App Store:http://itunes.apple.com/jp/app/vpocket-vrm-viewer/id1426245522?mt=8
・Vismuth Model Uploader - Vismuth Model Uploader
・BNUT - Vスタンプ (App Store, Google Play)
キャラクターを配置する
おきゅたんVRMはVRoidではないため、VRoid用のお洋服をVRoid Studio上で着せることができない
おきゅたんに体型を近づけたVRoidモデルをVRoid Studioで新たに作ります
(まじかる☆ですくとっぷでターゲットモデルを表示させながら調整するとらくちん)
※髪は作らない、ベースヘアー非表示、頭を小さめにする
好きな服を着せてVRM出力
Unityに読み込み、おきゅたんモデルと重ねて配置
VRoidモデルはfaceを非表示に
おきゅたんモデルは首から下を非表示に(テクスチャが頭部と共通の箇所については、テクスチャの該当部分をPhotoshop等で透明化)
同じモーションを再生することで、おきゅたんがVRoid服を着た状態にできる
さくまさんのチェック柄ボアコート
Saku*saku チェック柄ボアコート | 蒼空の下の市場 https://t.co/sxjnCRuVVN #booth_pm #VRoid
— さくまさん/クラウドファウンディング「こうしす!EE」 (@sakuman45) 2019年11月30日
ユウヘイさんのタクティカルブーツ
NEW RELEASE!
— ユウヘイ|YUHEI (@yuhei_info) 2019年11月15日
TACTICAL BOOTS | YUHEI
🛍️ https://t.co/Z9IoJVxVJm
ショート丈(バッシュ)/ミドル丈/ロング丈
黒/白/グレー/カーキ/ベージュの5色+各色ソール2色
全30パターンです!!!#VRoid #VRoid用テクスチャ pic.twitter.com/1H4nu4FStJ
アクセサリーを追加する
オブジェクトをモデルの子に配置する
マフラーはneckの子にしています
潮だまりさんのマフラー マフラー - 潮だまり - BOOTH
手に物を持たせる
くろすけさんの紙袋 てさげぶくろ - くろすけの物置 - BOOTH
canvasに写真を貼る
写真がカメラに追従するため、カメラアングルを自由に動かして背景との位置を合わせながらポージングが行える
(撮影のときは非表示にすること)
接地感を意識すると最終成果物のクオリティが上がる
演技をつける
今回はVeryAnimationを使用
既存のモーションから改変すると作りやすいかも
無料のモーションがいっぱい入ったアセット(モデルもかっこいいよ)
Taichi Character Pack - Asset Store
ポーズだけでも写真は撮れるけど、動かしながら撮るととてもたのしい
全身のバランスのとりかたについては篠房六郎せんせいの一連のツイートを指針にしています といいつつもむずかしい~~
11月24日のコミティアでこーいう本を出します。内容は一部抜粋、首の稼働について① pic.twitter.com/AV5qU8ippT
— 篠房六郎 (@sino6) 2019年11月17日
プロシージャルな演技
手付けアニメーションにスクリプト制御を追加すると簡単にいきいきと動いてくれる
また、ランダム性が生まれるため差分を無限に生成できてお得です
・視線追従(VRMのオプション)
HeadにモデルのHeadを設定
空(から)のオブジェクトをシーンに追加してTargetに設定
LateUpdateにしないと動かない
・ランダムまばたき [Unity]BlendShapeBlink - ブレンドシェイプでまばたき
・微細眼球運動 Unityで微細眼球運動っぽい何か · GitHub
・呼吸 スクリプトで呼吸させる - 第2回 | Unity3D - MEBIUSTOSのブログ
メッシュ頂点を微調整
Blend Shape Builder & Vertex Tweaker
https://github.com/unity3d-jp/BlendShapeBuilder
Unity上でメッシュ頂点を直接編集できる
髪をマフラーの中におさめたり、マフラーの形を整えたりしました
撮影
自分はたまたま持っているAVPro Movie Captureを使ってキャプチャ出力してますが
Unity提供のUnity Recorderで同じことができるようだ
連番ファイルを30枚くらいずつ出力しては眺めてかわいいショットを選ぶ
貫通や破綻を見つけたらモーション修正に戻る
これ!という絵が撮れたら写真と合成します
Lightroomで現実の写真を読み込む
最終的な仕上がりをイメージしてざっくり色調整
加工は合成後に行うのでここではあまり細かくさわらない
「他のツールで編集」でPhotoshopに送る(こうすることによりLightroom上でバージョン管理される)
Photoshopでグリーンバック画像と写真を合成
グリーンバックを透過
開いた画像にキャラクターのグリーンバック画像を重ねる
グリーンバック画像のグリーンを[選択範囲]>[色域指定]で削除
これがキャラクターのレイヤーになります
オクルージョン
写真に写っている現実のオブジェクトでキャラクターの一部が隠れると実在感が上がる
背景レイヤーから、キャラクターより前面にくる部分を選択してコピー・ペーストで新規レイヤーを作成
([編集]>[特殊ペースト]>[同じ位置にペースト]でペーストすると位置がずれない)
このレイヤーと背景レイヤーでキャラクターのレイヤーを挟む
背景を加工した場合は加工後の画像に差し替えるのを忘れずに
(加工で境界が不明瞭になるときれいに選択できない あらかじめオクルージョン用のレイヤーを作成しておき、加工後の背景をコピーしてクリップするのがよさそう)
ポスタリゼーション
背景写真から情報量を減らしアウトラインをつけてキャラクター画像となじみやすくする
また、画面の中で情報量を保ちたい部分と減らしたい部分をコントロールする
今回は中央のクリスマス飾りは残したい、映り込んだ人の姿はぼかしたい
中央エリアを矩形で範囲選択、選択範囲を反転
[選択範囲]>[選択範囲を変更]>[境界をぼかす] でぼかしたい領域の境界をぼかす
[フィルター]>[ぼかし]>[ぼかし(ガウス)] で情報量を減らす
[フィルター]<[フィルターギャラリー] でエッジのポスタリゼーション実行
ガウスぼかしされた周辺部分は粗く、中央部分はディテールが残った状態でポスタリゼーションされる
※フィルターギャラリーがグレーアウトしている場合
画像ファイルが16bitだとフィルターギャラリーが無効
[イメージ]>[モード]>[8bit/チャンネル]8bitに変換する
キャラクターの色調整
[フィルター]>[Camera Rawフィルター]
背景の色温度に合わせる
色が薄くコントラストが低い場合は[かすみの除去]でくっきりさせる
彩度を調整して背景に合わせる
キャラクターに影をつける
キャラクターのレイヤーを複製し、元のレイヤーの上に置く
複製したレイヤーのキャラクター部分を背景色で塗りつぶし、レイヤーの透明度を下げる
レイヤーをずらすと影っぽくなる 適宜回転させたりして調整
クリッピングマスクをかけると本体からはみだした部分が非表示になる
拡大するとわかるけどほぼずらしただけです 省エネ
背景にキャラクターの影をつける
足元に影を落とすと実在感が上がる
背景にクイックマスクモードの選択ブラシで影領域を作成
マスク解除し、選択部分を反転 調整レイヤーでこの部分を暗くする
今回は[レイヤー]>[新規調整レイヤー]>[トーンカーブ] でカーブを下振れさせています
バランス調整
キャラクターにも適宜ガウスぼかし+ポスタリゼーションを行って背景とのバランスをとる
今回は鹿さんの色が背景に埋もれてしまったので、重なった部分の背景を調整レイヤーで明るくして浮き上がらせてみました
終わったらPhotoshop上で保存
Lightroomで最終調整
Photoshop上で保存された画像がLightroom上に表示される
仕上げです
白く目立ちすぎるところは補正ブラシで露光を下げる
右上のビルの光、白い看板やスタッフさんの服を暗くする
周辺光量補正でまわりを暗くして主題を目立たせる
Lightroomには多彩なフィルターとプリセットがあるのでいろいろ試してあそぼう
Lightroomから最終画像を出力して完成です
スマホのフィルターアプリで追加加工するのもたのしいよ
kirakira+
https://apps.apple.com/jp/app/kirakira/id955687901
Adobe Caractor Animator(下書き中)
サイクルレイヤー:アニメーションを追加(髪の揺れ、手を振る、など)
フェーダー:フェードイン、フェードアウト
サイクルの一時停止:アニメーションを停止
スワップセット:パーツの置換