// Start is called before the first frame update void Start() { _controller = GetComponent <PreMaid.RemoteController.PreMaidControllerSPUP>(); List <TMP_Dropdown.OptionData> serialPortNamesList = new List <TMP_Dropdown.OptionData>(); var portNames = SerialPortUtility.SerialPortUtilityPro.GetConnectedDeviceList(SerialPortUtility.SerialPortUtilityPro.OpenSystem.BluetoothSSP); if (portNames != null) { foreach (var VARIABLE in portNames) { TMP_Dropdown.OptionData optionData = new TMP_Dropdown.OptionData(VARIABLE.SerialNumber); serialPortNamesList.Add(optionData); Debug.Log(VARIABLE); } _serialPortsDropdown.ClearOptions(); _serialPortsDropdown.AddOptions(serialPortNamesList); } else { // Android実機でのデバッグ用 serialPortNamesList.Add(new TMP_Dropdown.OptionData("RNBT-4FFA")); serialPortNamesList.Add(new TMP_Dropdown.OptionData("RNBT-50D6")); serialPortNamesList.Add(new TMP_Dropdown.OptionData("RNBT-9C50")); serialPortNamesList.Add(new TMP_Dropdown.OptionData("RNBT-94F6")); _serialPortsDropdown.ClearOptions(); _serialPortsDropdown.AddOptions(serialPortNamesList); _serialPortsDropdown.SetValueWithoutNotify(0); } // 上半身だけを操作対象とする _controller.jointMask = (uint)(PreMaidControllerSPUP.JointMask.UpperBody); // 関節速度制限 ModelJoint.SetAllJointsMaxSpeed(90f); //対象のAnimatorにBoneにHumanoidModelJoint.csのアタッチ漏れがあるかもしれない //なので、一旦全部検索して、見つからなかったサーボ情報はspineに全部動的にアタッチする Transform spineBone = target.GetBoneTransform(HumanBodyBones.Spine); //仮でspineにでも付けておこう if (target != null) { var joints = target.GetComponentsInChildren <HumanoidModelJoint>(); foreach (PreMaidServo.ServoPosition item in Enum.GetValues(typeof(PreMaidServo.ServoPosition))) { if (Array.FindIndex(joints, joint => joint.TargetServo == item) == -1) { var jointScript = spineBone.gameObject.AddComponent <HumanoidModelJoint>(); jointScript.TargetServo = item; } } // 手首だけは最高速度を高くしておく var modeljoints = target.GetComponentsInChildren <ModelJoint>(); foreach (ModelJoint j in modeljoints) { if (j.ServoID == "15" || j.ServoID == "17") { j.maxSpeed = 180f; } } } _joints = target.GetComponentsInChildren <HumanoidModelJoint>(); }
// Start is called before the first frame update void Start() { _preMaidPoseController = GetComponent <PreMaidControllerSPUP>(); _preMaidPoseController.OnReceivedFromPreMaidAI += OnReceivedFromPreMaidAi; }