VRchat アバターの瞬き!まばたき! blenderで作る君の瞳になんとやら!の巻その2(*´▽`*)
というわけで!今日は瞬きの続きです。(*´▽`*)
前回(下のarticle)ではblenderでの瞬き用の シェイプキー の設定からfbxでの出力までですね。
そして、今回はその続き、unityでのアニメーション設定をしていきます。
前提としてアバターのアップロードをできるぐらいはunity触れるようになっておいたほうが良い(結構簡単)ので、もしunityの操作ちょっと怪しいな(>_<)って方は、 こちらの記事とか参考にしてみてください。Σ(゚Д゚)
unityでの瞬きアニメーションの作成
いきなりですが概要!
1.unityにて瞬き用のアニメーションを作る
2.瞬き用のアニメーションをアバターに適用する
以上です!
まず、unityでプロジェクトを開きます。
先日作成した瞬きシェイプキーの搭載されたモデルのfbxファイルをunityのAssetsにドロップアンドドラッグで読み込ませます。
取り込んだモデルをHierarycyに放り込んで画面に表示させます。
まずアニメーションを設定したいモデルを選択して、Window から Animation をクリックします。
するとしたみたいなのが出てきます。Σ(゚Д゚)
こちらが、アニメーションを設定するウィンドウになります。
では、Create をクリックしましょう。
ファイルのダイアログが出ますので、これから作るわかるように名前を付けて保存しましょう。
私は、今回 clip としました。これに関しては、なんでもいいです。
こんな感じになります。
AddPropatyを押しましょう。
すると、こんなのが出てきます。
ここで、モデルに登録したシェイプキーを探します。
場所は、シェイプキーを登録してあるオブジェクト名(私の場合はface0.1) の Skinned Mesh Renderer にあります。
ここにある Blend Shape.vrc.blink_left と Blend Shape.vrc.blink_left が瞬き用です。ちなみに名前は保存したモデルのシェイプキーの名前にBlend Shapeってついたものですのでご注意を。
選択は、右にちょっと隠れちゃってる + ボタンですので、下のバーを動かして押しましょう。(使いにくい)(>_<)
二つとも追加するとこんな感じ。ここからアニメーションを設定します。
少し捜査の説明をするです。(@_@。(ちょっと隠れてたので枠の大きさ調整しました)
右側にあるのがタイムラインです。そこに置いてあるひし形の奴が、その時間でのそのぱらーめたーの値ですね。
先日blenderでシェイプキーを触られたときに数値を変更すると、その値に合わせて顔が変形されたのを覚えているでしょうか?
今回このタイムライン上で、その地点でどんな数値をとっているか、をその時間ごとに記録します。
この時間の玉は、ドラッグで移動可能です。また一列になっている同じ時刻ひし形は一番上の空欄の列のひし形をドラッグするとまとめて動かせます。今回のように両目同じ感じに動かしたい場合は使いましょう。
そして、再生するときには、その間を補完するように時間に合わせて数字が変わっていくことで、アニメーションが成立するようです。また Ctrl + C でコピー Ctrl + Vで貼り付けとかもできるので、同じ状態を置きたい(開いてるところとか)の場合は使うと便利です。ちなみに貼り付けはタイムラインの現在地、(赤いライン)のとこに置かれるみたいです。
横にある数字のところがその時点でのそのアニメーションの値です。
まず最初の0.00のところは、瞼を開いているはずですので、0にします。(たぶん初期値)
次に0.2位のところに右クリックで Add Key をしてひし形を増やします。そして、その時点での値を 100 にします(最大値1だと思って30分ぐらい悩んだ)。すると目を閉じるのがわかると思います。
でもって、この状態で、左上の再生ボタンを押しますと、アニメーションしてるのが確認できるはずです。
ちなみに瞬きは、開くより閉じる方が早いらしいですので、その辺意識して、閉じてる
100を左に寄せるとそれっぽくなるとか聞いたです。
あと瞬きの感覚が同じではあれですので適当に間をかえて、何回か繰り返すようにしとくです。
ちなみに私はこの時は、まずタイムラインの上でホイール(マウスの回るやつ、真ん中にちょこんとあるやつ)を回して全体の時間を増やします。Shiftをおしながらクリックで、瞼が開いてる閉じて開いてまでの、三つのひし形両目分を全部選択しておくです。Ctrl + C でコピーするです。タイムラインに置きたいところで右クリックしてAddkeyするです。左上の再生の横のボタンを押すとキーを順番に選択できるので置きたいところまで行くです。Ctrl + V で張り付けるです。って感じで楽しました。
あとは、ちょちょいと再生したり、微調整してアニメーションの完成です!
この辺は個人の感性によるのでおきにいりができるまでがんばーです!
完成しましたらウィンドウは閉じて大丈夫です。
2.瞬き用のアニメーションをアバターに適用する
ではいよいよラストです。
ここまでで、アニメーションの動き、が完成したのですが、これをモデルに設定します。(さっきまでのはあくまでアニメーションするためのファイルを作成してました)
モデルを選択します。
Add Component の Miscellaneous の Animation をクリックします。
すると Animation ってのが増えるです。
Assetのところにさっき作ったアニメーションが増えてるので、それをドラッグして、
Animation の Animation に放り込みましょう。
完成です!
ちなみに、Play Automatically (自動再生)のチェックがついてること、Culling Type が Always Animate (常時表示 つまり、一回終わったらおしまい!ってなってないこと)だけ注意しておきましょう。
画面上部、いつものゲーム開始とかの三角形を押すと動きが見れるはずですので、確認しましょう。
あとは、VRchat用のアバターの設定など、いつものvrchatへのアップロード作業をして、vrchatに持ち込めば瞬きするアバターの完成です!
ちなみに上でも一回上げたですがアバターアップロードは下記記事参照です。
ちょっとだけ補足
変なポーズがついてる
avater discripter (vrchat用アバター設定コンポーネント 灰色の丸いカメラとかの奴)を設定している場合は、アニメーションの時に変なポーズになります。これは、アバターの設定の基本ポーズがそれだからっぽいです。(多分)
アニメーション作る時は、これが邪魔になることもあるので、discriipterは外しとくといいと思いました。
改めて考えたら違いました。vrchat sdk の方は関係なくunityの方のアバターの設定、(fbxのデータを突っ込んだあと、humanoid とかの設定をしてapplyとかやるやつ)が、あるとアバターの標準ポーズが体を抱きかかえるようなポーズになるのが原因な気がします。(たぶん)
なので、その設定をしてない入れたばっかのモデルでアニメーション作るといいかなって思いました。
この辺の話はあまり細かく見れてないので間違ってるかも。ただ変なポーズで困ったら少し考える材料にでもして下さい。(また調べたらしっかり書くかもです。)
Animation設定時の録画について
アニメーションタブの再生とかの横にある、赤い丸があります、案の定録画のやつですが、これがついてると、動かした数字全部覚えちゃう(モデルの場所とかも全部)ので、注意です。
あと、今回設定したアニメーションは、アバターのコンポーネントのところにある数字なら、なんでもアニメーション可能です。(ポジションとか、大きさとか、もっというとシェーダーとかにあるプロパティも可能)ですので、いろいろアニメーションしてみたいですね。
おわりに
またそれなりに長くなってしまいましたので、このあたりで今日はおしまいにするです。
瞬きは、メッシュをいじる手間こそあるものの、割と簡単に実装できて、いきいきとした感じを出せるですので是非やってみてください。(@_@。
次回は、フェイスリップ?(声に合わせて口が動く)のご紹介したいです。
てっでー!(≧◇≦)/
続く!