見出し画像

【VRMをもっと素敵に改造しよう#02】

『#02:VRoidで舌を出したりするためにHANAToolを導入しよう』
※この記事は2022年3月に作成しました

~序~

VRoidStudioで作成されたキャラクターアバターを使用した画像や動画や配信等で、舌を出したりほっぺたを膨らませたりとVRoidStudio内ではできない表現をしていたり、アバターを使用した配信アプリ等でパーフェクトシンク対応という文言があったりします
パーフェクトシンクが何かまでは説明すると長くなるのでとりあえず表情の機能拡張されたアバターと認識しておいて下さい
舌を出したりパーフェクトシンク対応を自力で行おうとすると途方もない労力が必要になるわけですが、VRoidStudioのベータ版がリリースされた2018年8月より様々な方が使い方のテクニックや便利な外部ツールを公開していただいています
今回の記事はコレさえあればという逸品の『HANATool』を導入して最低限やっておくこと纏めてみました
前回記事の『#01:VRMをいじるためのベースになるUnityプロジェクトを作ろう』で作成したVRMを改造するためのUnityプロジェクトをベースに機能拡張していきます

~HANAToolのインポート~

『HANATool』はBOOTHというマーケットサイトでnikuさんがくに屋にて配布してくれています

Unityにインポートして使用するアセットで有料になります
コレを購入しているという前提で進めさせていただきます

ダウンロードしたzipファイルを解凍します
中に拡張子が『.UnityPackage』のファイルが2つあります
末尾に『VRM』が付いた方のファイルをUnityにインポートします

ドラッグアンドドロ ップしたらインポートする内容の確認のポップアップウィンドウが出てきます
『Import』ボタンを押せばインポートがはじまります

インポートが終わったら上部のメニューバーに『HANA_Tool』という項目が追加されています

これでUnityプロジェクトに『HANATool』をインポートができました
シェイプキーのコピーやデリート等編集できたりといろんな機能がありますが、使うのは『Reader』と『ClipBuilder』の2つだけで大丈夫です

~ざっくりBlendShapeって何?~

ざっくりと言えばキャラクターアバターならば表情を変化させるパラメーターです
目をつむったり瞬きしたり口を動かすリップシンクというデータもブレンドシェイプという機能でやっています
扱うソフトやアプリ、エディタ等でブレンドシェイプと呼称したりシェイプキーと呼称したりいろいろあります
MMDを触ったことがある方なら『モーフ』と呼称される機能です
Live2Dを触ったことがある方ならキャラクターを動かしている『パラメーター』を3Dで行っている感じです
顔の表情意外にも体型の変化や胸の大きさを変えたりブーツやヒールの高い靴のために足の形状を変化させたりもできます
アイデア次第でいろいろなことができます

~HANAToolのReaderを使う~

さっそくHANAToolを使っていきましょう
上部メニューバーの『HANA_Tool』から『Reader』を選択します

①『HANA_Tool_Reader』のウィンドウが開きます
②『Hierarchy』からキャラクターアバターオブジェクトの『Face』を『HANA_Tool_Reader』ウィンドウの『SkinnedMeshReader』の右の『None』の所にドラッグアンドドロップして下さい

①女性アバターなら『PerfectSink_VRoid_v1_0_0_Female』を選択します
男性アバターなら『PerfectSink_VRoid_v1_0_0_Male』を選択します
②選択できれば『ReadBlendShapes』をクリックして下さい

『ReadBlendShapes』をクリックすればすぐに変換完了のポップアップウィンドウがでて終了します
『OK』をクリックしてウィンドウを閉じましょう

『HANA_Tool_Reader』はこれで完了なので『×』をクリックしてウィンドウを閉じましょう

前述の『HANA_Tool_Reader』の作業で何が行われて何が変わったのかいまいちわからないと思います
何が行われたのかをざっくり説明
『Hierarchy』のキャラクターアバターオブジェクトの『Face』を選択
『Inspector』の『BlendShape』を展開させます
『BlendShape』にはたくさんの表情パラメーターが入っています
『Fcl_All_xxx』は表情全体を動かすパラメーター
『Fcl_BRW_xxx』は眉毛の表情だけを動かすパラメーター
『Fcl_EYE_xxx』は目の表情だけを動かすパラメーター
『Fcl_MTH_xxx』は口の表情だけを動かすパラメーター
『Fcl_HA_xxx』は歯の表情だけを動かすパラメーター
『HANA_Tool_Reader』使用前は以上の構成になっています

『HANA_Tool_Reader』使用後は上記以外のブレンドシェイプがたくさん追加されます

追加されれる中に舌を出す表情やほっぺたを膨らませる表情等のブレンドシェイプがあります

~HANAToolのClipBuilderを使う~

続いてもう一つのツールを使っていきましょう
上部メニューバーの『HANA_Tool』から『ClipBuilder』を選択します

①『HANA_Tool_ClipBuilder』のウィンドウが開きます
②『Hierarchy』からキャラクターアバターオブジェクトのアバター本体を『HANA_Tool_ClipBuilder』ウィンドウの『アバター本体』の右の『None』の所にドラッグアンドドロップして下さい

『ClipBuild』のボタンをクリックして下さい

『ClipBuild』をクリックすればすぐに変換完了のポップアップウィンドウがでて終了します
『OK』をクリックしてウィンドウを閉じましょう

『HANA_Tool_ClipBuilder』はこれで完了なので『×』をクリックしてウィンドウを閉じましょう

前述の『HANA_Tool_ClipBuilder』の作業で何が行われて何が変わったのかいまいちわからないと思います
何が行われたのかをざっくり説明
ブレンドシェイプは表情を動かすパラメーターだけの状態になります
『HANA_Tool_Reader』でブレンドシェイプのパラメーターを追加されましたが制御する部分がまだありません
パラメータをアニメーションさせて制御する部分を追加するのが『HANA_Tool_ClipBuilder』です
キャラクターアバターVRMをインポートしたフォルダに7つのフォルダが作成されています
左から3つめのフォルダ『キャラクター名.BlendShapes』にブレンドシェイプのアニメーションを制御するデータが入っています

フォルダ内にはアニメーションを制御しているファイルがたくさん入っています
『BlendShape』という表情アニメーション全てを制御しているファイルがああるのでそれを選択して下さい
『natural』は全てのパラメーターが0で表情の待機状態
『A』『I』『U』『E』『O』はリップシンクの際に使用される口の表情
『Blink』『Blink_L』『Blink_R』は目を閉じる瞬き
『Angry』は怒りの表情
『Fun』は楽しいの表情
『Joy』は喜びの表情
『sorrow』は悲しいの表情
『Surprised』は驚きの表情
『LookUp』『LookDown』『LookLeft』『LookRight』は眼球の向き
『HANA_Tool_ClipBuilder』使用前は以上の構成になっています

『HANA_Tool_ClipBuilder』使用後は上記以外のブレンドシェイプ制御ファイルがたくさん追加されます

『HANA_Tool_ClipBuilder』を使用することで『HANA_Tool_Reader』で追加されたブレンドシェイプをエクスポートするVRMに組み込まれました

~舌を出せるようにしてみよう~

HANAToolで表情は追加されてエクスポートするVRM組み込まれたのでさっそく舌を出せるVRMにしてみましょう
現状で舌を出す制御は組み込まれているのですがそれを活かせるパーフェクトシンクに対応しているアプリやソフトはまだ限られています
今回はとりあえず既存の表情の一つを編集して舌を出した表情にすることにします
『キャラクター名.BlendShapes』フォルダ内にある『BlendShape』を選択し『Inspector』表示される『Joy』を選択します

『』

①『Current clip』の右側の『BlendShape.Joy』をクリックして目的の『BlendShape.Joy』ファイルを『Project』に表示させます
②『BlendShape.Joy』を選択します

『Inspector』に『Face』の項目があるので展開します

『Fcl_All_Joy』の値を0にします

『Inspector』を下にスクロールして
『Fcl_AEYE_Fun』の値を50ぐらいにします
『Fcl_MTH_Joy』の値を50ぐらいにします

『Inspector』を下にスクロールして
『tongueOut』の値を100にします

これで舌を出した表情ができあがりました
右下に設定したパラメータの表情のプレビューがありパラメーターの数値変更でどう表示されるかが確認できます
VRoidStudioでも表情の編集は可能ですがVRMにエクスポートした後でもUnityでも上記と同じ様なの手順で『Angry』や『Fun』等他の表情の編集も可能です

~編集したVRMのエクスポート~

上部のメニューバー『VRMo』から『Export to VRM 0x』を選択します 

VRMのメタデータが表示されるウィンドウが開きます
何も表示されていない場合は左側『Hierarchy』から対象のキャラクターアバターオブジェクトをウィンドウの上部ExportRoot直下の『None』にドラッグアンドドロップして下さい

アバターの名称や人格権等のメタデータはVRoidStudioからエクスポートの時にも設定しますがUnityからエクスポートの時にも設定や変更が可能です
VRMの設定にエラーがない状態で必要な項目を満たしていればウィンドウ右下の『Export』のボタンが使用可能になります
エクスポートの前に『Version』の項目を必ず何か入力しないとエラーになります
自分が管理できるバージョンを何かしら入力しておきこれからエクスポートするVRMアバターはこれまでのVRMと区別するために、UnityとHANAToolを使って作業したので『uh』と付けるなどして下さい

『Export』ボタンを押すとエクスポートするVRMの保存先を何処にするのかのエクスプローラーが開きます
バージョンと同様に区別するためにファイル名にも末尾に『uh』を付けて区別します
ファイル名が入力できれば『保存』をクリックしてキャラクターアバターをVRMにエクスポートしましょう

エクスポートされたキャラクターアバターVRMを確認しましょう
確認にVワールドというPCソフトを使います

VワールドはVRMをゲーム的に動かせて表情等の機能を一通り確認できてモーションも多数あり表示の具合もいじれたりできるのでエクスポートしたVRMの確認には便利です
今回は舌を出す表情を『Joy』喜びに設定したのでさっそく確認してみましょう
キーボードの『→』キーを押すと表情が変わります

舌を出せるキャラクターアバターVRMをつくることができました

~了~

これでVRMの表情機能拡張のできるUnityプロジェクトはできあがりました
現状のプロジェクトでもVRMの編集でいろいろ出来ることがあったり、HANAToolのその他の機能もいろいろあるのですが記事が膨大になりすぎたりとっちらかるので必要最低限をまとめました
今後も少しずつ段階をおいてですが解説していきたいと思います
段階をおいてですが次回はちょっと手数がたくさん必要になります


この記事が気に入ったらサポートをしてみませんか?