private void InitBoneDatas()
        {
            _allBoneDatas = new List <BoneSampleData>();
            BoneSampleUtil.GetBoneSampleDataRecursive(gameObject, _boneRoot, string.Empty, (from joint in _allJointDatas select joint.transform).ToArray(), _allBoneDatas);

            foreach (var boneData in _allBoneDatas)
            {
                boneData.matrixes = new Matrix4x4[_clips.Length][];
            }
        }
        private void Init()
        {
            _isSampling = false;

            _exposedJoints = new List <string>()
            {
                "bip001 pelvis", "right_weapon", "~boxbone01"
            };
            _sampleParams = new List <SampleParam>();

            _animation  = GetComponent <Animation>();
            _clips      = BoneSampleUtil.GetClips(_animation);
            _curveDatas = new ClipCurveData[_clips.Length][];

            _boneRoot       = transform.Find(Consts.BONE_ROOT_NAME);
            _rootMotionNode = transform.Find(Consts.ROOT_MOTION_NAME);
            InitJointDatas();
            InitBoneDatas();
            InitBindPose();
            InitRootMotion();
            GetAllFrameCount();
        }