CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【VRChat】アバター改変必須知識「シェイプキー」とは?
こんにちは!
こちらの記事では、VRChatのアバター改変には必須級となっているシェイプキーについて紹介していきたいと思います!
シェイプキーとは何なのか、実際にシェイプキーを操作しアバターの表情を変更する手順までを紹介しますので、参考にしてみてください。
シェイプキーとは?
シェイプキーとはメッシュを構成している頂点の移動を記録しておき、後から数値的に変更することでアニメーションを容易にしてくれるものです。
シェイプキーという呼び方はBlenderのみの言い方で、Unityではブレンドシェイプと呼ばれています。
Blender | Unity | MMDなど |
シェイプキー | ブレンドシェイプ | 表情モーフ |
この記事ではUnityを扱いますので、以降ブレンドシェイプと呼び方を変えて説明していきます。
ブレンドシェイプを操作しよう
モデルをUnityに取り込もう
Unityを開きます。
上のメニューバーからAssets/Import Package/Custom Packageを選びます。
ファイル選択画面が出てくるので、事前に用意しておいたモデルのunitypackageを選びます。
VRChat用のモデルデータを持っていない場合はこちらの記事をチェック
ブレンドシェイプの場所
ブレンドシェイプはオブジェクト内にあります。
インポートしたモデルをシーンに配置し、変更したいメッシュ変形の含まれるオブジェクトを選択します
表情の場合は顔のオブジェクトになります。
Inspector内のSkinned Mesh Rendererというタブの中にBlend Shapesという項目があります。
スライドバーを左右させることで、対応のブレンドシェイプを操作することができます。
アバターの表情を変更しよう
それでは実際にVRChatで使用できるよう、アバターの表情を変えてみましょう。
VRChatへのアバターアップロードが初めての場合は下記のリンクを参照。「VCC」を導入したうえで、モデルをインポートしましょう。
表情を制御しているアニメーションコントローラーを探す
VRC対応の設定がされているモデルを選択すると、Inspector内にVRC Avatar Descriptior(Script)というタブが見つかります。
その中のPlayable Layersを開き、Baseの中のFX項目にあるのがこのアバターの表情をコントロールしているアニメーションコントローラーです。
VRChatの表情はハンドジェスチャーと紐づけてありますが、Gestureに登録されているアニメーションコントローラーよりはFXの方が表情制御に使われていることが多いようです。FXに表情制御のアニメーションコントローラーがない場合は、Gestureを見てみることをオススメします。
アニメーションコントローラーを選択し、SceneからAnimatorタブに変更するとアニメーションコントローラーの中身が見れます。
First,Open…となっているところがハンドサイン別の表情の収納場所です。
今から作る表情を当てはめたいハンドサインを選択します。
アニメーションを新規作成
ハンドサインを選択し、Inspector内からMotionの項目にあるアニメーションを選択します。
Projectタブのほうで選択したアニメーションの場所が表示されるので、Ctrl+Dでアニメーションを複製します。
複製したアニメーションは分かりやすい名前に変えたあと、ダブルクリックでAnimationタブに移ります。
Animationの数値でボーンやブレンドシェイプが操作できるので、ここの数値を操作して好みの表情を作ります。
ここで数値を変更してもハンドサインを変更したときに出てくる表情を編集しているので、画面上ではなにも変わったようには見えません。どこの数値をどれだけ変更するのかは、上記で解説した顔オブジェクトを選択してブレンドシェイプを直接いじる方法で確認するといいと思います。
アニメーションはフレーム0と1の二つの場所にキーが設定してあります。どちらにも同じ数値を入れましょう。
面倒だった場合は、0のフレームで数値を作り、1は削除、0を全選択して1にコピーしましょう。
アニメーションコントローラーに設定
表情を登録したアニメーションを作成できたので、アニメーションコントローラーに設定しましょう。
さきほど表示していたハンドサインを選択し、Inspector内のMotionに、作成したアニメーションを設定します。
以上で表情の変更は終了です。
VRChatにアバターをアップロードして、表情が変わるかテストをしてみましょう。
ブレンドシェイプが反映されないときはココをチェック
表情を変更してアバターをアップロードしたのに反映されない!というときは、こちらを確認してみてください。
アバターマスクを外す
アバターマスクというものが設定されていると反映されないことがあるようです。
マスクの確認の仕方と外し方は、アニメーションコントローラーを確認します。
レイヤーのところにMのマークがあればマスクがかかっているということなので、マスク設定されている黄色線の部分を削除します。
アニメーションコントローラーを確認
マスク削除で上手くいかない場合はFXレイヤーのアニメーションコントローラーを確認します。
Idleに設定されているアニメーションが悪さをしていることがあるので、ここを修正していきます。
どこか適当なところに新規アニメーションを作成し、分かりやすい名前にしておきます。
アニメーションの中身は空のまま、Idle内のアニメーションに置き換えます。
Blenderから自作シェイプキーを持っていく方法
用意されているブレンドシェイプだけでは物足りない、自作のモデルにもブレンドシェイプを仕込みたい。
そういう場合はBlenderを使用しましょう。Blenderで3Dモデルを作成し、シェイプキーを作成します。
Blenderでのシェイプキー作成方法に関しては下記の記事を参考にしてみてください。
まとめ
シェイプキー、またはブレンドシェイプと呼ばれるものを使ってのアバター表情改変についてでした。
シェイプキーは表情だけではなく、物の位置や大きさなども記録できるので、様々なアバターに対応するためにアクセサリーに仕込まれていることも多いようです。
BOOTHなどの販売ページを見てみると、シェイプキーがどういう風に設定されているのかも書かれていたりするので、アバター購入の際にはぜひチェックしてみてください。