🥺
VRM1.0表情変更スクリプト
VRM1.0の顔面の表情についてです。
公式のページより
表情
目線
プログラム
表情のキーの確認でコンパイルだけ通しました。
それぞれの表情にweightは0.0〜1.0を設定し適切なタイミングで変えてください。
表情が崩れないように制御(Override)する仕組みがあるので、組み合わせによっては変わらない場合もあります。
なお、ここでは標準の表情のみでカスタムのは扱いません。
public class MyExpressions : MonoBehaviour
{
// Vrm10Instanceはvrm10にアッタッチされてる。
[SerializeField] private Vrm10Instance vrm;
private Vrm10RuntimeExpression vrm10RuntimeExpression;
void Start()
{
vrm10RuntimeExpression = vrm.Runtime.Expression;
// 感情
vrm10RuntimeExpression.SetWeight(ExpressionKey.Happy, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.Angry, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.Sad, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.Relaxed, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.Surprised, 1f);
// 視線
vrm10RuntimeExpression.SetWeight(ExpressionKey.LookUp, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.LookDown, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.LookLeft, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.LookRight, 1f);
// 瞬き
vrm10RuntimeExpression.SetWeight(ExpressionKey.Blink, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.BlinkLeft, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.BlinkRight, 1f);
// 口(リップシンク)
vrm10RuntimeExpression.SetWeight(ExpressionKey.Aa, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.Ih, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.Ou, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.Ee, 1f);
vrm10RuntimeExpression.SetWeight(ExpressionKey.Oh, 1f);
// 後方互換性のため
vrm10RuntimeExpression.SetWeight(ExpressionKey.Neutral, 1f);
}
}
Discussion