はじめに
・本記事で使用するUnityのバージョンは 2022.3.6f1 です
・UnityHubとVCCがインストールされている前提で話を進めます
・前回の記事に引き続いての内容なので、必要に応じてそちらもご覧ください
前置き
前回、VRCQuestToolsを用いて、PC用アバターをQuest対応させる方法について解説しました
しかしながら前回の方法だけでは、Quest版に対応するシェーダーが透過テクスチャをサポートしていないことから、アバターによっては表情に一部問題が発生するものとなっていました
そこで今回は、表情改変ツールであるFaceEmoを利用し、表情のうち透過テクスチャを含むシェイプキーを無効化することで対応してみようと思います
作業開始
では前置きもほどほどに、早速取り掛かっていきましょう
1. FaceEmmoをインストールする
予めUnityのプロジェクトを開いておき、BoothからFaceEmoをダウンロードします
ツール本体は無料です
ダウンロードしたzipファイルを解凍すると、こんな感じの中身が入っているので、拡張子が".unitypackage"のものをダブルクリックします
そうするとUnityの画面にこんな表示が出てくるので、Importをクリックします
これでFaceEmoのインストールは完了です
2. アバターを用意する
今回はアバターとして、CRIM SODA氏の「レモネ -Lemone-」を使わせて頂きます
ここではVRCQuestToolsでQuest対応を行ったものとして話を進めます
※Quest対応についてはこちらも併せてご覧ください
3. PC用アバターの表情を編集する
FaceEmoの導入に成功していれば、画面左のHierarchyビューに「Emo」というボタンが追加されています
まずはPCアバターの表情を編集し、アバターに適用しましょう(ここでは上側)
未編集のアバターの「Emo」ボタンをクリックした場合、デフォルトの表情設定が自動的に読み込まれます
使い方については公式マニュアルで詳しく解説されていますので、ここでは割愛させて頂きます
4. 透過シェイプキー削除の下準備
ここまで来たらさっさとQuest用アバターの表情も編集したくなるんですが、その前に一つやることがあります
それが、「PC用とQuest用で表情ファイル(.anim)を分けること」です
「なぜ分けるのか」と思う方もいらっしゃるかもしれません、解説しましょう
やることとしてはこんな感じなんですが、このままだと③のタイミングで不都合が生じます
というのも、素の状態だとPCとQuestで参照するファイルが同じなんです
その結果、Quest用に編集した表情が、PC用に編集した表情を上書きしてしまう、という事態が発生します
このままだとセルフ透過禁止縛りになってしまいますので、参照する表情ファイルを分けてやる必要があるわけです
ご理解いただけましたら、早速作業に取り掛かりましょう
①表情ファイルの場所を探す
まずはアバターの表情ファイル(.anim)の場所を探します
今回の場合は
Assets
├─Lemone
├─Anim
├─Clothes
├─Exmenu
└─Face <<ココ!
├─Anger.anim
├─Aozame.anim
├─Be.anim
├─Be_2.anim
(以下略)
に表情ファイルがありました
②フォルダーを作る
したらば表情ファイルのあるディレクトリに"PC"と"Quest"というフォルダーを作ります
画面下のファイルがある部分を右クリックし、Create->Folderという順に進んでください
③表情ファイルを移動する
ファイルを作り終えたら
5. 透過シェイプキーを消す
ここからはQuest用アバターの表情をいじって、透過テクスチャを含むシェイプキーを消していきます
①編集が必要な表情を確認する
まずはQuest用アバターの「Emo」ボタンをクリックし、どの表情が透過テクスチャを含んでいるのか確認します
「どの表情も大丈夫!」という場合であればそのままアップロードで構わないのですが、PC用アバターにはほぼ確実に透過を含む表情が実装されています
②表情のシェイプキーを置き換える
編集が必要な表情が分かったら、次に表情ファイルをQuest用のものに置き換えます
先ほども触れましたが、今の状態だと、透過を消すための表情編集がPC用アバターにも反映されてしまうからです
画面下側でQuestフォルダーを開き、対応する名前のファイルを表情プレビューの下の欄にドラッグします
この際、**ファイル名の末尾に"_quest" **と付けておきましょう
例)
・Anger⇒Anger_quest
・Heart⇒Heart_quest
同じものをコピーしているためドラッグしても見た目は変わりませんが、ファイル名を確認して置き換わっているか確認しましょう
④表情を編集する
ここではAngerの表情を例にとります
もとの表情はこんな感じで、頬染めと怒りマークが透過テクスチャを使っていることが分かります
ここから右のウィンドウで"other_cheek_1(頬染め)"と"other_mark_angry(怒りマーク)"を消すと...?
こんな感じに、少し物足りない感じはしますが、透過テクスチャの部分が消えました
あとはこれを表情の数だけやっていって、最後にアバターに適用すれば作業は完了です!
PC版、Quest版それぞれでのアップロードを忘れないようにしましょう
まとめ
今回は、FaceEmoを使って、透過テクスチャを含む表情シェイプキーを削除する方法について解説しました(厳密には「削除」だと間違っている気もしますが...)
かなり強引とも言える方法ですが、私は現状これで問題なく使えています
PC版からはPC版用の表情が、Quest版からはQuest版用の表情が見えるので、この作業によって元のアバターの表情が損なわれることはありません
今回は少し逸脱した使い方をしましたが、FaceEmoは単なる表情改変ツールとしても優秀です
UIが分かりやすく、撫でたときに表情を変えられたりと機能も豊富なので、結構おすすめです
では今回も長くなりましたが、良きVRChatライフを!
余談(割と重要)
割と面倒な今回の作業ですが、二回目以降の表情改変時は、PC、Questそれぞれの表情を普通にFaceEmoで編集するだけで済みます
透過を含まない表情は、参照ファイルが同じなのでどちらか片方で編集すれば同期しますが、透過を含む表情は個別に編集する必要があるのでそこだけ注意です!
また、FaceEmoはアバターオブジェクト1個につき、"FaceEmo"というオブジェクトを生成するのですが、アバターオブジェクトを一度削除した際はこれを使うことで、表情を引き継ぐことができます
①引き継ぎたい表情の入った"FaceEmo"オブジェクトを選択
②画面右の「対象アバター」の欄に、引き継ぎ先のアバターをドラッグ
③「FaceEmo起動」を押して、出て来たメニューから表情を適用
以上の手順を踏むことで、アバターオブジェクトを消した際の、表情の再設定を回避することができます
使用したツール等
FaceEmo
レモネ -Lemone-
前回の記事