void CopyHandPoseTargetToHandModel()
    {
        targetHandler.GetHumanPose(ref targetPose);

        handModelHandler = new HumanPoseHandler(handModelAnimator.avatar, handModelAnimator.transform);

        HandHumanoidPoseChange(() => {
            for (int i = 0; i < targetPose.muscles.Length; i++)
            {
                var muscleName = HumanTrait.MuscleName[i];
                if (TraitLeftHandPropMap.ContainsKey(muscleName)) //左手ポーズプロパティ
                {
                    handModelPose.muscles[i] = targetPose.muscles[i];
                }
                else if (TraitRightHandPropMap.ContainsKey(muscleName)) //右手ポーズプロパティ
                {
                    handModelPose.muscles[i] = targetPose.muscles[i];
                }
            }
        });
    }
    private void Update()
    {
        float nowAnimationTime = wAnimationWindowHelper.GetCurrentTime();

        //アニメーションがシークされた?
        if (animationTime != nowAnimationTime)
        {
            animationTime = nowAnimationTime;

            CopyHandPoseTargetToHandModel();

            //IKターゲットの位置をリセット
            for (int i = 0; i < handIkTargets.Length; i++)
            {
                handIkTargets[i].position = handIkTargetInitTransforms[i].position;
            }
        }

        //ハンドモデルからターゲットモデルに手のポーズをコピーする
        targetHandler.GetHumanPose(ref targetPose);
        handModelHandler.GetHumanPose(ref handModelPose);

        for (int i = 0; i < targetPose.muscles.Length; i++)
        {
            var muscleName = HumanTrait.MuscleName[i];
            if (TraitLeftHandPropMap.ContainsKey(muscleName)) //左手ポーズプロパティ
            {
                targetPose.muscles[i] = handModelPose.muscles[i];
            }
            else if (TraitRightHandPropMap.ContainsKey(muscleName)) //右手ポーズプロパティ
            {
                targetPose.muscles[i] = handModelPose.muscles[i];
            }
        }

        targetHandler.SetHumanPose(ref handModelPose); //セット
    }