hibitの技術系メモ

数学とか3Dとか翻訳とか

アニメーションオーバーライドによって中腰になってしまったアバターを直す方法(Unity2017用)

 以前紹介していたアバターの中腰解除方法ですが、

deux-hibi.hatenablog.com

 なんと、VRChatに対応したUnityのバージョンが5.6.3から2017.4.15に上がったことにより、上記事の方法1が使えなくなってしまいました

 それに合わせて記事をリライトしようと思いましたが、タイミングがいいことにがとーしょこらさんがワンクリックで中腰を解除できるツール(VRCDeveloperTool)を公開してくれたので、その紹介を改めて行うような形で新記事としたいと思います。これを専門用語で他力本願と言います。

導入及び操作方法

 先程リンクを貼ったページからダウンロード。

f:id:hibit_at:20190107203050p:plain

 無料でもDLできますけど、当然お前らもブーストで投げ銭するよな?(私はしました)

f:id:hibit_at:20190107203409p:plain

 DLしたファイルをAssets欄にドラッグ&ドロップ。今からこの中腰になったAlcedoちゃんを救出します。

f:id:hibit_at:20190107203555p:plain

 ドロップした後は、Unityの上の方にあるメニューバーに「VRCDeveloperTool」という欄が出来ているはずなので、そこにある「HumanoidPose Resetter」をクリック。

f:id:hibit_at:20190107203742p:plain

 でてきたウィンドウにある「TargetObject」に、中腰を直したいアバターのオブジェクト(リグやメッシュではなく、親のオブジェクトです)をドラッグ&ドロップ。

f:id:hibit_at:20190107204022p:plain

「Reset Pose」を押すと、この通り。めでたしめでたし。

 …。

 ……。

 聴こえるぞ……ツールに頼らずに中腰を抹殺したいという怨嗟の叫びが……!

心を込めて中腰を抹殺する方法

 前記事の焼き直しになりますが、おさらい。

 Unityのアセット欄をたどって、

Assets > VRCSDK > Examples > Sample Assets > Animation

 の中にある「tpose-new」の横にある小さな再生ボタンを押します。

f:id:hibit_at:20180921214316p:plain

 そうしたらその横に「tpose-new」というアニメーションファイルが出てくると思うので、それを選択した状態でアニメーションウィンドウを押すと、   f:id:hibit_at:20180921214535p:plain

 このように、夥しい数のアニメーションコンポーネントが出てきます。これを全部コピーして、元々あった(つまり中腰の原因になっていた)アニメーションにペーストします。これで解決!

 ……と、前記事のコピペで終わるのもアレなので補足的なあれこれ。

Tポーズの動きを入れたら、アニメーション中も強制的にTポーズになったりしないの?

 なりません。VRCをプレイしている最中は、ボーンの動きはすべてトラッキングに準拠します。

全部のアニメーションにTポーズの動きを入れると煩雑なんだけど

 再生ボタンを押して発動するアニメーションは、Animatorの「Entry」から矢印が出ているオレンジ色のアニメーションになります。そこにTポーズの動きを入れていれば、再生中は(そして何か変なことをしなければ再生後も)Tポーズになります。

 更に、オーバーライド用のアニメーションに一切余計なプロパティを入れたくないということであれば、下の図ようにTポーズ用のアニメーションを用意して、Entryからそこに矢印を飛ばすようにしましょう。

f:id:hibit_at:20190107205556p:plain

 上の図でいうと「Wink」「Buku」がオーバーライドさせたいアニメーションになります。

再生中はTポーズにできても、再生を止めるとまた中腰になるんだけど

 Tポーズのアニメーションウィンドウで、

f:id:hibit_at:20190107205834p:plain

 この録画ボタンを2回押すと操作画面でもTポーズに戻ると思います。

 だが勇者よ油断するな、Unity2017を倒しても、Unityのアップデートが続く限り、第二第三の中腰がまたお前たちを襲うであろう……。