private void LockOn() { CharFemale character = instance.female; if (character != null) { CharBody body = character.chaBody; string prefix = "cf_"; if (!cameraTarget) { cameraTarget = body.objBone.transform.FindLoop(prefix + boneList[0]); } else { for (int i = 0; i < boneList.Length; i++) { if (cameraTarget.name == prefix + boneList[i]) { string boneName = boneList.ElementAtOrDefault(i + 1) != null ? prefix + boneList[i + 1] : prefix + boneList[0]; cameraTarget = body.objBone.transform.FindLoop(boneName); break; } } } if (lastBonePos == null) { lastBonePos = camera.transBase.InverseTransformPoint(cameraTarget.transform.position); } normalCameraMoveSpeed = camera.moveSpeed; camera.moveSpeed = 0.0f; CreateInfoMsg("Locked to \"" + cameraTarget.name + "\""); } }
private void AddActor(CharBody member) { if (!member.GetComponent <Marker>()) { _Actors.Add(new SexyActor(member)); } }
public static void Register(CharBody actor) { actor.getIK().solver.OnPostInitiate += new IKSolver.UpdateDelegate(PostInitiateCalled); foreach (IKEffector effector in actor.getIK().solver.effectors) { _effectorsToActors.Add(new EffectorAndActor(effector, actor)); } }
public static void MakeVisible(CharBody actor) { foreach (IKEffector effector in actor.getIK().solver.effectors) { //effector.target = effector.bone; GameObject.CreatePrimitive(PrimitiveType.Cube).AddComponent <EffectorVisible>().reference = effector; GameObject.CreatePrimitive(PrimitiveType.Cube).AddComponent <BoneVisible>().reference = effector; } }
private void SetNeckLook(CharBody currentBody, NECK_LOOK_TYPE_VER2 necktype) { for (int i = 0; i < currentBody.neckLookCtrl.neckLookScript.neckTypeStates.Length; i++) { if (currentBody.neckLookCtrl.neckLookScript.neckTypeStates[i].lookType == necktype) { currentBody.neckLookCtrl.ptnNo = i; return; } } }
private void SetEyeLook(CharBody currentBody, EYE_LOOK_TYPE eyetype) { for (int i = 0; i < currentBody.eyeLookCtrl.eyeLookScript.eyeTypeStates.Length; i++) { if (currentBody.eyeLookCtrl.eyeLookScript.eyeTypeStates[i].lookType == eyetype) { currentBody.eyeLookCtrl.ptnNo = i; return; } } }
public static Dictionary <FullBodyBipedEffector, IKEffector> GetEffectors(CharBody actor) { Dictionary <FullBodyBipedEffector, IKEffector> dict = new Dictionary <FullBodyBipedEffector, IKEffector>(); // main game does not have ik set...................................... Logger.Info("actor ik={0}", actor.getIK()); dict.Add(FullBodyBipedEffector.LeftHand, actor.getIK().solver.leftHandEffector); dict.Add(FullBodyBipedEffector.LeftShoulder, actor.getIK().solver.leftShoulderEffector); dict.Add(FullBodyBipedEffector.LeftThigh, actor.getIK().solver.leftThighEffector); dict.Add(FullBodyBipedEffector.LeftFoot, actor.getIK().solver.leftFootEffector); dict.Add(FullBodyBipedEffector.RightHand, actor.getIK().solver.rightHandEffector); dict.Add(FullBodyBipedEffector.RightShoulder, actor.getIK().solver.rightShoulderEffector); dict.Add(FullBodyBipedEffector.RightThigh, actor.getIK().solver.rightThighEffector); dict.Add(FullBodyBipedEffector.RightFoot, actor.getIK().solver.rightFootEffector); return(dict); }
private int GetLockOnTarget() { StudioChara character = instance.CurrentChara; if (character != null) { CharBody body = character.body; string prefix = character is StudioFemale ? "cf_" : "cm_"; for (int i = 0; i < boneList.Length; i++) { if (cameraTarget.name == prefix + boneList[i]) { return(i); } } } return(-1); }
private void LockOn() { StudioChara character = instance.CurrentChara; if (character != null) { int newHash = character.GetHashCode(); if (characterHash != newHash) { cameraTarget = null; } characterHash = newHash; CharBody body = character.body; string prefix = character is StudioFemale ? "cf_" : "cm_"; if (!cameraTarget) { cameraTarget = body.objBone.transform.FindLoop(prefix + boneList[0]); } else { for (int i = 0; i < boneList.Length; i++) { if (cameraTarget.name == prefix + boneList[i]) { string boneName = boneList.ElementAtOrDefault(i + 1) != null ? prefix + boneList[i + 1] : prefix + boneList[0]; cameraTarget = body.objBone.transform.FindLoop(boneName); break; } } } if (lastBonePos == null) { lastBonePos = cameraTarget.transform.position; } normalCameraMoveSpeed = camera.moveSpeed; camera.moveSpeed = 0.0f; CreateInfoMsg("Locked to \"" + cameraTarget.name + "\""); } }
static bool Prefix(ref byte _sex, CharBody __instance, ref bool __result) { if (__instance.customTexCtrlBody != null) { __instance.customTexCtrlBody.Release(); Traverse.Create(__instance).Property("customTexCtrlBody").SetValue(null); } string text = (_sex != 0) ? "chara/cf_m_base.unity3d" : "chara/cm_m_base.unity3d"; string drawMatName = (_sex != 0) ? "cf_m_body" : "cm_m_body"; string createMatName = (_sex != 0) ? "cf_m_body_create" : "cm_m_body_create"; Traverse.Create(__instance).Property("customTexCtrlBody").SetValue(new CustomTextureControl()); int num = HarmonyPatch_Config.BasicSettings.enable4KSkinDiffuse ? 4096 : 1024; __instance.customTexCtrlBody.Initialize(text, drawMatName, text, createMatName, num, num); __result = true; return(false); }
private void LockOn(int listItem) { StudioChara character = instance.CurrentChara; if (character != null) { characterHash = character.GetHashCode(); CharBody body = character.body; string prefix = character is StudioFemale ? "cf_" : "cm_"; cameraTarget = body.objBone.transform.FindLoop(prefix + boneList[listItem]); if (lastBonePos == null) { lastBonePos = cameraTarget.transform.position; } normalCameraMoveSpeed = camera.moveSpeed; camera.moveSpeed = 0.0f; CreateInfoMsg("Locked to \"" + cameraTarget.name + "\""); } }
private void Apply(CharBody body) { CameraEnabled = false; if (!currentHairState) { ShowHair(true); } currentBody = body; FindNLR(); angle = Vector2.zero; rot = Vector3.zero; offset = currentBody.chaInfo.Sex == 0 ? MALE_OFFSET : FEMALE_OFFSET; UpdateCamPos(); if (!SHOW_HAIR) { ShowHair(false); } povActive = true; }
protected void Restore() { if (currentBody && !currentHairState) { ShowHair(true); } currentBody = null; if (Camera.main) { Camera.main.fieldOfView = lastFOV; Camera.main.nearClipPlane = lastNearClip; Camera.main.transform.rotation = lastRotation; Camera.main.transform.position = lastPosition; } CameraEnabled = true; DepthOfField = lastDOF; Shield = hideObstacle; povActive = false; }
public EffectorAndActor(IKEffector effector, CharBody actor) { Effector = effector; Actor = actor; }