using UnityEngine;
using System.Collections;


public class MMDSkinsScript : MonoBehaviour
{
	/// <summary>
	/// 全ての頂点データからターゲットとなる頂点インデックス
	/// </summary>
	public int[] targetIndices;

	/// <summary>
	/// モーフ先へのベクトル
	/// </summary>
	public Vector3[] morphTarget;

	/// <summary>
	/// モーフの計算結果
	/// </summary>
	public Vector3[] resultMorph;

	float prev_weight = 0;		// 前フレームのウェイト値

	// 表情が動いたかどうか
	public bool IsAnimate { get { return prev_weight != transform.localPosition.z; } }

	// Use this for initialization
	void Start () 
	{
		resultMorph = new Vector3[morphTarget.Length];
	}
	
	// Update is called once per frame
	public void Compute () 
	{
		// Z軸のローカル移動がそのままweight値になっている
		float weight = transform.localPosition.z;

		// ウェイトの更新がされてなければ計算は行わない
		MMD.Skin.ComputeMorph.Compute(ref resultMorph, morphTarget, weight);

		// 次のフレームに備える
		prev_weight = weight;
	}
}
