using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace VRM.AnimationBridgeSample
{
///
/// VRMからAnimatorを取り外してからアタッチしてください。
/// VRM.Samples/Scenes/AnimationBridgeSample でテストできます。
///
/// Animatorがアタッチされていると、Animatorに負けて?動作しません。
///
[RequireComponent(typeof(Animation))]
public class AnimationBridge : MonoBehaviour
{
VRMBlendShapeProxy m_proxy;
void OnEnable()
{
m_proxy = GetComponent();
if (!m_proxy)
{
this.enabled = false;
}
}
public float Lip_A;
public float Lip_I;
public float Lip_U;
public float Lip_E;
public float Lip_O;
public float Blink;
public float Expression_Joy;
public float Expression_Angry;
public float Expression_Sorrow;
public float Expression_Fun;
void Update()
{
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.A), Lip_A);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.I), Lip_I);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.U), Lip_U);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.E), Lip_E);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.O), Lip_O);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.Blink), Blink);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.Joy), Expression_Joy);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.Angry), Expression_Angry);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.Sorrow), Expression_Sorrow);
m_proxy.AccumulateValue(BlendShapeKey.CreateFromPreset(BlendShapePreset.Fun), Expression_Fun);
}
void LateUpdate()
{
m_proxy.Apply();
}
}
}