クリックで実装!パーフェクトシンク BY HANA Tool
概要
1. VRMモデル出力
髪の毛メッシュのポリゴン削減、マテリアルの削減については選択しても問題ありません。
2. BlendShapeのコピー(Unity)
2-1. 準備
・Unity2019.4.31f1(64bit)
・UniVRM0.88.0
・Windows10Home
2-2. HANA Tool Reader
ツールが上手くいかない人の話を聞くとHerarchyの右矢印を押してプレハブモードでアバターを編集している人が多くいます。HANA_Toolや私が出してるツールは基本左の矢印からアバターを編集してください pic.twitter.com/URJMvDzOvk
— niku:kuniyan (@nikutokuni) 2020年11月12日
モデルの「Face」オブジェクトをReaderウインドウにセットします。
ラジオボタンでデータファイルを選択します。
モデルを出力したVRoidStudioのバージョンに従ってファイルを選択してください。
【VRoid Studio β版】
Femaleが女性用、Maleが男性用です。
【VRoid Studio 正式版】
男女で頂点データが共通になりました。どちらのデータからでもコピーができます。
顔の形状によって選んでください。
・顔が丸い、目が丸い、口が小さい⇒女性データ
・顔が縦長、目が横長、口が大きい⇒男性データ
画面下部にモードの選択項目があります。
ExchangeではなくAddを選択します。
※同梱のデータセットには追加用のBlendShapeしか入っていないため、Exchangeを選択すると標準のBlendShapeが消えてしまいます。
Faceオブジェクトを選択し、Inspectorを見ると、標準のBlendShapeの下にBlendShapeが追加されていることが確認できます。
3. BlendShapeClipのコピー(Unity)
3-1. HANA Tool ClipBuilder
HANA ToolのClipBuilder機能で対応のClipを登録します。
お手元のVRoidモデルに、初めてパーフェクトシンク対応させる際に必須となります。
Clipに登録される設定値は基本的に100となります。
HANA_ToolのメニューからClipBuilderを選択します。
ClipBuilderウインドウが開きます。
「アバター本体」にHierarchy上のモデルをドラッグ&ドロップすると「ClipBuild」ボタンが有効になります。
「ClipBuild」をクリックするとClipの設定が完了します。
各Clipの設定値は、データセットを作成した元モデル(千駄ヶ谷渋、HairSampleMaleなど)に対応した値となっています。
コピー先の個々のモデルで最適な数値に調整する必要があります。
3-2. HANA Tool CopyShapesAndClips
HANA_ToolのメニューからCopyShapesAndClipsを選択します。
CopyShapesAndClipsウインドウが開きます。
「コピー先アバター」(あたらしいモデル)
「コピー元アバター」(パーフェクトシンク調整済のモデル)
にそれぞれHierarchy上のモデルをドラッグ&ドロップすると「Copy Shapes and Clips」ボタンが有効になります。
「Copy Shapes and Clips」をクリックするとコピー処理が完了します。
4. BlendShapeClipの調整(Unity)
BlendShapeProxyの画面で表情を調整します。
Clipを選択し、BlendShapeタブの▶をクリックすると、モデルが備え持つBlendShapeの一覧が展開されます。
各BlendShapeのスライダを調整することで、Clipに対応した表情を作成できます。
Clipを選択すると表情のプレビューが表示されます(最小化されて表示されていない場合は「BlendShapes」と書かれたバーをダブルクリックしてください)。
プレビュー表示は、マウスドラッグやホイールスクロールで回転・拡大縮小することができます。
さらに、『VRMClipEditSupporter』と『iFacialmocap』を使うことで、パーフェクトシンクの表情をリアルタイムでUnity上に表示しながらClipを編集してパラメータ調整することができます。
52のBlendShapeClipの想定する形状は、AppleのARKitで規定されています。
個々の動きがGIFアニメーションでわかる一覧資料を作成しました。
各シェイプの役割、および他シェイプと組み合わせたときの動き等について解説しています。
表情調整の詳細については以下で解説しています。
-----------------------
以下はHANA_Tool旧バージョンでの内容になります 履歴として残します
▶EyeBlink(Left・Right)
追加したシェイプの「eyeBrinkLeft」「eyeBlinkRight」は雛形モデル(千駄ヶ谷渋・HairSampleモデル)のものであるため、正しく目を閉じることができない場合があります(目の大きいモデルだと閉じ切れず、目の小さいモデルだと閉じすぎる)
いったんこれを0に戻します。
上記のかわりに、ご自分のモデルのデフォルト「EYE_Close_L」「EYE_Close_R」を指定しなおしてください。
また、目を閉じかけるとハイライトが隠れてしまって目がいきいきしなくなってしまうことがあります。
この対策として、瞳とハイライトを縦につぶすシェイプキー「EyeIrisCompress」を用意しています。
これをまばたき時に追加することにより、閉じかけた状態でも瞳のディテールを維持することができます。
▶JawOpen
・口を開いたときの形状を指定します。
ツールで追加したシェイプの「jawOpen」は雛形モデル(千駄ヶ谷渋・HairSampleモデル)のものであるため、モデル自身の表情と異なっています。
元モデルのAの口を指定するのがおすすめです。
・歯が目立たないよう隠すことができます。
Teeth_Upper_Up で上の歯を上に上げます。
Teeeth_Lower_Down で下の歯を下に下げます。プレビューを確認しながらお好みで調整してください。
▶MouthPucker
口の横幅を狭め、唇を前に突き出す形状です。口の横幅が閉じないときはこれを強めます。
強めすぎると口角が破綻するので注意してください。
JawOpenとMouthPuckerを合成したとき、なるべく口がまるくなるように設定します。
(JawOpenで設定したのと同じ数値をいったん設定した状態でPuckerの調整を行い、望ましい結果になったらJawOpenのパラメータを0に戻すという作業です。0に戻すのをわすれないでね)
▶MouthClose
唇を閉じた状態で顎をひらいたとき、口が開かないようにするシェイプキーです。
「口を閉じた状態で顎を開くとき口があいてしまう」場合、MouthCloseが弱すぎる可能性が高いです。
逆に、JawOpenに対してMouthCloseが強すぎると口が埋もれます。
JawOpenと合成したとき、なるべく口がきちんと閉じるように設定します。
▶EyeSquint(Left・Right)
笑い目です。
閉じ目と同様、追加したシェイプの「eyeSquintLeft」「eyeSquintRight」は雛形モデル(千駄ヶ谷渋・HairSampleモデル)のJoy目となっています。まずはモデルのJoy目のシェイプキーに設定しなおしてください。
まばたきと重なったとき閉じすぎて破綻してしまう場合はこれを弱めます。
さらに、がんばってもうまく笑い目にできない場合、上まぶたより下まぶたを強めに変化させることで、くっきりした笑い目にすることができます。
目の表情を左右の上まぶたと下まぶたに分け、Eyelid(まぶた)シェイプキーとして用意しています。
笑い目のほか、眉の動きに付加すると更に豊かな表情を演出できます。ご活用ください。
【上まぶた】
・Eyelid_Upper_Angry :怒り目の上まぶた
・Eyelid_Upper_Close :閉じ目の上まぶた
・Eyelid_Upper_Joy :Joy目の上まぶた
・Eyelid_Upper_Sorrow :悲しみ目の上まぶた
・Eyelid_Upper_Wide :びっくり目の上まぶた
【下まぶた】
・Eyelid_Lower_Smile :fun目の下まぶた
・Eyelid_Lower_Joy :Joy目の下まぶた
・Eyelid_Lower_OutsideUp (Joy目の下まぶたを外側にだけ適用)※ツリ目のモデルでJoy目にしたとき、目尻側の下まぶたが閉じ切れず余ります これを補うためのものです
眉シリーズ
▶BrowInnerUp
両眉の中央(眉頭)を上げるシェイプキーです。
VRoidでは各モデルの眉頭がどこにあるかわからないので(テクスチャなので…)なんとなく内側を上げています。
BrowDownなど、ほかの眉と加算された表情となります。合成したときの眉の角度を確認してください。
たとえば同時に「EyeLid_Upper_Wide」を入れることで、驚いた目のニュアンスを追加できます。
▶BrowDown(Left・Right)
眉全体を下げます。BrowInnerUpなど、他の眉と合成したときの眉の角度を確認してください。
眉の位置を下げると同時に眉尻が下がります。
下がりすぎたり、上がりすぎたりしていた場合、以下のシェイプキーで、眉頭の角度を調整できます。
Brow_Angry(Left・Right)
Brow_Fun(Left・Right ※女性)
Brow_Sorrow(Left・Right ※男性)
また、たとえば同時に「EyeLid_Upper_Sorrow」をほんのわずかに入れることで、まぶたが下がるニュアンスを追加できます。入れすぎるとまばたきで破綻してしまいますが、「EyeLid_Upper_Wide」を組み合わせると多少回避できます。
▶BrowOuterUp(Left・Right)
眉尻側を上げるシェイプキーです。
VRoidでは各モデルの眉山がどこにあるかわからないので(テクスチャなので…)なんとなく外側を上げています。
また、たとえば同時に「EyeLid_Upper_Angry」+「EyeLid_Upper_Wide」を組み合わせて入れることで、目の外側が吊り上がってみひらくようなニュアンスを追加できます。
▶NoseSneer(Left・Right)
鼻にしわをよせるシェイプキーです。VRoidでは鼻は動かさず、眉をしかめる動きとしています。(動かすのにすこしコツがいりますが顔全体を鼻の頭にぎゅっと寄せるイメージです)
以下のシェイプキーで、眉を中央に寄せられます。より鮮やかに眉をしかめることができます。
Brow_Center(Left・Right)
また、たとえば同時に「EyeLid_Upper_Angry」「EyeLid_Upper_Sorrow」をほんのわずかに入れることで、にらみつけるニュアンスを追加できます。
「EyeLid_Upper_Wide」を組み合わせるとまばたきでの破綻を多少回避できます。
▶cheekPuff
ほっぺプクーのシェイプキーです。
口を閉じ、ほおを膨らませ、唇と歯のあいだにも空気をいれて顔の下半分をふくらませています。
顔が縦に短いモデルだと顔の輪郭が崩れることがあります。適宜弱めてください。
また、左右別々に利用できるように、左右の頬に分けたシェイプキーも追加しています。こちらは頬のみが膨らみます。cheekPuffに追加して使うとシルエットを調整できます。
▶EyeExtraメッシュ用BlendShape
VRoidデフォルトで含まれるEyeExtraメッシュ
これを他の用途に使えるようにコントロール用のBlendShapeを追加しています。
テクスチャを書き換えることで、表情に「頬染め」「怒りマーク」などを追加できます。
瞳の貫通をなおす・ギザ歯などをデフォルトにする
上記のBlendShapeProxyとは別に、FaceオブジェクトのInspectorにもBlendShapeの項目があります。
こちらを編集すると、シーン上のモデルの表情が変化します。
EyeIrisMoveBackで、瞳を顔の奥に移動できます。
この状態で『Pose Freeze』を有効にしてエクスポートすると、その表情がVRMの初期状態になります。
他にも、たとえばギザ歯にしたい場合は ギザ歯のシェイプキーを入れてPozeFreeze出力するとデフォルトでギザ歯のモデルとなります。
以下参照
調整が終わったらUniVRMメニューからモデルを出力して完成です。