public FkArmRotater(FkBone spine1, FkBone spine2, FkBone arm, FkBone armAno) { _spine1 = spine1; _spine2 = spine2; _arm = arm; _armAno = armAno; }
private void InnerUpdate() { if (Input.GetKey(KeyCode.LeftControl) && Input.GetMouseButtonDown(0)) { var minDist = double.MaxValue; FkBone.FkBone minBone = null; FkCharaMgr.FindSelectCharas().Foreach(c => { c.Bones().Foreach(b => { var screenPoint = CameraMgr.MainCamera().WorldToScreenPoint(b.Transform.position); var dist = (screenPoint - Input.mousePosition).magnitude; if (dist < minDist) { minDist = dist; minBone = b; } }); }); if (minBone != null) { Context.GuideObjectManager().SetSelectObject(minBone.GuideObject, false); } } }
private void AttachLimbMarker() { var chara = FkCharaMgr.FindSelectChara(); if (chara == null) { return; } chara.Limbs().Foreach(b => { var marker = BoneMarker.Create(b.Transform); _limbMarkers.Add(marker); marker.OnDrag = (m) => { var screenVec = m.MouseEndPos - m.MouseStartPos; var pos = Kit.MapScreenVecToWorld(screenVec, b.Transform.position); FkJointAssist.MoveEnd(b.GuideObject, pos); }; marker.OnMidClick = (m) => { // ClearLimbMarker(); DisableLimbMarker(); _follower = b; AttachSelectorMarker(); }; marker.OnRightClick = (m) => { ToggleLockBone(b, m); }; marker.OnLeftDown = (m) => { UndoRedoHelper.Record(); }; marker.OnLeftUp = (m) => { UndoRedoHelper.Finish(); }; }); }
public FkChara(Transform root) { _root = CreateBone(root); if (!IsMale() && !IsFemale()) { throw new Exception("Invalid Root"); } var hips = root.Find("BodyTop/p_cf_anim/cf_J_Root/cf_N_height/cf_J_Hips"); if (hips == null) { hips = root.Find("BodyTop/p_cm_anim/cm_J_Root/cm_N_height/cm_J_Hips"); } LoopChildren(hips); AttachRelation(); }
private void ToggleLockBone(FkBone.FkBone bone, BoneMarker m) { if (_dicLockRecords.ContainsKey(bone)) { _dicLockRecords.Remove(bone); m.OnDrag = null; m.SetDefaultColor(); } else { var record = new LockRecord(); record.LockedPos = bone.Transform.position; record.LockedRot = bone.Transform.rotation; _dicLockRecords.Add(bone, record); m.SetColor(_lockedColor); } }
private void LoopChildren(Transform transform) { if (transform.name == "pcAnimator") { return; } switch (transform.name) { case "cm_J_Head": case "cf_J_Head": _head = CreateBone(transform); break; case "cm_J_Neck": case "cf_J_Neck": _neck = CreateBone(transform); break; case "cm_J_Spine01": case "cf_J_Spine01": _spine01 = CreateBone(transform); break; case "cm_J_Spine02": case "cf_J_Spine02": _spine02 = CreateBone(transform); break; case "cm_J_Shoulder_L": case "cf_J_Shoulder_L": _shoulderL = CreateBone(transform); break; case "cm_J_Shoulder_R": case "cf_J_Shoulder_R": _shoulderR = CreateBone(transform); break; case "cm_J_ArmUp00_L": case "cf_J_ArmUp00_L": _armUp00L = CreateBone(transform); break; case "cm_J_ArmUp00_R": case "cf_J_ArmUp00_R": _armUp00R = CreateBone(transform); break; case "cm_J_ArmLow01_L": case "cf_J_ArmLow01_L": _armLow01L = CreateBone(transform); break; case "cm_J_ArmLow01_R": case "cf_J_ArmLow01_R": _armLow01R = CreateBone(transform); break; case "cm_J_Hand_L": case "cf_J_Hand_L": _handL = CreateBone(transform); break; case "cm_J_Hand_R": case "cf_J_Hand_R": _handR = CreateBone(transform); break; case "cm_J_Hips": case "cf_J_Hips": _hips = CreateBone(transform); break; case "cm_J_Kosi01": case "cf_J_Kosi01": _kosi01 = CreateBone(transform); break; case "cm_J_LegUp00_L": case "cf_J_LegUp00_L": _legUp00L = CreateBone(transform); break; case "cm_J_LegUp00_R": case "cf_J_LegUp00_R": _legUp00R = CreateBone(transform); break; case "cm_J_LegLow01_L": case "cf_J_LegLow01_L": _legLow01L = CreateBone(transform); break; case "cm_J_LegLow01_R": case "cf_J_LegLow01_R": _legLow01R = CreateBone(transform); break; case "cm_J_Foot01_L": case "cf_J_Foot01_L": _foot01L = CreateBone(transform); break; case "cm_J_Foot01_R": case "cf_J_Foot01_R": _foot01R = CreateBone(transform); break; case "cm_J_Toes01_L": case "cf_J_Toes01_L": _toes01L = CreateBone(transform); break; case "cm_J_Toes01_R": case "cf_J_Toes01_R": _toes01R = CreateBone(transform); break; default: CheckFinger(transform); break; } for (var i = 0; i < transform.childCount; i++) { LoopChildren(transform.GetChild(i)); } }
public FkHeadRotater(FkBone spine1, FkBone spine2, FkBone neck) { _spine1 = spine1; _spine2 = spine2; _neck = neck; }