// Start is called before the first frame update void Awake() { // 床にこのスクリプトをアタッチしているものとする floorTransform = transform; if (robotRoot) { PreMaidIKController ikController = robotRoot.GetComponent <PreMaidIKController>(); if (ikController) { ModelJoint[] joints = robotRoot.GetComponentsInChildren <ModelJoint>(); Transform leftFoot = null; Transform rightFoot = null; foreach (var joint in joints) { if (joint.ServoID.Equals("1C")) { // 左足関節が見つかった leftFoot = joint.transform; } else if (joint.ServoID.Equals("1A")) { rightFoot = joint.transform; } } if (leftFoot) { var pos = leftFoot.position; pos.y = floorTransform.position.y; var obj = new GameObject("LeftFootTarget"); obj.transform.position = pos; //obj.transform.rotation = leftFootEnd.rotation; obj.transform.rotation = robotRoot.rotation; obj.transform.parent = floorTransform; ikController.leftFootTarget = obj.transform; } if (rightFoot) { var pos = rightFoot.position; pos.y = floorTransform.position.y; var obj = new GameObject("RightFootTarget"); obj.transform.position = pos; //obj.transform.rotation = rightFootEnd.rotation; obj.transform.rotation = robotRoot.rotation; obj.transform.parent = floorTransform; ikController.rightFootTarget = obj.transform; } } } }
// Start is called before the first frame update void Start() { if (!ikController) { ikController = GetComponent <PreMaidIKController>(); } if (!previewModel) { previewModel = ikController.transform; } if (calibrationText) { calibrationText.gameObject.SetActive(false); } originalHeadPosition = ikController.headTransform.position; originalRightHandPosition = ikController.rightHandTransform.position; originalLeftHandPosition = ikController.leftHandTransform.position; if (previewModel) { originalModelPosition = previewModel.position; originalModelRotation = previewModel.rotation; } //Debug.Log(originalHeadPosition + " / " + originalRightHandPosition + " / " + originalLeftHandPosition); Vector3 lossyScale = ikController.transform.lossyScale; Vector3 vec = ikController.transform.position - ikController.headTransform.position; headToRoot = new Vector3(vec.x / lossyScale.x, vec.y / lossyScale.y, vec.z / lossyScale.z); }