見出し画像

Write Defaultsが淘汰されそうなのでとりあえずの応急処置(初心者向け)[VRChat]

22/08/06 重大なミスがあったので修正(表情レイヤーの修正方法について)

おはようございます。飛び起きたRan_kotonohaです。

緊急事態です。私が気に入っていつも使っているWrite Defaultsが使えなくなりそうです。

私はいつもアバターのFXレイヤーをWrite Defaultsオンに統一して使っていますし、多くのアバターがデフォルト状態でそのような状態になっています。

現在のベータテストで新機能が試験されているのですが、その新機能とWrite Defaultsの相性が悪く、Write Defaultsを用いたアバターが正常に機能しないのです。

なんなら前回記事でもWrite Defaultsをバリバリに利用しました。

この事態に対応するため、今まで使っていたアバターに修正を加える必要があります。この記事はとりあえずやっておくべきことを説明します。
なお、情報は変化するので、この記事の内容がもしかしたら古くなるかもしれません。

やるべきことは3つあります。

  1. Write Defaultsをオフに統一する

  2. 表情レイヤーの修正

  3. 各種アニメーションの修正

早速やっていきましょう。外部ツールもバンバン使っていきます。
メインアバターで作業する場合、絶対に作業の前にバックアップをとってくださいね。

1.Write Defaultsをオフにする

まずは、Write Defaultsをオフで統一します。

このツールを使います。

AnimatorControllerの欄に、アバターについているFXレイヤーを指定し(ファイルを直接ドラッグアンドドロップするか、右側の二重丸みたいなボタンを押して選択できます)、
Offを選択して、切り替え対象のチェックボックスに全てチェックを入れます。

この状態でセットアップボタンを押すことで、指定したFXレイヤーの中身がWrite Defaultsオフで統一されます。

2.表情レイヤーの修正

まず、アバターのFXレイヤーの中のLeft HandRight Hand内にあるIdleステート(オレンジ色のステート)のMotionNoneになっていることを確認します。に空のアニメーションを指定してください。
アニメーションを新規作成(右クリックしてCreate→Animation)して、それをドラッグアンドドロップするだけでOKです。

※Noneを指定すると、左手の表情が動かなくなるなどの不具合が生じます。(1敗)
それ以外のステートでも、元々Noneが入っていた場所には全部空アニメーションを入れるぐらいの勢いでいきましょう。

そうしたら、新しくアニメーションを作ります。これはデフォルト表情用のアニメーションです。

それをAll Partsレイヤーにドラッグアンドドロップでぶち込みます。こうすることでステートが追加されます。このステートのWrite Defaultsもオフにしておきましょう。

ここで、VRCAvatarEditorの出番です。表情を簡単に作れる便利なツールです。

Avatarの欄にアバターを指定してやると、このような画面が出てきます。

右のほうにLayer LeftHandとあるので、そこをクリックしてAllPartsに変えてやります。
すると、先ほど作成したアニメーションが出てくるので、右側のEditをクリック。

すると下側にずらーっとシェイプキーの一覧表が出てきますが、Toggle Allを2回押して全部のシェイプキーにチェックマークを入れます。

このとき、まばたきやリップシンクなどに使われているシェイプキーがある場合はそれらのチェックボックスを外しておきましょう。

それができたら、Set to Left & Right Hand Layer(右手と左手にこのアニメーションを適用する)のチェックを外し、Create AnimFileをクリック。

これで、表情の修正は完了です。
この状態で一度アップロードしてみましょう。

この状態でアップロードしたときに、両手の表情が重なるときがあります。そのときは、以下の方法を試してみてください。

LayerをLeft HandやRight Handに切り替えて、Editボタンをクリック。

すると編集画面になるので、先ほどのように全部のシェイプキーにチェックマークを入れてCreate AnimFileします。
わかりやすいようにAnimClip FileName(アニメーションの名前)も変えておきましょう。

この作業をLeft HandとRight Handの両方に行います。これで、表情が重ならないようになるはずです。

3.各種アニメーションの修正

ここが一番の鬼門です。この状態でアップロードしてみると、
上手く動かなくなっているアニメーションがあるかもしれません。それらはWrite Defaultsありきで動いていたアニメーションです。

色々なアニメーションが色々な構造をしているので、初心者がWrite Defaultsありきで動いていたアニメーションを修正するのは少し酷かもしれませんが、コツだけ伝えると、

どの状態から切り替えてもちゃんと動作するようにアニメーションを作れ

って感じです。

Write Defaultsの動作を旗揚げゲームを例にとって説明します。

たとえば、「赤を上げろ」の次に「白を上げろ」という命令がなされた場合、赤旗をどうするかの命令がありませんが、Write Defaultsがオンの場合はデフォルト状態を参照して白旗だけを上げます。
ですが、オフの場合、そのままの状態を維持するので赤旗も白旗も上げた状態になります。

そのため、「赤を上げろ」「白を上げろ」という命令を「白を下げて赤を上げろ」「赤を下げて白を上げろ」という風に修正してやる必要がある、といったかんじです。

ここでは前回記事で作ったアニメーションの修正例を紹介します。

このような、服を着せるだけでなく、他の服を着せる際に行った変更を元に戻すようなアニメーションを組みました。
アップロードしてみて不具合が出るようだったら、その都度修正していきましょう。一発で上手くいく保証はない。

あっ…(ワンピースを着せたときにフリル水着を脱がせる命令がついてませんでした)

仕組みがわからないままむやみにアニメーションを弄ると更に悪化する可能性もあるため、慎重に行いましょう。

さいごに

22/08/05現在、Write Defaultsのせいでアバターが正常に機能しなくなるといわれる新機能はまだ正式実装されていません。
この先、何か情報が変わり、この記事の内容が正しくなくなるかもしれません。
ですが、今までのアバターがほぼ全てWrite Defaultsを使っていたのもあり、急ぎ足でこの記事を書き上げました。
雑な拙い記事ですが、何かの役に立てば幸いです。

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