見出し画像

VRCFuryを使いこなす

VRCFuryってご存知ですか?
VRCFuryとは、Modular Avatarのような非破壊改変ツールで、主に海外コミュニティで人気があります。英語オンリーなのがちょっとハードル高いですが、実はめっちゃ便利なんです。特にオンオフメニューを超簡単に作れる「Toggle」は最高です。

Modular Avatar(MA)は日本で人気があり、MA前提の衣装やギミックも販売されていますが、海外圏では同様にVRCFury(VRCF)前提のギミックなどが販売されていたりします。

MAとかぶる機能もあるものの、MAとはかなり思想や守備範囲が違うため、VRCFuryも使いこなすと、さらに改変が楽に便利になります。
日本ではあまり知名度がありませんが、正直私はこちらの方がMAより初心者向きだと思っています。(英語、という壁を除けば…)

今までラジアルインベントリのようなツールに頼っていて、詳しい仕組みとかよく分からん!という人でも、きっとこの記事を読めばオンオフメニューを使いこなせるはずです。
逆に、中身がわかってる人も、MAでちゃんとメニュー作るのめんどくさくないですか?たかがオンオフメニュー、こっちの方が楽ですよ。

VRCFの機能は非常にたくさんありますが、ここでは特に利用頻度が高く非常に便利な「Toggle」機能を中心に、よく使う機能をピックアップして解説していきます。

とりあえず「Toggle」の解説を読みたい人は、下の目次から「最強に便利なToggleを攻略する」まで飛んでください。


VRCFuryのインストール

まず、VRCFuryのインストール方法を解説します。といっても、Modular Avatarなどと同じくVCCからインストールするだけです。

下記公式サイトにアクセスして、画像のようにリンクをクリックしてください。
VRCFury公式サイト↓

トップページで「Download VRCFury」をクリック
「Click here to add VRCFury to the VRChat Companion
(ここをクリックしてVRCFuryをVCCに追加)」をクリック

「Click here to add VRCFury to the VRChat Companion(ここをクリックしてVRCFuryをVCCに追加)」を押せばVCCが開くはずです。
もしもうまくいかない時は、VCCの Settings > Packages > Add Repository から「http://vcc.vrcfury.com」を直接追加してください。

リポジトリを追加できたら、いつも通りVCCのManage Project ボタンからVRCFuryを追加してください。

おことわり

この記事ではVRCFuryのスクリーンショットや、その記述の和訳を載せています。しかし、VRCFuryは活発に更新が行われているため、一部記載が最新のバージョンと異なる可能性があります。

(補足)NDMFとVRCFの互換性について

一部の人は、MA(のベースであるNDMF(なでもふ))とVRCFを共存を心配する人もいると思います。実際、少し前までは共存した時にアバターのギミックなどが壊れていたこともありました。

これについて、2024年4月現在では、基本的に大丈夫と考えて良いです。
全てが完璧に動作するとは限りませんが、細かいレアケースを引かない限りは大丈夫なはずです。また、そもそもどちらも完全に非破壊なので、仮に意図した通りに動かなくても、アバターが作り直しになることはありません。何か機能を追加して上手くいかなかったら、単にそれを抜くか、他の方法で対応すれば大丈夫です。
また、どちらも積極的に開発が行われているため、もしも互換性問題を引いた場合は、報告すればアップデートで修正される可能性があります。

VRCFuryの機能って何があるの?

VRCFuryでは、MAのように各機能が個別のコンポーネントに分かれています。
公式サイトで数えたらなんと28個もありました。全部紹介していると流石に長すぎる(し、そもそも私も使ってないやつは把握してない)ので、ここでは特に利用頻度が高そうな8つを厳選して紹介します。全部英語なので、スクリーンショットはなるべく和訳をつけています。

VRCFの機能1:Armature Link🧍🏻

Armature Linkコンポーネント(和訳)

その名の通りArmature(ボーン)を合体させる機能です。MAで言うところのMA Merge Armature、MA Bone Proxyに当たります。MAでは実際にボーンを統合するのか、それともただ入れ子にするのか、という動作ごとにコンポーネントが分かれていますが、VRCFでは「アバターボーンに追従させる」と言う目的に対して1コンポーネントです。実際にボーンを1つに統合するのか、それともただ入れ子にするのかは、自動判定されます。(もちろん手動で指定することもできます。)
なので基本の使い方は、

  1. Armature Linkを付ける

  2. 追従させたいものを選ぶ(服の場合、自動で服側のHipsを見つけてくれます)

  3. 追従先(アバターのボーン)をリストから選ぶ

だけでOKです。
「Link To (Avatar)」を押すと、以下のようにアバターボーンのリストが出てくるので、この中から追従先を選びます。

リンク先ボーンを選択(Link To)

なお、「Advanced Options」を押すとももっと色々な調整ができます。
リンク先にボーン以外のものを指定する機能もあります。

注意点として、MAにあるようなアバターごとのボーン名の違いを吸収する仕組みはありません。つまり、ボーン名の違う非対応衣装には使えません。
なので服を着せる用途に関しては、MAを使った方が良いかもしれません。
しかし、Furyの機能を使いたい関係で、Armature Linkを使わないといけない場合もあります。そういう時の回避策として、一旦服のArmatureにMA Merge Armatureをつけて「ボーン名を統合先に合わせる」を押してボーン名を変更する(その後、Merge Armatureは外して改めてArmarute Linkを付ける)という技があります。
ちょっとトリッキーですが、非対応衣装に使いたい場合は参考にしてみてください。

MA Merge Armature ボーン名を統合先に合わせる

VRCFの機能2:Full Controller🎛️

Full Controllerコンポーネント(和訳)

ギミックなどのAnimator Controllerをアバターに統合する機能です。
MA Merge Animator、MA Parameters、MA Menu Installerを1つにまとめた感じです。こちらも、動作ではなく「ギミックを統合する」という目的に対して1コンポーネントになっています。

ただ、正直これはあまり使っていません。どうせ自分で全部組むなら、MAの方が融通が利いて便利です。どうしてもFuryの他の機能を使う関係で、MAだと都合が悪い時にはこっちをつかってもいいかもしれません。また、Fury前提ギミックを配布するなら、依存パッケージを少なくするためにこっちを使うのはありかもしれません。

MAと違うところととしては、

  • VRC公式のExpression Menu、Expression Parametersアセットを使う必要がある

  • アニメーションパスの絶対/相対は自動判定して修正される

  • Parameterは指定しない限り自動リネームされる(他ギミックとの干渉防止)

  • パラメータのスムージング機能がある

あたりでしょうか。
ちょっと特徴的なのは、アニメーションのパスは個別に修正されることです。 つまり、一つのコントローラーの中に、アバタールートからの絶対パスと、コントローラーのついたオブジェクトからの相対パスを混在させることができます。
Advanced Optionsの和訳も載せておきます。
下の方に(非推奨)がたくさんありますが、これは「一応使えるけど将来的に廃止されるかも」みたいな意味なので、基本的に使わない方が良いですね。

Advanced Options(和訳)

VRCFの機能3:Toggle🔁

Toggleコンポーネント(和訳)

オンオフやスライダーのメニューを簡単に作れる機能です。ラジアルインベントリやAvatar Menu Creator for MAなどと似たようなやつです。これ、最強です。かなり色々なことができるので、後で詳しく紹介します。

VRCFの機能4:Droppable (World Constraint) 🫳

Droppableコンポーネント(和訳)

Droppableとは、「落とせる、手から離せる」と言う意味です。いわゆるワールド固定が作れます。
MAで言うところのMA World Fixed Objectに近いです。近いですが、あっちは付けたものがワールド固定状態になる、と言うだけで、それを手に持たせたり、ワールド固定と切り替えたりするところは全て自分で作る必要があります。一方こっちは一撃でワールド固定オンオフのメニュー項目まで作ってくれます。

先のToggleやArmature Linkと組み合わせると、小物を手に持たせてオンオフとワールド固定まで1分くらいで楽勝で作れちゃいます。(このあとのToggleの解説で実例を載せます)

Animatorを自力で組む場合は、MA World Fixed Objectを使った方が融通が効いて使いやすいですが、シンプルにワールド固定したいだけならこっちが最強です。

VRCFの機能5:Fix Write Defaults🔧

Fix Write Defaultsコンポーネント(和訳)

これも地味に強力です。アバターのAnimatorを解析して、Write Defaultsのオンオフ不一致がある場合、自動で修正してくれます。もちろんただオンオフのチェックをつけるだけ、ではなく、リセット用のデフォルトアニメーションを作ったりも自動でやります。Write Defaultsの複雑怪奇な仕様もかなり織り込み済みで、オフ統一の場合でもAdditiveのステートとDirect Brend Treeは全てオンにするなど、細かいところも考慮されています。

正直Write Defaults周りは非常に複雑なので、ほとんどの人はこれに任せておいた方が安全です。

なお、この機能は自分でつけなくても、VRCFのコンポーネントが一つでも付いていると、シーン再生またはアップロードするとき、Write Defaults不一致があると自動で警告を出して「直しとく?」と聞いてきます。
(下図参照。なおMac画面なので通知のウィンドウがちょっと違いますが、書いてあることは同じです。)

Fix Write Defaultsの自動検出(和訳)

これが出てきたら、「Auto-Fix」を押すとアバタールートにFix Write Defaultsが「Auto」モードで付きます。「Skip and stop asking」を押した場合、「Disabled(無効)」モードで付きます。「Skip」は何もせずスキップします(次にアップロードするときにまた聞かれます)。Fix Modeが「Auto」の時は、WD on/offの多い方に自動で合わせます。

Fix Write DefaultsのFix Mode

VRCFの機能6:Move Menu Item➡️

Move Menu Itemコンポーネント(移動)(和訳)
Move Menu Itemコンポーネント(名前変更)(和訳)
Move Menu Itemコンポーネント(削除)(和訳)

ExMenuを操作して、メニュー項目を移動したり削除したりするコンポーネントです。移動/リネーム/削除ができますが、ちょっとややこしいです。

To Pathを空欄にすると、そのメニュー項目を削除します。From Pathに指定したメニュー項目の名前をTo Pathに記載しないと、To Pathに記載したフォルダにFrom Pathの項目を入れます。

UNIXのmvコマンドっぽいですが、移動とリネームを同時にやるような機能はありません。移動した上で名前も変えたい時は複数つけて一つずつやらないといけません。また、頭に「/」は不要です。(n敗)

応用的な使い方として、メニュー内の順番を変えることにも使えます。

特にMAと一緒に使っていると、これが役に立つ場面が多いです。処理順がMA→Furyなので、例えばMA側で作られたメニューを、Furyが作るメニューの中に入れ込みたい、なんて時はこの機能を使う必要があります。アバターに元から入っているメニュー項目を、MAで入れたメニューの中に移動させるとかもできます。

VRCFの機能7:SPS(Super Plug Shader)

いわゆるDPSの後継システムです。
DPS/TPSに後方互換性がある、既存のシェーダーをその場でカスタムするのでlilToonなど好きなシェーダーを使える、ボーンのあるメッシュにも使える(もちろん、PhysBoneとも併用できる)、Plugの大きさを自動認識するので調整不要、同時に二つのSocketを有効化できる、Contactを使ってPlugの近くにあるSocketを自動で有効化/切り替えできる、Depthの値を使って各種アニメーションと自由に連携できる、Socket有効化メニューの生成も自動、など色々盛りだくさんの仕様になっています。需要があれば解説とか書くかもしれません。

VRCFの機能8:Unlimited Params (BETA)

Unlimited Params(無制限パラメータ)(和訳)

アバターにつけるだけで、Float型の同期パラメータを最適化してパラメータ消費量をたったの16bitに抑えてくれます。わずかに同期が遅くなるというデメリットがあるようですが、特にたくさんのギミックを入れているときには大いに役立つはずです。3月ごろに追加された機能で、まだBETA版ですが、そのうち正式版になると思います。


VRCFuryには他にもたくさんの機能があります。
更なる詳細は公式サイトを見てみてください。↓

最強に便利なToggleを攻略する

さあ今日のメインはこちらです。いろんな具体例とともに VRCFury Toggleの使い方を見ていきましょう。

基本の使い方は、この動画を見てもらえばほぼ分かると思います。

Toggleって何をしてるの?

具体例の紹介に行く前に、一旦VRCFury Toggleの動作について確認しておきます。そういう細かいのはいいから!という人は下にある具体例紹介まで飛んでください。

ユーザーが指定すること

  • メニュー項目を「オン」にした時に何をしたいか(オブジェクトのオンオフ、シェイプキーの操作、パラメータの操作、など…)

  • そのメニュー項目を作る場所(階層)

  • (その他オプション)

↓ Furyがやってくれること

  • 「オン」と「オフ」のアニメーション作成

  • アニメーションを操作するためのパラメータ作成

  • アニメーターコントローラーの作成

  • パラメータ操作をするメニュー項目の作成

  • アニメーションのデフォルト状態に合わせてオブジェクトの初期状態(アニメーション無効の時の状態)を変更

要するに、「何をしたいか」だけを指示したらオッケーです。あとはFuryがいい感じにやってくれます。
初期状態も変更してくれるので、セーフティでアニメーション無効化されて服が脱げて見える!なんて事故も起こりません。

ちなみに、Avatar Optimizerを入れている場合、Fury Toggleで作ったオンオフに対しても、自動でPhysBoneもオンオフするように修正してくれます。

Toggleの設定方法

Toggleでは、設定するところが大きく2つあります。

1つは、トグルが有効になった時に何をするか(Action)
もう1つは各種オプションです。

トグルが有効になったとき、各種Actionを実行できます。このActionのリストはToggleだけでなくVRCFury全体で共通になっています。

Add Action

「Add Action(アクションを追加)」を押すと、以下のリストが出てきます。

Toggleに追加できるAction(和訳)

この中から1つまたは複数を選んで操作できます。海外系のツールなので、Poiyomiと連携した機能がいくつかありますね。

次に、各種オプションです。

Options

右端にある「Options(オプション)」を押すと、以下のリストが出てきます。

ToggleのOptions(和訳)

いろいろありますが、よく使いそうなものはこの後の具体例で詳しく紹介します。

Toggleコンポーネントはどこにつける?

どこにつけてもOKですが、基本的にはオンオフしたいPrefabのルートにつけるのがいいです。服のオンオフをしたいなら、服Prefabにつけましょう。Prefab化しておけば、そのまま使いまわせます。複数の別の衣装やギミックを横断して操作したい場合は、アバタールートに付けるのが良いと思います。

では、具体例を出してセットアップしてみましょう。

例1:シンプルなオンオフ

シャツのオブジェクトをオフにする

動画でやっていたのとほぼ同じですね。単純なオンオフならこれだけです。
アバター変更/ワールド移動でもそのままにしたかったので、Optionsから「Saved Between Worlds(ワールド間で保存する)」を指定しています。(Actionの下に「Saved」と表示されます。)

例2:小物をまとめてオンオフする(初期値オン、メニューアイコン指定)

チョーカーとネックレスをまとめてオンにする

複数のオブジェクトをまとめてオンオフしたいなら、右にある「+」ボタンからいくらでも要素を追加できます。
ここでは、「Default On」オプションを入れて最初から「オン」状態になるようにしています。(Actionの下に「Default On」と表示されます。)
また、「Set Custom Menu Icon」を使ってメニューアイコンを指定しています。

余談ですが、Physboneのついた服や小物をオンオフする時は、メッシュだけでなくPhysboneも一緒にオンオフするようにしないとPBだけ残ってアバターが重くなってしまいます。
そんな時はAvatar Optimizer(AAO)のAAO Trace And Optimizeをアバタールートに付けておくと、服などのオンオフに合わせて勝手にオンオフしてくれます。アバターに影響がない部分だけを処理するので、デメリットはありません。全てのアバターにつけておくことを推奨します。

AAOのTrace And Optimize(走査して最適化)
不要なオブジェクトの削除、PBの自動オンオフなどをしてくれる

AAOの自動最適化について詳しく知りたい場合はこちらの記事も参考にしてみてください。

例3:シェイプキーを動かす

スライダーで胸シェイプキーを操作(和訳)

0/1のオンオフではなく、シェイプキーを0~100%で動かしたい時は、Actionに「BlendShape」を指定し、「Use Slider Wheel(スライダーホイールを使用する)」オプションを使います。あとは変化させたいシェイプキーの名前を入れればOKです。

このとき、デフォルトだと「Apply to all renderders(全てのレンダラーに適用)」オプションがオンになっています。これがオンだと、同名シェイプキーのあるメッシュ全部に対してシェイプキーを動かします。服と素体の両方に共通の胸シェイプキーがある時とかに便利ですね。
チェックを外すと、シェイプキーを動かしたいメッシュを直接指定できます。

「全てのレンダラーに適用」をオフにしてシェイプキーを動かしたいメッシュを指定する

例4:Animation Clipをセットする

Animation Clip(アニメーションクリップ)を指定

オブジェクトのオンオフやシェイプキーの操作は直接指定できますが、それ以外の操作をしたい時もありますよね。そんな時はAnimation Clipを直接セットすることができます。今回はConstraintの操作をするアニメーションを入れてみました。
このとき、「オフ」のアニメーションはFuryが勝手に作ってくれるので、自分で作る必要はありません!最高ですね。

(参考:今回のアニメーションの中身)

シェイプキーとConstraintのWeightを操作するアニメーション

例5:複数衣装を切り替える(排他タグ)

排他タグで切り替え

排他タグ(Enable Exclusive Tags)と排他オフステート(This is the Exclusice Off State )を使って、服の切り替えを作れます。今回は衣装3種を切り替えています。

排他タグには好きな名前をつけられます。同じ排他タグがついたトグルは、同時に一つしかオンにならなくなります。さらに、それだけだと「すべてオフ」にできてしまうので、服を脱いだ状態にならないように、排他オフステート(Exclusive Off State)を設定しています。排他オフのステートは同じタグの他トグル全てが「オフ」のとき、強制的に「オン」になります。

例6:複数マテリアルを切り替える(Flipbook)

Flipbookでマテリアル切り替え

先の衣装切り替えと似た複数状態の切り替えですが、Flipbookの機能とスライダーホイールで実装してみます。こちらだと個別のボタンではなく、スライダーを動かすとマテリアルが切り替わる動きになります。

スライダーホイール

Optionsから「Use Slider Wheel(スライダーホイールを使う)」をオンにし、Actionには「Flipbook Builder(フリップブック(パラパラ漫画)ビルダー)」を選びます。さらに、Flipbookの各ページに、Material Swap(マテリアル変更)を登録しています。

こうすると、スライダーを0~100%に動かすことで服の色を変えることができます。実際に動かすとこんな感じです。

詳しい解説
Flipbook Builderを使うと、1フレームごとにそれぞれ異なるアニメーションをするようなアニメーションクリップが作成されます。
Flipbook Builderはあくまでそういうアニメーションを作成するだけなので、Slider Wheel無しで使うと1フレームずつ一瞬で複数状態が順番に切り替わって最後の状態で止まる動きになります。

例7:自分だけに見えるアイテムを出す

ローカルでだけアイテムを表示する

Sepalate Local State(ローカルステートを分ける)を使うと、ローカル(自分)とリモート(自分以外)で別の動作をさせることができます。ちょっと上手い応用例がパッと浮かびませんでしたが、たとえば、ローカルだけにオブジェクトをオンにする動作を入れておけば、自分だけに見えるアイテムが実装できますね。

例8:遷移時間を設定する/中間の動作を設定する

Enable Transition State(中間ステートを有効)から遷移時間を0.25sに設定(和訳)

Optionsから「Enable Transition State(中間ステートを有効にする)」にチェックを入れます。このオプションを使うと、「オン」になる前と後の動作を追加できます。

例えばAFKモーションなんかは、一瞬でいきなりAFKの姿勢になるのではなく、中間動作を挟みながらスムーズに移行したりしますよね。あんな感じの設定ができるようになります。

また、遷移時間を設定できるので、前動作はいらないけど単にゆっくり遷移して欲しいときにも使えます。

ちょっとAnimatorがわかる人向けの説明になりますが、これを有効にするとこのような遷移になります。Onのステート以外に、On In / On Outのアニメーションと遷移時間が設定できるようになる感じです。
ちなみに、Transition Stateが無い通常のToggleは最適化されてDirect Blend Treeとして作られます。

Transtion State有効時の状態遷移

前後のステートが要らない場合は、単に「Then blend for this much time:(その後、この時間ブレンドする:)」に遷移時間を入れてください。画像の設定では、オンオフそれぞれ0.25秒かけて変化するようになります。

デフォルトでは、「Transition Out is reverse of Transition In(後動作は前動作の逆です)」にチェックが入っているので、inのアクションだけを指定すればOKです。outのアニメーションはinの時の逆の動きをするように自動で設定されます。

例9:他の場所からも操作できるようにする

グローバルパラメーターを使う

オプションから「Use a Global Parameter」を指定します。

通常、VRCFuryでは変数名は他と重複しない名前が自動で割り振られます。そのため、他のギミックなどと連携したい場合は「グローバルパラメーター」としてリネームしない変数名を登録する必要があります。あとは自分のAnimator Controllerに同名の変数を定義して使えばOKです。

例10:他のギミックを操作する/連携する

FXのパラメータを操作する(和訳)

少し高度な機能です。
「Set an FX Float」を使うと、変数の値を操作できます。「FXのFloat値をセットする」という名前ではありますが、BoolやIntの値も操作できます。

オンオフではなくスライダーホイールを使う場合、ここで操作するFloatの値もスライダーの値に応じて滑らかに変化します。

これを使うのは基本的に別のギミックとの連携前提になるので、あまり単品で見ても良さが分かりづらいかもしれません。しかし、実はこういうこともできます。

リボンとシャツのオンオフ

これは、服のリボンを個別オンオフする機能と、リボンのついたシャツをオンオフする機能です。リボンの方にグローバルパラメータを使用することで、シャツをオフにする時はリボンも一緒にオフになるようにしています。
ただしこの使い方、OKなんですが本来想定された使い方ではないようです。一応こういうこともできます、ということで紹介しておきます。(実際便利)

注意点
画像内の警告にもありますが、この機能を使うと指定したパラメータはExpressionメニューの中など他の場所からは値を変えられなくなります。
じゃあ上の例はダメじゃん、という話なのですが、実はBoolとIntのパラメータは直接操作されていないので(実際のところ)OKです。Float型の変数に値をセットする時は、本当に他からは値を変化させられなくなります。

詳しい説明(わかる人向け)
Animatorを触ったことがある人なら、Parameter Driverを思い浮かべると思いますが、ちょっと違います。Parameter Driverでは、あるステートにいる間パラメータの値はその値に固定され、ステートを移動したらセットされた値はそのままになりますが、「Set an FX Float」はパラメータ値のアニメーションです。この機能を使うと、パラメータの値を変化させるAnimation Clipが作成されます。そのステートを抜けたとき、アニメーションしていた変数の値はデフォルト値に戻ります。これはアニメーションで動かされるパラメータの仕様です。しかし、アニメーションで操作できるのは Float値だけです。そこで、IntやBoolを動かす時はFloat型変数を介して最終的にはParameter Driverで操作されています。
というわけで、先の二つ目の例は意図された用途ではないものの、動きます。動作が保証されているわけではないですが、Unityの仕様が絡んでいるので、アップデートで使えなくなるとかは無さそうです。
ちなみに、パラメータのアニメーションについてはこの記事が詳しいです。

例11:手に持たせる+ワールド固定

マフィンを手に持たせてワールド固定

Armature Link、Toggle、Droppableの三つを連携すると、手に持たせる+オンオフ+ワールド固定が超簡単に作れます。

手に持たせる位置調整の方が時間かかるくらいです。

この例はボーンなしですが、ボーンありの小物でももちろんOKです。その場合はArmature LinkのLink Fromは小物のメッシュそのものではなくボーンの方を指定します。

動画版はこちら↓


どうでしょう?非常に自由度が高いのがわかるでしょうか?Toggle単体で使うだけでなく、他の機能やギミックとの連携もできるのでアイディア次第で色々なことができます。高度な機能もありながら、単なるオンオフなら30秒でセットアップが終わるため、初心者でも使いこなせるはずです。

その他

追加したActionを消す時は「-」ではなく、右クリックから行います。右下の「-」を押すと、右クリックから消してね!とポップアップが出ます。(なんで?)
Actionを右クリックすると、「Desktop Only」、「Android Only」というオプションをつけられます。意味は読んで字の如くで、それぞれのプラットフォーム限定でそのアクションを有効化できます。

Actionsのコンテクストメニュー

なんかエラー?出たんだけど!

トラブル対応の章です。VRCFuryは自動でいろいろやってくれる機能があるので、いきなりなんか英語のポップアップが出てきた!となりがちです。

さきに断っておくと、macOSでスクショを撮っているので、Windowsのときと画面の形とかが違います。が、書いてあることはおんなじです。

Fix Write Defaultsの自動検知

Fix Write Defaultsの自動検知

ほとんどの場合「Auto-Fix」を押せばOKです。
「VRCFuryのコンポーネントを何か一つでもアバターに付けている」 + 「アバターにWrite Defaultsの不一致がある」と、これが出ます。この記事のFix Write Defaultsの項目でも説明していますが、要はトラブル防止のために自動であなたのアバター直しとくよ、という機能なので、基本的に任せておけばOKです。下にもう一度和訳を載せておきます。

Fix Write Defaultsの自動検知(和訳)

AAOの未知コンポーネント検知

未知のコンポーネントを検出しました!

無視でOKです。

これはFuryではなくAnatawa12's Avatar Optimizerの機能ですが、AAOは不要なオブジェクトを判断して削除したりする機能があります。そのとき、AAOが知らないコンポーネントがアバターについていると、これが出るようになっています。出るからどうというものでもないので、単に無視すればOKです。VRCFury以外にも、スクリプトをアバターにつけるギミックとかを使っているとこれが出ることがあります。これを出なくするには、そのツールの開発者がAAO用にツールを修正する必要があります。

Preprocess Callback Failed

VRCSDKのビルド処理が何か失敗しました、という意味です。

取ろうと思うと出せないのでエラーの画像が無いんですが、「Preprocess Callback Failed(前処理コールバックが失敗しました)」というエラーが出ることがあります。これは、アバターのビルド処理が何らかの理由で失敗したことを表しています。このエラーは「何かがうまくいかなかった」以上の情報を持たないので、とりあえずもう一度やり直してみましょう。個人的経験では、Gesture Managerからシーンをリロードしたときにこれを見ることがあります。

その他のエラーなど

VRCFury側でエラーが出た場合、下記リンクの公式トラブルシューティングページに情報があるかもしれません。

ここで解決しない場合、VRCFuryの公式Discordで聞くと解決するかもしれません。私に直接聞いてくれてもOKです。

MAと併用する際の注意点

VRCFuryはMAと併用可能ですが、注意点があります。それは、MAとFuryは連携しないと言うことです。
当たり前と言えば当たり前ですが、MAはFuryが何をするのか知りません。Furyも、MAが何をするのか(したのか)知りません。単にそれぞれが自分の仕事をしてるだけです。なので、それぞれの動作をきちんと理解していないなら、同じ部分をMAとFury双方から操作するのはやめた方がいいです。うまくいかない原因になります。

逆に、それぞれ別の場所で動いている分には、基本的は大丈夫です。
よく分からんなぁという人は、とりあえずやってみましょう。うまく動いたなら大体大丈夫です。

それから、実行順も重要です。実行順は

MAや他のNDMFツール

VRCFury

AAO Trace and Optimizeなどの最適化機能(NDMFのOptimizing Phase)

の順になります。最適化(使ってないオブジェクトの削除など)は全てが終わった後でないといけないので最後に実行されます。それ以外は、NDMF(なでもふ)が先、Furyが後です。

失敗パターンとして、こんなものがあります。

FuryとMAの併用 失敗例

MA Merge Armature(Setup Outfitしたときに自動で付くやつ)で服を着せていますが、服のArmature内にあるPB(の付いたボーン)をVRCFuryでオンオフしようとしています。これはうまくいきません。何故なら、Furyがオンオフアニメーションを作ろうとする時には、すでにMAがArmatureを統合してしまっています。Furyからすれば、オンオフすべきオブジェクトが見つからないので、アニメーションの作成に失敗してしまいます。

補足
実は、VRCF Toggleは、オブジェクトが外に移動していても見つけることができます。Toggleの対象は、まず子オブジェクトの中から探し、見つからなかったら、アバター全体から探すようになっています。しかし今回の場合、MAがMerge Armarureをするときに名前を変更してしまう($85ee7830-30f0… のような重複防止のUUIDを付与するようになっています。)ため、見つけられなくなってしまっています。

参考: うまく併用した例

Manual Bakeについて

VRCFuryをNDMF(MAなど)と併用する場合、NDMF側のManual bake avatar機能が使えません。VRCFuryが実行されないためです。

Modular AvatarのManual bake機能

しかし大丈夫です。VRCFuryにも同様の機能があります。メニューバーの「Tools > VRCFury > Build an Editor Test Copy」から実行できます。(MAと違い、右クリックメニューにはありません。)こちらはなんと、VRCFuryだけでなくNDMF(MAなど)も実行してくれます。併用している場合は基本的にこちらを使えばOKです。

VRCFury版Manual bake avatar(Build an Editor Test Copy)

ちなみに、Furyで作ったEditor Test Copyはアップロードできないようになっています。なぜかというと、Test Copyを作ってそちらをアップロードし、満足してオリジナルのアバターを削除してしまう人がいるからだそうです。なんというか、Furyの思想が出ていますね…

まとめ

VRCFuryの便利さが伝わったでしょうか?
英語オンリーである、というところと、MA(NDMF)とは完全に別の仕組みなので、両方の機能を併用したりするとちょっとややこしくなる点はデメリットですが、単純に使うならこんなに便利な機能はないと思います。ぜひ使ってみてください。

ちなみに、MAとの違いについてはこの記事で考察してます。興味のある方はどうぞ。


参考になったら「スキ❤️」してくださると私が喜びます。
「フォロー」すると新しい記事の通知が受け取れます。
「気に入ったらサポート」すると私がとても喜びます。ありがとうございます。

VRChat関連の技術的な情報などを書いています。「スキ❤️」や「フォロー」していただくとモチベになります。「サポート」していただいたら私が美味しいものを食べます。