どうも初めまして、F-kunです。
A-kun ひとり AdventCaleder 6日目の記事です。
はじめに
今回は、VRM1.0での表情変更について解説します。
VRM1.0での表情変更は標準で登録されている表情に変更する方法があります。他にも、VRM1.0にはBlendShapeがSkkinedMeshRendererが残っているので、これを変更することでより詳細に表情を変更することができます。
今回はこれらをスクリプトから操作する方法についてメモしておきます。
VRM10Instanceから操作
アバターのルートにあるVRM10Instanceから操作する方法です。
動的に生成されたアバターに対しても操作が可能です。一方、事前に登録された表情での操作になるため、VRM作成者が表情を登録していない場合は、この方法では操作できません。
this.GetComponent<Vrm10Instance>().Runtime.Expression.SeiWeight(ExpressionKey expressionKey, float weight);
SkkindMeshRendererから操作
skinnedMeshRendererから操作する方法です。
BlendShapeを操作することで、モデル作成者が登録したBlendShapeを直接操作することができます。
int index = skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex(blendShapeName);
GameObject.Find("Face").GetComponent<SkinnedMeshRenderer>().SetBlendShapeWeight(int index, float value);
参考文献