VRChatアバターで片目ウインクを作る方法|まばたきのシェイプキーを左右に分ける(Unityだけ・Blenderなし)

VRChat・Unityツール

※この記事で紹介しているツール「かたっぽシェイプ」は、筆者(ほどき工房)が作ったものです(無料のテスト版)。

VRChatで片目ウインクをしたいのに、アバターには「両目を閉じる」まばたきのシェイプキーしかない…ということはありませんか。片目だけ閉じるには、まばたきのシェイプキーを「左だけ」「右だけ」に分ける必要があります。

この記事では、Blenderを使わず、Unityの中だけでシェイプキーを左右に分ける方法を紹介します。

かたっぽシェイプ:シェイプキーを左だけ・右だけに分ける

片目ウインクに必要なもの

片目ウインクには、「左目だけ閉じる」「右目だけ閉じる」の2つのシェイプキーが必要です。アバターによっては最初から入っていますが、両目をいっしょに閉じるキー(blink など)しかない場合もあります。

よくあるやり方は、Blenderでメッシュを開き、頂点を左右に分けて新しいシェイプキーを作る方法です。ただ、Blenderに慣れていないと、インポート・書き出しの設定だけでも大変です。

Unityだけで左右に分ける手順

「かたっぽシェイプ」は、Unityのエディタ拡張です。Unity 2022.3(VRChatの推奨バージョン 2022.3.22f1)で確認しています。VRChat SDKがなくても動きます。

  1. BOOTHからダウンロードした unitypackage を、アバターのプロジェクトに入れる
  2. Unityのメニューの Tools > ほどき工房 > かたっぽシェイプ を開く
  3. 「顔のメッシュ」に、シェイプキーを持っているメッシュ(多くは Body)をドラッグする
  4. 「左右に分ける」のタブで、分けたいシェイプキー(blink など)にチェックを入れて「分ける」を押す

すると、元の名前の後ろに _L と _R が付いた、左だけ・右だけのシェイプキーが追加されます(末尾の文字は変えられます)。

かたっぽシェイプの画面:メッシュを入れて、分けたいキーにチェックして、分けるを押す

左右はどっち?

Humanoidのアバターなら、左右の目・肩・腕・脚のボーンの位置から自動で決めます。L はアバター本人から見て左です。自動で決められないときは「自分で決める」で、メッシュの -X / +X のどちらが左かを選びます。

顔の中心のつなぎ目

顔の中心付近は、左右の動きを少しずつ入れ替えて、つなぎ目が段にならないようにしています。幅は「中心のなめらかさ(mm)」で変えられます(初期値 4mm、0 にするとくっきり分けます)。どの頂点でも「左+右=元のシェイプキー」になるように作っていて、分けた後に検算した結果を画面に出します。

片側のキーしかないときは「反対側にコピー」

逆に「wink_L はあるのに wink_R がない」というときは、「反対側にコピー」のタブを使います。片側だけ動くシェイプキーを顔の中心で折り返して、反対側のキーを作ります。新しい名前は、_L⇔_R、Left⇔Right、左⇔右 を自動で入れかえて提案します。

反対側にコピー:片側だけのシェイプキーから反対側を作る

左右で形が違う部分(片側だけのアクセサリーなど)は、反対側の頂点が見つからないので動かしません。見つからなかった頂点の数は画面に出ます。

元のデータは書き換えません

元のメッシュファイル(FBX)は書き換えません。Assets/HodokiShapeKeySplitter/Generated にコピーのメッシュを作って、それに差し替えます。元に戻すときは Ctrl+Z、または SkinnedMeshRenderer の Mesh を元のものに戻してください。

分けたシェイプキーは、ほかのシェイプキーと同じように、表情のアニメーションなどで使えます。

知っておいてほしいこと(テスト版)

  • VRChatの中での動作と、市販のアバター(有料)での動作は、まだ確認できていません
  • 作業の前に、プロジェクトのバックアップをとってください
  • このツールで作ったアバターは、VRChatへのアップロード・販売を含め自由に使えます(ツール自体の再配布・販売はできません)

上下・4つに分けたいときは(かたっぽシェイプ+)

有料版の「かたっぽシェイプ+」(300円・筆者の商品)では、左右に分ける・反対側にコピーに加えて、次のことができます。まず無料版で、自分のアバターに合うか試してから検討してください。

  • 上下に分ける(境目はキーごとに自動で決めます)
  • 4つに分ける(右目だけ・左の口だけ など)
  • 範囲(球)を指定して、その部分の動きだけを取り出す
  • 左右をまとめて一括で処理する
  • 作業を記録しておき、アバターを更新したあとに同じ作業で作り直す

分けたキーを足すと元と同じ形になるように作っていて、検算の結果を画面に出します。VRChat SDK や Modular Avatar がなくても動きます。市販のアバターでの動作は、まだ確認できていません。

ダウンロード

「かたっぽシェイプ」は、BOOTHで無料で配っています(テスト版)。感想や不具合、「こんな機能がほしい」は、BOOTHのメッセージで教えてください。

まとめ

  • 片目ウインクには「左だけ」「右だけ」のシェイプキーが必要
  • Unityだけで分けるなら、メッシュを入れて、キーにチェックして「分ける」を押すだけ
  • 片側しかないときは「反対側にコピー」、元のFBXは書き換えない(Ctrl+Zで戻せる)

コメント

タイトルとURLをコピーしました