1
1

【VRChat】アバターをQuest対応させたついでに、表情もQuest対応させる

Last updated at Posted at 2024-01-25

はじめに

・本記事で使用するUnityのバージョンは 2022.3.6f1 です
・UnityHubとVCCがインストールされている前提で話を進めます
前回の記事に引き続いての内容なので、必要に応じてそちらもご覧ください

更新履歴

2024/02/27
PC用の表情がQuest用の表情に上書きされてしまうことが発覚したため修正

前置き

前回、VRCQuestToolsを用いて、PC用アバターをQuest対応させる方法について解説しました
しかしながら前回の方法だけでは、Quest版に対応するシェーダーが透過テクスチャをサポートしていないことから、アバターによっては表情に一部問題が発生するものとなっていました
そこで今回は、表情改変ツールであるFaceEmoを利用し、表情のうち透過テクスチャを含むシェイプキーを無効化することで対応してみようと思います

作業開始

では前置きもほどほどに、早速取り掛かっていきましょう

1. FaceEmmoをインストールする

予めUnityのプロジェクトを開いておき、BoothからFaceEmoをダウンロードします
ツール本体は無料です

ダウンロードしたzipファイルを解凍すると、こんな感じの中身が入っているので、拡張子が".unitypackage"のものをダブルクリックします
スクリーンショット 2024-01-25 132939.png

そうするとUnityの画面にこんな表示が出てくるので、Importをクリックしますスクリーンショット 2024-01-25 133507.png

これでFaceEmoのインストールは完了です

2. アバターを用意する

今回はアバターとして、CRIM SODA氏の「レモネ -Lemone-」を使わせて頂きます

公式ではPC版のみ対応のアバターです88d72261199f3a81fef01dd9bcdf4b98.jpg

ここではVRCQuestToolsでQuest対応を行ったものとして話を進めます
※Quest対応についてはこちらも併せてご覧ください

3. PC用アバターの表情を編集する

FaceEmoの導入に成功していれば、画面左のHierarchyビューに「Emo」というボタンが追加されています
スクリーンショット 2024-02-27 095458.png

まずはPCアバターの表情を編集し、アバターに適用しましょう(ここでは上側)
未編集のアバターの「Emo」ボタンをクリックした場合、デフォルトの表情設定が自動的に読み込まれます

使い方については公式マニュアルで詳しく解説されていますので、ここでは割愛させて頂きます

一通り編集が終わったら、右下の「アバターに適用」をクリック
スクリーンショット 2024-02-27 100026.png

続けて「適用」をクリックし
スクリーンショット 2024-02-27 100116.png

このダイアログが出ればPCアバターの編集は完了です
スクリーンショット 2024-02-27 100225.png

4. 透過シェイプキー削除の下準備

ここまで来たらさっさとQuest用アバターの表情も編集したくなるんですが、その前に一つやることがあります
それが、「PC用とQuest用で表情ファイル(.anim)を分けること」です

「なぜ分けるのか」と思う方もいらっしゃるかもしれません、解説しましょう

透過シェイプキー削除の流れ

① PC用アバターの表情ファイルを編集
② 適用
③ Quest用アバターの表情ファイルを編集
④ 適用
⑤ アップロードして完了

やることとしてはこんな感じなんですが、このままだと③のタイミングで不都合が生じます
というのも、素の状態だとPCとQuestで参照するファイルが同じなんです
その結果、Quest用に編集した表情が、PC用に編集した表情を上書きしてしまう、という事態が発生します

このままだとセルフ透過禁止縛りになってしまいますので、参照する表情ファイルを分けてやる必要があるわけです

ご理解いただけましたら、早速作業に取り掛かりましょう

①表情ファイルの場所を探す

まずはアバターの表情ファイル(.anim)の場所を探します

今回の場合は

Assets
├─Lemone
   ├─Anim
      ├─Clothes
      ├─Exmenu
      └─Face <<ココ!
          ├─Anger.anim
          ├─Aozame.anim
          ├─Be.anim
          ├─Be_2.anim
          (以下略)

に表情ファイルがありました

②フォルダーを作る

したらば表情ファイルのあるディレクトリに"PC"と"Quest"というフォルダーを作ります
画面下のファイルがある部分を右クリックし、Create->Folderという順に進んでください
スクリーンショット 2024-02-27 105428.png

以下2つのフォルダーが作成できればOKです
スクリーンショット 2024-02-27 110402.png

③表情ファイルを移動する

ファイルを作り終えたら

  1. まずそこにある表情ファイルを、先ほど作ったPCフォルダーに全て移動します
    スクリーンショット 2024-02-27 110455.png

  2. 次に、今PCフォルダ内に移した表情ファイルを全てコピーし、Questフォルダ内にペーストします
    PCフォルダとQuestフォルダの中身が同じ状態になれば、下準備は完了です
    スクリーンショット 2024-02-27 111139.png

5. 透過シェイプキーを消す

ここからはQuest用アバターの表情をいじって、透過テクスチャを含むシェイプキーを消していきます

①編集が必要な表情を確認する

まずはQuest用アバターの「Emo」ボタンをクリックし、どの表情が透過テクスチャを含んでいるのか確認します
「どの表情も大丈夫!」という場合であればそのままアップロードで構わないのですが、PC用アバターにはほぼ確実に透過を含む表情が実装されています

今回は以下5つの表情が対象です
スクリーンショット 2024-02-27 115821.png
スクリーンショット 2024-02-27 115814.png
スクリーンショット 2024-02-27 115808.png
スクリーンショット 2024-02-27 115748.png
スクリーンショット 2024-02-27 115741.png

②表情のシェイプキーを置き換える

編集が必要な表情が分かったら、次に表情ファイルをQuest用のものに置き換えます
先ほども触れましたが、今の状態だと、透過を消すための表情編集がPC用アバターにも反映されてしまうからです

画面下側でQuestフォルダーを開き、対応する名前のファイルを表情プレビューの下の欄にドラッグします
この際、**ファイル名の末尾に"_quest" **と付けておきましょう

例)
・Anger⇒Anger_quest
・Heart⇒Heart_quest

スクリーンショット 2024-02-27 120953.png

同じものをコピーしているためドラッグしても見た目は変わりませんが、ファイル名を確認して置き換わっているか確認しましょう

④表情を編集する

ここではAngerの表情を例にとります
もとの表情はこんな感じで、頬染めと怒りマークが透過テクスチャを使っていることが分かります
スクリーンショット 2024-02-27 121928.png

ここから右のウィンドウで"other_cheek_1(頬染め)"と"other_mark_angry(怒りマーク)"を消すと...?
スクリーンショット 2024-02-27 122106.png

こんな感じに、少し物足りない感じはしますが、透過テクスチャの部分が消えました
スクリーンショット 2024-02-27 122304.png

あとはこれを表情の数だけやっていって、最後にアバターに適用すれば作業は完了です!

PC版、Quest版それぞれでのアップロードを忘れないようにしましょう

まとめ

今回は、FaceEmoを使って、透過テクスチャを含む表情シェイプキーを削除する方法について解説しました(厳密には「削除」だと間違っている気もしますが...)
かなり強引とも言える方法ですが、私は現状これで問題なく使えています

PC版からはPC版用の表情が、Quest版からはQuest版用の表情が見えるので、この作業によって元のアバターの表情が損なわれることはありません

今回は少し逸脱した使い方をしましたが、FaceEmoは単なる表情改変ツールとしても優秀です
UIが分かりやすく、撫でたときに表情を変えられたりと機能も豊富なので、結構おすすめです

では今回も長くなりましたが、良きVRChatライフを!

余談(割と重要)

割と面倒な今回の作業ですが、二回目以降の表情改変時は、PC、Questそれぞれの表情を普通にFaceEmoで編集するだけで済みます
透過を含まない表情は、参照ファイルが同じなのでどちらか片方で編集すれば同期しますが、透過を含む表情は個別に編集する必要があるのでそこだけ注意です!

また、FaceEmoはアバターオブジェクト1個につき、"FaceEmo"というオブジェクトを生成するのですが、アバターオブジェクトを一度削除した際はこれを使うことで、表情を引き継ぐことができます

①引き継ぎたい表情の入った"FaceEmo"オブジェクトを選択
②画面右の「対象アバター」の欄に、引き継ぎ先のアバターをドラッグ
③「FaceEmo起動」を押して、出て来たメニューから表情を適用
スクリーンショット 2024-02-27 133229.png

以上の手順を踏むことで、アバターオブジェクトを消した際の、表情の再設定を回避することができます

使用したツール等

FaceEmo

レモネ -Lemone-

前回の記事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1