public static void Setup(GameObject go) { string head = "boxHead.v2"; if (go) { Eyes eyes = go.GetComponent <Eyes>(); if (eyes == null) { eyes = go.AddComponent <Eyes>(); } else { DestroyImmediate(eyes); eyes = go.AddComponent <Eyes>(); } QueueProcessor qp = go.GetComponent <QueueProcessor>(); if (qp == null) { qp = go.AddComponent <QueueProcessor>(); } // System properties eyes.characterRoot = go.transform; eyes.queueProcessor = qp; // Heads - Bone_Rotation eyes.BuildHeadTemplate(Eyes.HeadTemplates.Bone_Rotation_XY); eyes.heads[0].expData.controllerVars[0].bone = Eyes.FindTransform(eyes.characterRoot, head); eyes.heads[0].expData.name = "head"; eyes.heads[0].expData.components[0].name = "head"; if (go.name.Contains("small")) { eyes.headTargetOffset.y = 0.225f; } else { eyes.headTargetOffset.y = 1.4f; eyes.headRandDistRange = new Vector2(3f, 3f); eyes.headTargetRadius = 0.05f; } eyes.CaptureMin(ref eyes.heads); eyes.CaptureMax(ref eyes.heads); // Eyes - Blendshapes SkinnedMeshRenderer smr = Eyes.FindTransform(eyes.characterRoot, head).GetComponent <SkinnedMeshRenderer>(); eyes.BuildEyeTemplate(Eyes.EyeTemplates.BlendShapes); eyes.RemoveExpression(ref eyes.eyes, 1); eyes.eyes[0].expData.controllerVars[0].smr = smr; eyes.eyes[0].expData.controllerVars[0].blendIndex = 4; eyes.eyes[0].expData.controllerVars[1].smr = smr; eyes.eyes[0].expData.controllerVars[1].blendIndex = 7; eyes.eyes[0].expData.controllerVars[2].smr = smr; eyes.eyes[0].expData.controllerVars[2].blendIndex = 5; eyes.eyes[0].expData.controllerVars[3].smr = smr; eyes.eyes[0].expData.controllerVars[3].blendIndex = 6; if (go.GetComponentInChildren <EyeGizmo>() != null) { DestroyImmediate(go.GetComponentInChildren <EyeGizmo>().gameObject); } eyes.eyes[0].gizmo = eyes.CreateEyeGizmo(smr.name, eyes.characterRoot); eyes.eyes[0].gizmo.transform.parent = smr.transform; if (go.name.Contains("small")) { eyes.eyes[0].gizmo.transform.localPosition = new Vector3(0f, 0.2239f, 0.1624f); } else { eyes.eyes[0].gizmo.transform.localPosition = new Vector3(0f, 1.378f, 1.037f); eyes.eyeRandTrackFov = new Vector3(0.4f, 0.2f, 0f); eyes.eyeRandDistRange = new Vector2(3f, 3f); eyes.eyeTargetRadius = 0.05f; } // Eyelids - Blendshapes eyes.BuildEyelidTemplate(Eyes.EyelidTemplates.BlendShapes, Eyes.EyelidSelection.Upper); eyes.RemoveExpression(ref eyes.blinklids, 1); eyes.blinklids[0].expData.controllerVars[0].smr = smr; eyes.blinklids[0].expData.controllerVars[0].blendIndex = 8; // Add a parent if the character root matches the head bone if (go.transform.parent == null) { eyes.characterRoot = eyes.AddParent(go.transform); } else { eyes.characterRoot = go.transform.parent; } // if (eyes.characterRoot == eyes.heads[0].expData.controllerVars[0].bone) // Initialize the Eyes moduel eyes.Initialize(); } }