アニメーションオーバーライドによって中腰になってしまったアバターを直す方法(Unity2017用)
以前紹介していたアバターの中腰解除方法ですが、
なんと、VRChatに対応したUnityのバージョンが5.6.3から2017.4.15に上がったことにより、上記事の方法1が使えなくなってしまいました。
それに合わせて記事をリライトしようと思いましたが、タイミングがいいことにがとーしょこらさんがワンクリックで中腰を解除できるツール(VRCDeveloperTool)を公開してくれたので、その紹介を改めて行うような形で新記事としたいと思います。これを専門用語で他力本願と言います。
導入及び操作方法
先程リンクを貼ったページからダウンロード。
無料でもDLできますけど、当然お前らもブーストで投げ銭するよな?(私はしました)
DLしたファイルをAssets欄にドラッグ&ドロップ。今からこの中腰になったAlcedoちゃんを救出します。
ドロップした後は、Unityの上の方にあるメニューバーに「VRCDeveloperTool」という欄が出来ているはずなので、そこにある「HumanoidPose Resetter」をクリック。
でてきたウィンドウにある「TargetObject」に、中腰を直したいアバターのオブジェクト(リグやメッシュではなく、親のオブジェクトです)をドラッグ&ドロップ。
「Reset Pose」を押すと、この通り。めでたしめでたし。
…。
……。
聴こえるぞ……ツールに頼らずに中腰を抹殺したいという怨嗟の叫びが……!
心を込めて中腰を抹殺する方法
前記事の焼き直しになりますが、おさらい。
Unityのアセット欄をたどって、
Assets > VRCSDK > Examples > Sample Assets > Animation
の中にある「tpose-new」の横にある小さな再生ボタンを押します。
そうしたらその横に「tpose-new」というアニメーションファイルが出てくると思うので、それを選択した状態でアニメーションウィンドウを押すと、
このように、夥しい数のアニメーションコンポーネントが出てきます。これを全部コピーして、元々あった(つまり中腰の原因になっていた)アニメーションにペーストします。これで解決!
……と、前記事のコピペで終わるのもアレなので補足的なあれこれ。
Tポーズの動きを入れたら、アニメーション中も強制的にTポーズになったりしないの?
なりません。VRCをプレイしている最中は、ボーンの動きはすべてトラッキングに準拠します。
全部のアニメーションにTポーズの動きを入れると煩雑なんだけど
再生ボタンを押して発動するアニメーションは、Animatorの「Entry」から矢印が出ているオレンジ色のアニメーションになります。そこにTポーズの動きを入れていれば、再生中は(そして何か変なことをしなければ再生後も)Tポーズになります。
更に、オーバーライド用のアニメーションに一切余計なプロパティを入れたくないということであれば、下の図ようにTポーズ用のアニメーションを用意して、Entryからそこに矢印を飛ばすようにしましょう。
上の図でいうと「Wink」「Buku」がオーバーライドさせたいアニメーションになります。
再生中はTポーズにできても、再生を止めるとまた中腰になるんだけど
Tポーズのアニメーションウィンドウで、
この録画ボタンを2回押すと操作画面でもTポーズに戻ると思います。
だが勇者よ油断するな、Unity2017を倒しても、Unityのアップデートが続く限り、第二第三の中腰がまたお前たちを襲うであろう……。