見出し画像

【 #VRoid 】VRoidモデルのVRC用ハンドサインを差し替えよう【 #VRChat 】

ご近隣の皆様こんばんは。ご近所系VTuberおじさんのがそさんです。
今回は破綻しがちなVRoid製VRMモデルのハンドサインを差し替える手順について解説します。

【注意】

今回は解説の複雑化を避けるため左手と右手でおなじ表情を出す手順のみ解説します。

【用意するツール】

VCC、VRMConverter以外で用意するツール、アセットは以下のとおりです。

VRCAvatarEditor beta
がとーしょこらさん製作のアバター編集ツールです。今回はこのツールを使用します。

【VRC想定】VRoid向け手のAnimation 15種類+着席用Animation 2種類【CC0】
みよこさん製作のVRoid製モデル向けのハンドサインアニメーションです。
VRoidは一般的なVRC向けアバターとはボーン配置が異なり、デフォルトのハンドサインでは指が破綻してしまうため、今回はVRoidモデル向けに調整されたこちらのアニメーションに差し替えます。

手順1.ツール設定前の事前準備

Avatar Descriptor内「Playable Layers」を下図の状態にしてください。

▲VRMConverter等で自動生成されたGestureLayerとFXLayerが参照されている場合は右側の「×」で削除してください

手順2.ツールでの新規レイヤー生成

インポート済みであれば上部メニューに「VRCAvatarEditor」があるのでこれを選択し「Editor」でツールを起動します。

ツール起動後ポップアップしたウィンドウで「Create Fx Layer Controller」を選択してください。これで新しいFXレイヤーが作成されます。

▲表情編集したいアバターが参照されているか必ず確認しましょう
参照されていない場合は「Avatar」欄右の「◎」を選択し、ポップアップから対象を選択しなおしましょう

手順3.ハンドサインと表情の設定

1.表情設定メニューへの遷移

「FaceEmotion」タブを選択し表情設定メニューに移動します。

▲デフォルトだとウィンドウが小さいので縦幅を広げるのが吉

2.編集対象のハンドサイン選択

「State」のプルダウンでどのハンドサインを編集するか指定します

3.ハンドサインアニメーションの差し替え

「UmedocDC」>「Anim set」>「HandAnim_30ko」>「Non shapekey」内のハンドサインアニメーションから設定したいアニメーションを選び、ツールウィンドウ内「HandPose AnimClip」にドラッグ&ドロップで挿入します。

その後、ツールウィンドウ上部の「Layer」のプルダウンで編集対象の手を反対側に切り替えます。

▲「Left Hand」なら「Right Hand」に、「Right Hand」なら「Left Hand」に切り替えましょう

先ほど同様アニメーションを挿入します。

▲左手と右手で違うハンドサインを適用してもOKです

4.表情の編集

FaceEmotion」メニューで表情調整をします。

▲名称は異なりますがVRoidStudioの表情編集とおなじ感じで編集できます
▲左上のプレビューで表情を確認できます

5.アニメーションファイルの生成

AnimClip FileName」「AnimClip SaveFolder」でアニメーションファイルの保存先と名前を確認・編集し、問題がなければ「Criate AnimFile」でアニメーションを生成してください。なお、この作業で右手、左手の両方に表情が適用されます。右手、左手それぞれ別に「Criate AnimFile」を実施する必要はありません

これを全7種類のハンドサインに実行します。

6.デフォルト状態の表情編集

各種ハンドサインの調整が終わったら、デフォルト状態の表情を設定します。
Layerを「Reset」に変更し、他のハンドサイン同様表情設定を行った後「Create AnimFile」を選択してください。
なお、ここではデフォルトのハンドサインアニメーションを変更できません。(変更手順は後述します)

手順4.FXレイヤーとGestureレイヤーの修正

1.FXレイヤーの修正

2023/5/14現在、がとーしょこらさんのツールで生成したFXレイヤーにはアバターマスクが適用されており、これがVRC上で表情変更できない要因になる場合があります。
これを修正します。

【注意】アバターマスクの削除はFXレイヤーでのみ行います。
Gestureレイヤーのアバターマスクは削除しないでください。

まず、「アバターのファイル名」のフォルダ内に自動生成されている「Fx_HandsLayer_アバターファイル名」をダブルクリックし、Animatorタブを開きます。

Animator」タブを開いたら「Left Hand」「Right Hand」「AllParts」それぞれの項目の右側の歯車マークを選択し、出てきた小ウィンドウ「Mask」右の「」>ポップアップの「None」の順番で選択していきます。

▲ひとつずつ順番に実行しましょう
▲アバターマスクが外れたら歯車左側の「M」マークが消えます
▲この状態になったら修正完了です

2.デフォルトのハンドサイン変更

がとーしょこらさんのツールで設定できなかったデフォルト状態のハンドサインアニメーションを変更するため、今度はGestureレイヤーをダブルクリックします。
Gestureレイヤーの場所は先ほどのFXレイヤーと同じです。

Animatorタブで変更したい手を選択し「idle」を選びます。

インスペクター上「Motion」の項目に適用したいハンドサインをドラッグ&ドロップで挿入します。

もう片方の手にも同じ作業を実行すれば、手続き完了です。

3.(Indexコントローラー向け)ハンドサインアニメーションのオーバーライド

ここまでの作業ではIndexコントローラーでは手指の破綻に有効な状態ではないので、ハンドサインアニメーション優先で動作させるようにします。
*私がIndexコントローラーを持っていないので実践不可。問題があればご連絡ください。

まず、Gestureレイヤーで「idle」および各種ハンドサインに「VRC Animator Tracking Control」を追加します。

▲左手右手それぞれ、上書きしないものも含めすべてに追加してください

追加後、アニメーションを優先するハンドサインは指の部分のチェックボックスを「Animation」に、(idleでの指ワキワキなど)トラッキングを優先する場合は「Tracking」に変更します。

▲右手の場合は「Right Fingers」を、左手の場合は「Left Fingers」を調整してください


これでハンドサインの設定完了です。お疲れさまでした。

おわりに

私のnoteではこの他にもVRoidモデルをVRChatで最適化するための様々な記事を公開しています。
詳しくは下記マガジンをぜひチェックしてください!


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