protected override void Reacquire() { base.Reacquire(); if (this.boneInfo == null || this.boneInfo.Length == 0) { return; } FindAssist findAssist = new FindAssist(); findAssist.Initialize(((Component)this).get_transform()); KeyValuePair <string, GameObject> keyValuePair = ((IEnumerable <KeyValuePair <string, GameObject> >)findAssist.dictObjName).FirstOrDefault <KeyValuePair <string, GameObject> >((Func <KeyValuePair <string, GameObject>, bool>)(x => x.Key.Contains("_top"))); if (keyValuePair.Equals((object)new KeyValuePair <string, GameObject>())) { return; } DynamicBone[] components = (DynamicBone[])((Component)this).GetComponents <DynamicBone>(); for (int index = 0; index < this.boneInfo.Length; ++index) { Transform child = keyValuePair.Value.get_transform().GetChild(index); findAssist.Initialize(child); List <DynamicBone> dynamicBoneList = new List <DynamicBone>(); foreach (DynamicBone dynamicBone in components) { DynamicBone n = dynamicBone; if (!((IEnumerable <KeyValuePair <string, GameObject> >)findAssist.dictObjName).FirstOrDefault <KeyValuePair <string, GameObject> >((Func <KeyValuePair <string, GameObject>, bool>)(x => x.Key == ((Object)n.m_Root).get_name())).Equals((object)new KeyValuePair <string, GameObject>())) { dynamicBoneList.Add(n); } } this.boneInfo[index].dynamicBone = dynamicBoneList.ToArray(); } }
public static void InitializeAccessory(GameObject selectedObject) { GameObject hairObject = selectedObject; hairObject.layer = 10; if (hairObject != null) { AIChara.CmpAccessory accComponent = hairObject.GetComponent <AIChara.CmpAccessory>(); if (accComponent == null) { accComponent = hairObject.AddComponent <AIChara.CmpAccessory>(); } FindAssist findAssist = new FindAssist(); findAssist.Initialize(accComponent.transform); accComponent.trfMove01 = findAssist.GetTransformFromName("N_move"); accComponent.trfMove02 = findAssist.GetTransformFromName("N_move2"); Renderer[] renderers = hairObject.GetComponentsInChildren <Renderer>(); accComponent.rendCheckVisible = new Renderer[renderers.Length]; accComponent.rendNormal = new Renderer[renderers.Length]; for (int i = 0; i < renderers.Length; i++) { renderers[i].gameObject.layer = 10; accComponent.useColor01 = true; accComponent.rendCheckVisible[i] = renderers[i]; accComponent.rendNormal[i] = renderers[i]; } } }
private static bool FindAllPatch(FindAssist __instance, Transform trf) { if (!CommonCode.InsideStudio) return true; __instance.dictObjName[trf.name] = trf.gameObject; #if AI || HS2 if (trf.tag != string.Empty) { __instance.dictTagName.TryGetValue(trf.tag, out var tagged); if (tagged == null) __instance.dictTagName.Add(trf.tag, tagged = new List<GameObject>()); if (!tagged.Contains(trf.gameObject)) tagged.Add(trf.gameObject); } #endif var isAccAttachPoint = AccessoryAttachPoints.Contains(trf.name); for (var i = 0; i < trf.childCount; i++) { var child = trf.GetChild(i); if (isAccAttachPoint && child.GetComponent<ChaControl>()) continue; FindAllPatch(__instance, child); } return false; }
public void CreateReferenceInfo(ulong flags, GameObject objRef) { this.ReleaseRefObject(flags); if (Object.op_Equality((Object)null, (Object)objRef)) { return; } FindAssist findAssist = new FindAssist(); findAssist.Initialize(objRef.get_transform()); if ((long)flags >= 7L && (long)flags <= 10L) { switch (flags) { case 7: this.dictRefObj[5] = findAssist.GetObjectFromName("o_bra_a"); this.dictRefObj[6] = findAssist.GetObjectFromName("o_bra_b"); this.dictRefObj[7] = findAssist.GetObjectFromName("o_shorts_a"); return; case 8: this.dictRefObj[8] = findAssist.GetObjectFromName("o_shorts_a"); return; case 10: this.dictRefObj[9] = findAssist.GetObjectFromName("o_panst_a"); return; } } if (flags == 1UL || flags == 2UL) { ; } }
public static GameObject[] GetClothParts(this FindAssist assist, Cloth part) { var names = assist.DictObjName; GameObject[] output = { }; // TODO: Initialize regex operators. switch (part) { case Cloth.FirstAccessory: output = (from x in assist.DictObjName where x.Key.StartsWith("op1") select x.Value).ToArray(); break; case Cloth.SecondAccessory: output = (from x in assist.DictObjName where x.Key.StartsWith("op2") select x.Value).ToArray(); break; case Cloth.Top: break; case Cloth.Bot: break; case Cloth.TopHalf: break; case Cloth.BotHalf: break; default: throw new ArgumentOutOfRangeException(nameof(part), part, null); } return(output); }
private DynamicBoneCollider AddCollider(GameObject go, string bone, float sx = 1, float sy = 1, float sz = 1, Vector3 r = new Vector3(), Vector3 t = new Vector3()) { FindAssist fa = new FindAssist(); fa.Initialize(go.transform); var hitbone = bone + "_hit"; var bo = fa.GetObjectFromName(hitbone); if (bo != null) { return(null); } // some collider is already in there, so just keep that var parent = fa.GetObjectFromName(bone); if (parent == null) { return(null); } // build the collider var nb = new GameObject(hitbone); var col = nb.AddComponent <DynamicBoneCollider>(); col.m_Radius = 0.1f; col.m_Direction = DynamicBoneCollider.Direction.Y; nb.transform.SetParent(parent.transform, false); nb.transform.localScale = new Vector3(sx, sy, sz); nb.transform.localEulerAngles = r; nb.transform.localPosition = t; nb.layer = 12; return(col); }
public override void SetReferenceObject() { FindAssist findAssist = new FindAssist(); findAssist.Initialize(((Component)this).get_transform()); this.targetEtc.objBody = findAssist.GetObjectFromName("o_body_cm"); if (Object.op_Equality((Object)null, (Object)this.targetEtc.objBody)) { this.targetEtc.objBody = findAssist.GetObjectFromName("o_body_cf"); } if (Object.op_Equality((Object)null, (Object)this.targetEtc.objBody)) { this.targetEtc.objBody = findAssist.GetObjectFromName("o_silhouette_cm"); } if (Object.op_Equality((Object)null, (Object)this.targetEtc.objBody)) { this.targetEtc.objBody = findAssist.GetObjectFromName("o_silhouette_cf"); } if (Object.op_Inequality((Object)null, (Object)this.targetEtc.objBody)) { this.targetCustom.rendBody = (Renderer)this.targetEtc.objBody.GetComponent <Renderer>(); } this.targetEtc.objDanTop = findAssist.GetObjectFromName("N_dan"); this.targetEtc.objDanTama = findAssist.GetObjectFromName("cm_o_dan_f"); this.targetEtc.objDanSao = findAssist.GetObjectFromName("cm_o_dan00"); this.targetEtc.objTongue = findAssist.GetObjectFromName("N_tang"); if (Object.op_Inequality((Object)null, (Object)this.targetEtc.objTongue)) { this.targetEtc.rendTongue = (Renderer)this.targetEtc.objTongue.GetComponentInChildren <Renderer>(); } this.targetEtc.objMNPB = findAssist.GetObjectFromName("N_mnpb"); }
public static void CopySameNameTransform(Transform trfDst, Transform trfSrc) { FindAssist findAssist1 = new FindAssist(); findAssist1.Initialize(trfDst); Dictionary <string, GameObject> dictObjName1 = findAssist1.dictObjName; FindAssist findAssist2 = new FindAssist(); findAssist2.Initialize(trfSrc); Dictionary <string, GameObject> dictObjName2 = findAssist2.dictObjName; GameObject gameObject = (GameObject)null; using (Dictionary <string, GameObject> .Enumerator enumerator = dictObjName1.GetEnumerator()) { while (enumerator.MoveNext()) { KeyValuePair <string, GameObject> current = enumerator.Current; if (dictObjName2.TryGetValue(current.Key, out gameObject)) { current.Value.get_transform().set_localPosition(gameObject.get_transform().get_localPosition()); current.Value.get_transform().set_localRotation(gameObject.get_transform().get_localRotation()); current.Value.get_transform().set_localScale(gameObject.get_transform().get_localScale()); } } } }
public static Renderer[][] GetRendererParts(this FindAssist assist, int partIndexes = 3) { var result = new List <Renderer> [partIndexes]; for (var i = partIndexes - 1; i >= 0; i--) { result[i] = new List <Renderer>(); } var regex = new Regex(".*(group|color|col|grp|part)_(0*[0-9]).*"); foreach (var skinnedMeshRenderer in assist.SkinnedMeshRenderers.Values) { var groups = regex.Match(skinnedMeshRenderer.name).Groups; if (int.TryParse(groups[groups.Count - 1].Value, out var rendererSlot)) { if (rendererSlot > 1 && rendererSlot <= partIndexes) { result[rendererSlot - 1].Add(skinnedMeshRenderer); continue; } } result[0].Add(skinnedMeshRenderer); } return(result.Select(x => x.ToArray()).ToArray()); }
public void Setup() { if (Object.op_Equality((Object)null, (Object)this.trfRef) || Object.op_Equality((Object)null, (Object)this.tmpArrow)) { return; } FindAssist findAssist = new FindAssist(); findAssist.Initialize(this.trfRef); this.lstArrow.Clear(); Transform transform = ((Component)this).get_transform().Find("top"); if (Object.op_Implicit((Object)transform)) { ((Object)transform).set_name("delete"); Object.Destroy((Object)((Component)transform).get_gameObject()); } GameObject gameObject1 = new GameObject("top"); gameObject1.get_transform().SetParent(((Component)this).get_transform(), false); for (int index = 0; index < this.bonenames.Length; ++index) { GameObject gameObject2; if (findAssist.dictObjName.TryGetValue(this.bonenames[index], out gameObject2)) { GameObject gameObject3 = (GameObject)Object.Instantiate <GameObject>((M0)this.tmpArrow, gameObject1.get_transform(), false); ((Object)gameObject3).set_name(this.bonenames[index]); this.lstArrow.Add(new DrawArrow.ArrowData() { trfBone = gameObject2.get_transform(), trfArrow = gameObject3.get_transform() }); } } }
public static void TweakBody(ChaControl ctrl, GameObject go) { var bc = new List <DynamicBoneCollider>(); fa = new FindAssist(); fa.Initialize(go.transform); // floor pseudo-collider bc.Add(AddCollider(go, "cf_j_root", sz: 100, t: new Vector3(0, -10.01f, -0.01f))); float titsize = ctrl.chaFile.custom.body.shapeValueBody[(int)BodyShapeIdx.BustSize]; //XXX: maybe skip for small t**s in general? //if (ctrl.sex == 0) return; //if (titsize < 0.2f) return; // bind colliders to hands foreach (var n in "forearm02 arm02 hand".Split(' ')) { bc.Add(AddCollider(go, "cf_s_" + n + "_L", sx: 0.35f, sy: 0.35f, sz: 0.3f)); bc.Add(AddCollider(go, "cf_s_" + n + "_R", sx: 0.35f, sy: 0.35f, sz: 0.3f)); } // large t**s need special case as the standard hitbox morph doesn't like shape values above 1 var cowfactor = System.Math.Max(1f, titsize); // tell the t**s that hands collide it foreach (var tit in go.GetComponentsInChildren <DynamicBone_Ver02>(true)) { if ((tit.Comment != "右胸") && (tit.Comment != "左胸")) { continue; } // register the colliders if not already there foreach (var c in bc) { if (c != null && !tit.Colliders.Contains(c)) { tit.Colliders.Add(c); } } // expand the collision radius for the first two dynbones foreach (var pat in tit.Patterns) { pat.Params[0].CollisionRadius = 0.08f * cowfactor; pat.Params[1].CollisionRadius = 0.06f * cowfactor; } tit.GetType().GetMethod("InitNodeParticle", AccessTools.all).Invoke(tit, null); tit.GetType().GetMethod("SetupParticles", AccessTools.all).Invoke(tit, null); tit.InitLocalPosition(); if ((bool)tit.GetType().GetMethod("IsRefTransform", AccessTools.all).Invoke(tit, null)) { tit.setPtn(0, true); } tit.GetType().GetMethod("InitTransforms", AccessTools.all).Invoke(tit, null); } fa = null; }
private static void SetSkinColor(ChaControl chaControl, ColorMatchPart colorMatchPart, string file) { //get main tex Texture2D mainTexture = CommonLib.LoadAsset <Texture2D>(file, colorMatchPart.MainTex, false, string.Empty); if (mainTexture == null) { return; } //get color mask Texture2D colorMask = CommonLib.LoadAsset <Texture2D>(file, colorMatchPart.ColorMask, false, string.Empty); if (colorMask == null) { return; } //find the game object FindAssist findAssist = new FindAssist(); findAssist.Initialize(chaControl.objBody.transform); GameObject gameObject = findAssist.GetObjectFromName(colorMatchPart.Object); if (gameObject == null) { return; } if (!gameObject.GetComponent <Renderer>().material.HasProperty(ChaShader._MainTex)) { return; } var customTex = new CustomTextureControl(gameObject.transform); customTex.Initialize(file, colorMatchPart.Material, string.Empty, file, colorMatchPart.MaterialCreate, string.Empty, 2048, 2048); customTex.SetMainTexture(mainTexture); customTex.SetColor(ChaShader._Color, chaControl.chaFile.custom.body.skinMainColor); customTex.SetTexture(ChaShader._ColorMask, colorMask); customTex.SetColor(ChaShader._Color2, chaControl.chaFile.custom.body.skinSubColor); //set the new texture var newTex = customTex.RebuildTextureAndSetMaterial(); if (newTex == null) { return; } Material mat = gameObject.GetComponent <Renderer>().material; var mt = mat.GetTexture(ChaShader._MainTex); mat.SetTexture(ChaShader._MainTex, newTex); //Destroy the old texture to prevent memory leak Destroy(mt); }
public override void SetReferenceObject() { FindAssist findAssist = new FindAssist(); findAssist.Initialize(((Component)this).get_transform()); this.targetAccessory.acs_Neck = findAssist.GetTransformFromName("N_Neck"); this.targetAccessory.acs_Chest_f = findAssist.GetTransformFromName("N_Chest_f"); this.targetAccessory.acs_Chest = findAssist.GetTransformFromName("N_Chest"); this.targetAccessory.acs_Tikubi_L = findAssist.GetTransformFromName("N_Tikubi_L"); this.targetAccessory.acs_Tikubi_R = findAssist.GetTransformFromName("N_Tikubi_R"); this.targetAccessory.acs_Back = findAssist.GetTransformFromName("N_Back"); this.targetAccessory.acs_Back_L = findAssist.GetTransformFromName("N_Back_L"); this.targetAccessory.acs_Back_R = findAssist.GetTransformFromName("N_Back_R"); this.targetAccessory.acs_Waist = findAssist.GetTransformFromName("N_Waist"); this.targetAccessory.acs_Waist_f = findAssist.GetTransformFromName("N_Waist_f"); this.targetAccessory.acs_Waist_b = findAssist.GetTransformFromName("N_Waist_b"); this.targetAccessory.acs_Waist_L = findAssist.GetTransformFromName("N_Waist_L"); this.targetAccessory.acs_Waist_R = findAssist.GetTransformFromName("N_Waist_R"); this.targetAccessory.acs_Leg_L = findAssist.GetTransformFromName("N_Leg_L"); this.targetAccessory.acs_Leg_R = findAssist.GetTransformFromName("N_Leg_R"); this.targetAccessory.acs_Knee_L = findAssist.GetTransformFromName("N_Knee_L"); this.targetAccessory.acs_Knee_R = findAssist.GetTransformFromName("N_Knee_R"); this.targetAccessory.acs_Ankle_L = findAssist.GetTransformFromName("N_Ankle_L"); this.targetAccessory.acs_Ankle_R = findAssist.GetTransformFromName("N_Ankle_R"); this.targetAccessory.acs_Foot_L = findAssist.GetTransformFromName("N_Foot_L"); this.targetAccessory.acs_Foot_R = findAssist.GetTransformFromName("N_Foot_R"); this.targetAccessory.acs_Shoulder_L = findAssist.GetTransformFromName("N_Shoulder_L"); this.targetAccessory.acs_Shoulder_R = findAssist.GetTransformFromName("N_Shoulder_R"); this.targetAccessory.acs_Elbo_L = findAssist.GetTransformFromName("N_Elbo_L"); this.targetAccessory.acs_Elbo_R = findAssist.GetTransformFromName("N_Elbo_R"); this.targetAccessory.acs_Arm_L = findAssist.GetTransformFromName("N_Arm_L"); this.targetAccessory.acs_Arm_R = findAssist.GetTransformFromName("N_Arm_R"); this.targetAccessory.acs_Wrist_L = findAssist.GetTransformFromName("N_Wrist_L"); this.targetAccessory.acs_Wrist_R = findAssist.GetTransformFromName("N_Wrist_R"); this.targetAccessory.acs_Hand_L = findAssist.GetTransformFromName("N_Hand_L"); this.targetAccessory.acs_Hand_R = findAssist.GetTransformFromName("N_Hand_R"); this.targetAccessory.acs_Index_L = findAssist.GetTransformFromName("N_Index_L"); this.targetAccessory.acs_Index_R = findAssist.GetTransformFromName("N_Index_R"); this.targetAccessory.acs_Middle_L = findAssist.GetTransformFromName("N_Middle_L"); this.targetAccessory.acs_Middle_R = findAssist.GetTransformFromName("N_Middle_R"); this.targetAccessory.acs_Ring_L = findAssist.GetTransformFromName("N_Ring_L"); this.targetAccessory.acs_Ring_R = findAssist.GetTransformFromName("N_Ring_R"); this.targetAccessory.acs_Dan = findAssist.GetTransformFromName("N_Dan"); this.targetAccessory.acs_Kokan = findAssist.GetTransformFromName("N_Kokan"); this.targetAccessory.acs_Ana = findAssist.GetTransformFromName("N_Ana"); this.targetEtc.trfRoot = findAssist.GetTransformFromName("cf_J_Hips"); this.targetEtc.trfHeadParent = findAssist.GetTransformFromName("cf_J_Head_s"); this.targetEtc.trfNeckLookTarget = findAssist.GetTransformFromName("cf_J_Spine03"); this.targetEtc.trfAnaCorrect = findAssist.GetTransformFromName("cf_J_Ana"); this.targetEtc.trf_k_shoulderL_00 = findAssist.GetTransformFromName("k_f_shoulderL_00"); this.targetEtc.trf_k_shoulderR_00 = findAssist.GetTransformFromName("k_f_shoulderR_00"); this.targetEtc.trf_k_handL_00 = findAssist.GetTransformFromName("k_f_handL_00"); this.targetEtc.trf_k_handR_00 = findAssist.GetTransformFromName("k_f_handR_00"); this.dbcBust = new DynamicBoneCollider[4]; this.dbcBust[0] = (DynamicBoneCollider)findAssist.GetObjectFromName("cf_hit_Mune02_s_L").GetComponent <DynamicBoneCollider>(); this.dbcBust[1] = (DynamicBoneCollider)findAssist.GetObjectFromName("cf_hit_Mune021_s_L").GetComponent <DynamicBoneCollider>(); this.dbcBust[2] = (DynamicBoneCollider)findAssist.GetObjectFromName("cf_hit_Mune02_s_R").GetComponent <DynamicBoneCollider>(); this.dbcBust[3] = (DynamicBoneCollider)findAssist.GetObjectFromName("cf_hit_Mune021_s_R").GetComponent <DynamicBoneCollider>(); }
public void InitializeItem() { gameObject.layer = 11; if (gameObject == null) { return; } var findAssist = new FindAssist(transform); colInfos = new[] { new ColInfo { renderers = findAssist.Renderers.Values.ToArray(), colliders = findAssist.Colliders.Values.ToArray() } }; var renderersList = new List <Info>(); findAssist.Renderers.Values.ForEach(x => { if (x is MeshRenderer meshRenderer) { renderersList.Add(new Info() { meshRenderer = meshRenderer, materialInfos = meshRenderer.sharedMaterials.Select(mat => { var shader = mat.shader; return(new MaterialInfo() { isColor1 = shader.HasProperty("_Color"), isColor2 = shader.HasProperty("_Color2"), isColor3 = shader.HasProperty("_Color3"), isEmission = shader.HasProperty("_Emission") && mat.GetColor("_Emission") != Color.black }); }).ToArray() }); } x.gameObject.layer = 11; }); renderers = renderersList.ToArray(); InitializePoints(findAssist); overlap = false; autoSize = true; min = Vector3.one * -2; max = Vector3.one * 2; defColor1 = Color.white; defColor2 = Color.white; defColor3 = Color.white; defEmissionColor = Color.black; EditorUtility.SetDirty(this); }
public override void SetReferenceObject() { FindAssist findAssist = new FindAssist(); findAssist.Initialize(((Component)this).get_transform()); this.trfMove01 = findAssist.GetTransformFromName("N_move"); this.trfMove02 = findAssist.GetTransformFromName("N_move2"); this.SetColor(); }
public override void SetReferenceObject() { FindAssist findAssist = new FindAssist(); findAssist.Initialize(((Component)this).get_transform()); this.objTopDef = findAssist.GetObjectFromName("n_top_a"); this.objTopHalf = findAssist.GetObjectFromName("n_top_b"); this.objBotDef = findAssist.GetObjectFromName("n_bot_a"); this.objBotHalf = findAssist.GetObjectFromName("n_bot_b"); this.objOpt01 = ((IEnumerable <KeyValuePair <string, GameObject> >)findAssist.dictObjName).Where <KeyValuePair <string, GameObject> >((Func <KeyValuePair <string, GameObject>, bool>)(x => x.Key.StartsWith("op1"))).Select <KeyValuePair <string, GameObject>, GameObject>((Func <KeyValuePair <string, GameObject>, GameObject>)(x => x.Value)).ToArray <GameObject>(); this.objOpt02 = ((IEnumerable <KeyValuePair <string, GameObject> >)findAssist.dictObjName).Where <KeyValuePair <string, GameObject> >((Func <KeyValuePair <string, GameObject>, bool>)(x => x.Key.StartsWith("op2"))).Select <KeyValuePair <string, GameObject>, GameObject>((Func <KeyValuePair <string, GameObject>, GameObject>)(x => x.Value)).ToArray <GameObject>(); }
private void SetLineVisibility(ColorMatchPart colorMatchPart) { #if KK || EC FindAssist findAssist = new FindAssist(); findAssist.Initialize(ChaControl.objBody.transform); GameObject go = findAssist.GetObjectFromName(colorMatchPart.Object); if (go != null) { go.GetComponent <Renderer>().material.SetFloat(ChaShader._linetexon, ChaControl.chaFile.custom.body.drawAddLine ? 1f : 0f); } #endif }
private void SetSkinGloss(ColorMatchPart colorMatchPart) { #if KK || EC || KKS FindAssist findAssist = new FindAssist(); findAssist.Initialize(ChaControl.objBody.transform); GameObject go = findAssist.GetObjectFromName(colorMatchPart.Object); if (go != null) { go.GetComponent <Renderer>().material.SetFloat(ChaShader._SpecularPower, Mathf.Lerp(ChaControl.chaFile.custom.body.skinGlossPower, 1f, ChaControl.chaFile.status.skinTuyaRate)); } #endif }
private static void SetLineVisibility(ChaControl chaControl, ColorMatchPart colorMatchPart) { FindAssist findAssist = new FindAssist(); findAssist.Initialize(chaControl.objBody.transform); GameObject gameObject = findAssist.GetObjectFromName(colorMatchPart.Object); if (gameObject != null) { gameObject.GetComponent <Renderer>().material.SetFloat(ChaShader._linetexon, chaControl.chaFile.custom.body.drawAddLine ? 1f : 0f); } }
private static void SetSkinGloss(ChaControl chaControl, ColorMatchPart colorMatchPart) { FindAssist findAssist = new FindAssist(); findAssist.Initialize(chaControl.objBody.transform); GameObject gameObject = findAssist.GetObjectFromName(colorMatchPart.Object); if (gameObject != null) { gameObject.GetComponent <Renderer>().material.SetFloat(ChaShader._SpecularPower, Mathf.Lerp(chaControl.chaFile.custom.body.skinGlossPower, 1f, chaControl.chaFile.status.skinTuyaRate)); } }
/// <summary> /// Create Simple gameobjects. /// </summary> /// <returns>False if failed</returns> static internal GameObject CreateSilhouetteGameObjects() { GameObject simpleBodyGameObject = null; try { //不能緩存後拷貝,必須每次都LoadAsset來用 simpleBodyGameObject = CommonLib.LoadAsset <GameObject>("chara/oo_base.unity3d", "p_cm_body_00", true, Singleton <Manager.Character> .Instance.mainManifestName); simpleBodyGameObject.SetActive(false); FindAssist findAssist = new FindAssist(); findAssist.Initialize(simpleBodyGameObject.transform); return(findAssist.GetObjectFromName("n_silhouetteTop")); } finally { GameObject.Destroy(simpleBodyGameObject); } }
public static GameObject GetClothPart(this FindAssist assist, Cloth part) { if (!RegexCollection.TryGetValue(part, out var regex)) { return(null); } var gameObjects = from kv in assist.DictObjName where regex.IsMatch(kv.Key) select kv.Value; var enumerable = gameObjects as GameObject[] ?? gameObjects.ToArray(); return(enumerable.Any() ? enumerable.Single() : null); }
public override void SetReferenceObject() { // Automatically assign the object to layer 10. gameObject.layer = 10; gameObject.GetComponentsInChildren <Animator>().ToList().ForEach(x => { // Destroying assets is not permitted to avoid data loss? DestroyImmediate(x, true); }); gameObject.GetComponentsInChildren <Transform>().ToList().ForEach(x => { // apply same to other objects. x.gameObject.layer = 10; x.localScale = Vector3.one; }); var findAssist = new FindAssist(transform); objTopDef = findAssist.GetClothPart(FindAssistFilter.Cloth.Top); objTopHalf = findAssist.GetClothPart(FindAssistFilter.Cloth.TopHalf); objBotDef = findAssist.GetClothPart(FindAssistFilter.Cloth.Bot); objBotHalf = findAssist.GetClothPart(FindAssistFilter.Cloth.BotHalf); objOpt01 = findAssist.GetClothParts(FindAssistFilter.Cloth.FirstAccessory); objOpt02 = findAssist.GetClothParts(FindAssistFilter.Cloth.SecondAccessory); if (GetComponents <MeshRenderer>().Length > 0) { EditorUtility.DisplayDialog("Warning", "The mesh that you're trying to make as clothing is not SkinnedMeshRenderer!\n" + "Check if your export option is correct and check if your mesh's avatar is 'Generic'\n" + "Clothing mesh MUST NOT include any Renderer that is not Skinned Mesh Renderer.", "okay... I'll export it again."); } var rendererParts = findAssist.GetRendererParts(); rendNormal01 = rendererParts[0]; rendNormal02 = rendererParts[1]; rendNormal03 = rendererParts[2]; foreach (var dynamicBone in GetComponentsInChildren <DynamicBone>(true).Concat(GetComponents <DynamicBone>())) { DestroyImmediate(dynamicBone); } foreach (var skirtBone in findAssist.GetSkirtBones()) { var dynamicBone = gameObject.AddComponent <DynamicBone>(); dynamicBone.m_Root = skirtBone.transform; } }
private static void CreateReferenceImpl(ChaReference __instance, GameObject objRef) { var findAssist = new FindAssist(); findAssist.Initialize(objRef.transform); var dict = (Dictionary <ChaReference.RefObjKey, GameObject>) AccessTools.Field(typeof(ChaReference), "dictRefObj").GetValue(__instance); for (var i = 0; i < AccessoryParentKey.Count; i++) { dict[(ChaReference.RefObjKey)(RefObjKeyOriginalCount + i)] = findAssist.GetObjectFromName(AccessoryParentKey[i]); } }
private static void FindAllPatch(FindAssist __instance, Transform trf) { if (!__instance.dictObjName.ContainsKey(trf.name)) { __instance.dictObjName[trf.name] = trf.gameObject; } if (AccessoryAttachPoints.Contains(trf.name) && trf.parent.gameObject.name != "ct_hairB") { return; } for (var i = 0; i < trf.childCount; i++) { FindAllPatch(__instance, trf.GetChild(i)); } }
public static void CreateReferenceInfoHook(ChaReference __instance, ulong flags, GameObject objRef) { if (null == objRef || (int)(flags - 1UL) != 0) { return; } var findAssist = new FindAssist(); findAssist.Initialize(objRef.transform); var dict = __instance.dictRefObj; for (var i = 0; i < InterfaceEntries.AllBones.Length; i++) { dict[(ChaReference.RefObjKey)(RefObjKeyOriginalCount + i)] = findAssist.GetObjectFromName(InterfaceEntries.AllBones[i]); } }
public override void SetReferenceObject() { FindAssist findAssist = new FindAssist(); findAssist.Initialize(((Component)this).get_transform()); this.targetCustom.rendEyes = new Renderer[2]; GameObject objectFromName1 = findAssist.GetObjectFromName("o_eyebase_L"); if (Object.op_Inequality((Object)null, (Object)objectFromName1)) { this.targetCustom.rendEyes[0] = (Renderer)objectFromName1.GetComponent <Renderer>(); } GameObject objectFromName2 = findAssist.GetObjectFromName("o_eyebase_R"); if (Object.op_Inequality((Object)null, (Object)objectFromName2)) { this.targetCustom.rendEyes[1] = (Renderer)objectFromName2.GetComponent <Renderer>(); } GameObject objectFromName3 = findAssist.GetObjectFromName("o_eyelashes"); if (Object.op_Inequality((Object)null, (Object)objectFromName3)) { this.targetCustom.rendEyelashes = (Renderer)objectFromName3.GetComponent <Renderer>(); } GameObject objectFromName4 = findAssist.GetObjectFromName("o_eyeshadow"); if (Object.op_Inequality((Object)null, (Object)objectFromName4)) { this.targetCustom.rendShadow = (Renderer)objectFromName4.GetComponent <Renderer>(); } GameObject objectFromName5 = findAssist.GetObjectFromName("o_head"); if (Object.op_Inequality((Object)null, (Object)objectFromName5)) { this.targetCustom.rendHead = (Renderer)objectFromName5.GetComponent <Renderer>(); } GameObject objectFromName6 = findAssist.GetObjectFromName("o_namida"); if (Object.op_Inequality((Object)null, (Object)objectFromName6)) { this.targetEtc.rendTears = (Renderer)objectFromName6.GetComponent <Renderer>(); } this.targetEtc.objTongue = findAssist.GetObjectFromName("o_tang"); }
public override void SetReferenceObject() { gameObject.layer = 10; gameObject.GetComponentsInChildren <Transform>().ToList().ForEach(x => x.gameObject.layer = 10); rendNormal = GetComponentsInChildren <Renderer>().ToArray(); var findAssist = new FindAssist(transform); trfMove01 = findAssist.GetTransformFromCandidates(new string[] { "N_move", "root", }); trfMove02 = findAssist.GetTransformFromCandidates(new string[] { "N_move2", "tip", }); SyncMaterialDefaultValues(); }
// Token: 0x06003109 RID: 12553 RVA: 0x00120E00 File Offset: 0x0011F200 public override void SetReferenceObject() { FindAssist findAssist = new FindAssist(); findAssist.Initialize(base.transform); this.targetCustom.rendEyes = new Renderer[2]; GameObject objectFromName = findAssist.GetObjectFromName("o_eyebase_L"); if (objectFromName) { this.targetCustom.rendEyes[0] = objectFromName.GetComponent <Renderer>(); } objectFromName = findAssist.GetObjectFromName("o_eyebase_R"); if (objectFromName) { this.targetCustom.rendEyes[1] = objectFromName.GetComponent <Renderer>(); } objectFromName = findAssist.GetObjectFromName("o_eyelashes"); if (objectFromName) { this.targetCustom.rendEyelashes = objectFromName.GetComponent <Renderer>(); } objectFromName = findAssist.GetObjectFromName("o_eyeshadow"); if (objectFromName) { this.targetCustom.rendShadow = objectFromName.GetComponent <Renderer>(); } objectFromName = findAssist.GetObjectFromName("o_head"); if (objectFromName) { this.targetCustom.rendHead = objectFromName.GetComponent <Renderer>(); } objectFromName = findAssist.GetObjectFromName("o_namida"); if (objectFromName) { this.targetEtc.rendTears = objectFromName.GetComponent <Renderer>(); } this.targetEtc.objTongue = findAssist.GetObjectFromName("o_tang"); }
public override void SetReferenceObject() { FindAssist findAssist = new FindAssist(); findAssist.Initialize(((Component)this).get_transform()); this.targetAccessory.acs_Hair_pony = findAssist.GetTransformFromName("N_Hair_pony"); this.targetAccessory.acs_Hair_twin_L = findAssist.GetTransformFromName("N_Hair_twin_L"); this.targetAccessory.acs_Hair_twin_R = findAssist.GetTransformFromName("N_Hair_twin_R"); this.targetAccessory.acs_Hair_pin_L = findAssist.GetTransformFromName("N_Hair_pin_L"); this.targetAccessory.acs_Hair_pin_R = findAssist.GetTransformFromName("N_Hair_pin_R"); this.targetAccessory.acs_Head_top = findAssist.GetTransformFromName("N_Head_top"); this.targetAccessory.acs_Head = findAssist.GetTransformFromName("N_Head"); this.targetAccessory.acs_Hitai = findAssist.GetTransformFromName("N_Hitai"); this.targetAccessory.acs_Face = findAssist.GetTransformFromName("N_Face"); this.targetAccessory.acs_Megane = findAssist.GetTransformFromName("N_Megane"); this.targetAccessory.acs_Earring_L = findAssist.GetTransformFromName("N_Earring_L"); this.targetAccessory.acs_Earring_R = findAssist.GetTransformFromName("N_Earring_R"); this.targetAccessory.acs_Nose = findAssist.GetTransformFromName("N_Nose"); this.targetAccessory.acs_Mouth = findAssist.GetTransformFromName("N_Mouth"); this.targetEtc.trfHairParent = findAssist.GetTransformFromName("N_hair_Root"); this.targetEtc.trfMouthAdjustWidth = findAssist.GetTransformFromName("cf_J_MouthMove"); }