using System.Collections; using System.Collections.Generic; using InfinityPBR; using UnityEngine; using UnityEngine.UI; using FluffyGroomingTool; using SiegeSong; using UnityEngine.SceneManagement; namespace SiegeSong { public class CharacterCreator : MonoBehaviour { public int SelectedSectionIndex = 0; public GameObject GeneralSection; public GameObject FaceSection; public GameObject EyesSection; public GameObject ChinSection; public GameObject MouthSection; public GameObject NoseSection; public GameObject HairSection; public BlendShapesManager BlendManager; #region TITLEBAR public Text PreviousTitleText; public Text TitleText; public Text NextTitleText; public string GeneralSectionTitle = "General"; public string HairSectionTitle = "Hair"; public string FaceSectionTitle = "Face"; public string EyesSectionTitle = "Eyes"; public string ChinSectionTitle = "Chin"; public string MouthSectionTitle = "Mouth"; public string NoseSectionTitle = "Nose"; #endregion #region GENERAL public OptionsListSelect BodyTypeSelector; public OptionsListSelect PhenotypeSelector; public Slider EyeColorBrightnessSlider; public Slider SkinToneSlider; public int MinSkinToneValue = 60; public int MaxSkinToneValue = 255; public Material BodyMaterial; public Material HeadMaterial; public Material EyeMaterial; //public ColorPicker EyeColorPicker; #endregion #region FACE public Slider JawDefinitionSlider; public string JawDefinitionName = "JawDefinition"; public Slider ForeheadWidthSlider; public string ForeheadWidthName = "ForeheadWidth"; public Slider HeadShape02Slider; public string HeadShape02Name = "HeadShape02"; public Slider HeadShape03Slider; public string HeadShape03Name = "HeadShape03"; public Slider CheekboneSizeSlider; public string CheekboneSizeName = "CheekboneSize"; public Slider CheekbonesThinSlider; public string CheekbonesThinName = "CheekbonesThin"; public Slider CheeksDepthSlider; public string CheeksDepthName = "CheeksDepth"; #endregion #region EYES public Slider EyelidsDepthSlider; public string EyelidsDepthName = "EyelidsDepth"; public Slider EyelidsSizeSlider; public string EyelidsSizeName = "EyelidsSize"; public Slider EyelidsTopSlider; public string EyelidsTopName = "EyelidsTop"; public Slider EyelidsTopHeightSlider; public string EyelidsTopHeightName = "EyelidsTopHeight"; public Slider EyelidsInnerShapeSlider; public string EyelidsInnerShapeName = "EyelidsInnerShape"; public Slider EyelidsOuterShapeSlider; public string EyelidsOuterShapeName = "EyelidsOuterShape"; public Slider EyesAngleSlider; public string EyesAngleName = "EyesAngle"; public Slider EyeInsideDepthSlider; public string EyeInsideDepthName = "EyeInsideDepth"; #endregion #region CHIN public Slider ChinDepthSlider; public string ChinDepthName = "ChinDepth"; public Slider ChinDimpleSlider; public string ChinDimpleName = "ChinDimple"; public Slider ChinFillSlider; public string ChinFillName = "ChinFill"; public Slider ChinWidthSlider; public string ChinWidthName = "ChinWidth"; public Slider ChinNarrowSlider; public string ChinNarrowName = "ChinNarrow"; public Slider CleftChinSlider; public string CleftChinName = "CleftChin"; #endregion #region MOUTH public Slider LipPeakSlider; public string LipPeakName = "LipPeak"; public Slider LipShape1Slider; public string LipShape1Name = "LipShape1"; public Slider LipShape2Slider; public string LipShape2Name = "LipShape2"; public Slider LipShape3Slider; public string LipShape3Name = "LipShape3"; public Slider LowerLipSizeSlider; public string LowerLipSizeName = "LowerLipSize"; public Slider LowerLipWidthSlider; public string LowerLipWidthName = "LowerLipWidth"; public Slider LowerLipDepthSlider; public string LowerLipDepthName = "LowerLipDepth"; public Slider UpperLipSizeSlider; public string UpperLipSizeName = "UpperLipSize"; public Slider UpperLipWidthSlider; public string UpperLipWidthName = "UpperLipWidth"; public Slider UpperLipDepthSlider; public string UpperLipDepthName = "UpperLipDepth"; public Slider MouthHeightSlider; public string MouthHeightName = "MouthHeight"; public Slider MouthSizeSlider; public string MouthSizeName = "MouthSize"; public Slider MouthWidthSlider; public string MouthWidthName = "MouthWidth"; #endregion #region NOSE public Slider NoseAngleSlider; public string NoseAngleName = "NoseAngle"; public Slider NoseBridgeDepthSlider; public string NoseBridgeDepthName = "NoseBridgeDepth"; public Slider NoseBridgeHeightSlider; public string NoseBridgeHeightName = "NoseBridgeHeight"; public Slider NoseBridgeScewSlider; public string NoseBridgeScewName = "NoseBridgeScew"; public Slider NoseBridgeSlopeSlider; public string NoseBridgeSlopeName = "NoseBridgeSlope"; public Slider NoseBridgeWidthSlider; public string NoseBridgeWidthName = "NoseBridgeWidth"; public Slider NoseBumpSlider; public string NoseBumpName = "NoseBump"; public Slider NoseDepthSlider; public string NoseDepthName = "NoseDepth"; public Slider NoseHeightSlider; public string NoseHeightName = "NoseHeight"; public Slider NosePinchSlider; public string NosePinchName = "NosePinch"; public Slider NoseRidgeSlider; public string NoseRidgeName = "NoseRidge"; public Slider NoseRidgeWidthSlider; public string NoseRidgeWidthName = "NoseRidgeWidth"; public Slider NoseSidePositionSlider; public string NoseSidePositionName = "NoseSidePosition"; public Slider NoseSizeSlider; public string NoseSizeName = "NoseSize"; #endregion #region HAIR public OptionsListSelect HairPatternSelector; public OptionsListSelect HairTextureSelector; public float MinHairLengthValue = 0.001f; public float MaxHairLengthValue = 1.0f; public Slider HairLengthSlider; public Slider HairColorBrightnessSlider; //public ColorPicker HairColorPicker; public Material HairPatternMaterial; public Material HairMaterial; public Material EyebrowMaterial; public FurCreator HairCreator; #endregion void Start() { } public void UpdateValue() { //var newHeadSkinToneValue = (MinSkinToneValue + (SkinToneSlider.value * (MaxSkinToneValue - MinSkinToneValue))) / 255.0f; //var newBodySkinToneValue = (MinSkinToneValue + ((SkinToneSlider.value) * (MaxSkinToneValue - MinSkinToneValue))) / 255.0f; //BodyMaterial.color = new Color(newBodySkinToneValue, newBodySkinToneValue, newBodySkinToneValue, 1.0f); //HeadMaterial.color = new Color(newHeadSkinToneValue, newHeadSkinToneValue, newHeadSkinToneValue, 1.0f); //var newEyeColor = new Color(EyeColorPicker.pickedColor.r * EyeColorBrightnessSlider.value, EyeColorPicker.pickedColor.g * EyeColorBrightnessSlider.value, EyeColorPicker.pickedColor.b * EyeColorBrightnessSlider.value, 1.0f); //var newHairColor = new Color(HairColorPicker.pickedColor.r * HairColorBrightnessSlider.value, HairColorPicker.pickedColor.g * HairColorBrightnessSlider.value, HairColorPicker.pickedColor.b * HairColorBrightnessSlider.value, 1.0f); //var newHairSpecularColor = new Color(newHairColor.r * (HairColorBrightnessSlider.value * .75f), newHairColor.g * (HairColorBrightnessSlider.value * .75f), newHairColor.b * (HairColorBrightnessSlider.value * .75f), 1.0f); //EyeMaterial.color = newEyeColor; //HairPatternMaterial.color = newHairColor; //HairMaterial.color = newHairColor; //HairMaterial.SetColor("_SpecColor", newHairSpecularColor); //EyebrowMaterial.color = newHairColor; //HairCreator.setActiveLayerIndex(0); //var newHairLengthValue = (MinHairLengthValue + (HairLengthSlider.value * (MaxHairLengthValue - MinHairLengthValue))); ////HairCreator.getActiveLayer().minHeight = Math.Ceiling(newHairLengthValue - 1.0f); //HairCreator.getActiveLayer().maxHeight = newHairLengthValue; //HairCreator.updateAllLayerStrands(); //updatePhenotype(PhenotypeSelector.SelectedIndex); //updateBodyType(BodyTypeSelector.SelectedIndex); for (int j = 0; j < BlendManager.blendShapeGameObjects.Count; j++) { for (int i = 0; i < BlendManager.blendShapeGameObjects[j].blendShapeValues.Count; i++) { #region FACE if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == ForeheadWidthName) { var value = ForeheadWidthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == JawDefinitionName) { var value = JawDefinitionSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == HeadShape02Name) { var value = HeadShape02Slider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == HeadShape03Name) { var value = HeadShape03Slider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == CheekboneSizeName) { var value = CheekboneSizeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == CheekbonesThinName) { var value = CheekbonesThinSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == CheeksDepthName) { var value = CheeksDepthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } #endregion #region EYES if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == EyelidsDepthName) { var value = EyelidsDepthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == EyelidsSizeName) { var value = EyelidsSizeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == EyelidsTopName) { var value = EyelidsTopSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == EyelidsTopHeightName) { var value = EyelidsTopHeightSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == EyelidsInnerShapeName) { var value = EyelidsInnerShapeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == EyelidsOuterShapeName) { var value = EyelidsOuterShapeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == EyesAngleName) { var value = EyesAngleSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == EyeInsideDepthName) { var value = EyeInsideDepthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } #endregion #region CHIN if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == ChinDepthName) { var value = ChinDepthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == ChinDimpleName) { var value = ChinDimpleSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == HeadShape03Name) { var value = HeadShape03Slider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == ChinFillName) { var value = ChinFillSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == ChinWidthName) { var value = ChinWidthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == ChinNarrowName) { var value = ChinNarrowSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == CleftChinName) { var value = CleftChinSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } #endregion #region MOUTH if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == LipPeakName) { var value = LipPeakSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == LipShape1Name) { var value = LipShape1Slider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == LipShape2Name) { var value = LipShape2Slider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == LipShape3Name) { var value = LipShape3Slider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == LowerLipSizeName) { var value = LowerLipSizeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == LowerLipWidthName) { var value = LowerLipWidthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == LowerLipDepthName) { var value = LowerLipDepthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == UpperLipSizeName) { var value = UpperLipSizeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == UpperLipWidthName) { var value = UpperLipWidthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == UpperLipDepthName) { var value = UpperLipDepthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == MouthHeightName) { var value = MouthHeightSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == MouthSizeName) { var value = MouthSizeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == MouthWidthName) { var value = MouthWidthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } #endregion #region NOSE if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseAngleName) { var value = NoseAngleSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseBridgeDepthName) { var value = NoseBridgeDepthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseBridgeHeightName) { var value = NoseBridgeHeightSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseBridgeScewName) { var value = NoseBridgeScewSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseBridgeSlopeName) { var value = NoseBridgeSlopeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseBridgeWidthName) { var value = NoseBridgeWidthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseBumpName) { var value = NoseBumpSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseDepthName) { var value = NoseDepthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseHeightName) { var value = NoseHeightSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NosePinchName) { var value = NosePinchSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseRidgeName) { var value = NoseRidgeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseRidgeWidthName) { var value = NoseRidgeWidthSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseSidePositionName) { var value = NoseSidePositionSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } if (BlendManager.blendShapeGameObjects[j].blendShapeValues[i].triggerName == NoseSizeName) { var value = NoseSizeSlider.value * 100.0f; BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value = BlendManager.blendShapeGameObjects[j].blendShapeValues[i].isMinus ? -value : value; BlendManager.TriggerShape(BlendManager.blendShapeGameObjects[j], BlendManager.blendShapeGameObjects[j].blendShapeValues[i], false, false); } #endregion } } } private void updatePhenotype(int phenotypeIndex) { } private void updateBodyType(int bodyTypeIndex) { } public void NextSection() { Debug.Log("Next clicked"); if (SelectedSectionIndex == 6) SelectedSectionIndex = 0; else SelectedSectionIndex++; } public void PreviousSection() { Debug.Log("Prev clicked"); if (SelectedSectionIndex == 0) SelectedSectionIndex = 6; else SelectedSectionIndex--; } public void NextCreationStep() { SceneManager.LoadScene("World"); var instance = GameObject.Find("PlayerLoader")?.GetComponent()?.Instance; if (instance != null) { for (var i = 0; i < instance.transform.childCount; i++) { if (instance.transform.GetChild(i).name == "Body" && instance.transform.GetChild(i).GetComponent() != null) { //foreach (var blendShape in Blendshapes) { //instance.transform.GetChild(i).GetComponent().BlendShapes[blendShape.key] = blendShape.value; } } } } SceneManager.UnloadScene("CharacterCreation"); } void Update() { GeneralSection.active = false; HairSection.active = false; FaceSection.active = false; EyesSection.active = false; ChinSection.active = false; MouthSection.active = false; NoseSection.active = false; if (Input.GetKeyDown("return")) { NextCreationStep(); } switch (SelectedSectionIndex) { case 0: GeneralSection.active = true; PreviousTitleText.text = NoseSectionTitle; TitleText.text = GeneralSectionTitle; NextTitleText.text = HairSectionTitle; break; case 1: HairSection.active = true; PreviousTitleText.text = GeneralSectionTitle; TitleText.text = HairSectionTitle; NextTitleText.text = FaceSectionTitle; break; case 2: FaceSection.active = true; PreviousTitleText.text = HairSectionTitle; TitleText.text = FaceSectionTitle; NextTitleText.text = EyesSectionTitle; break; case 3: EyesSection.active = true; PreviousTitleText.text = FaceSectionTitle; TitleText.text = EyesSectionTitle; NextTitleText.text = ChinSectionTitle; break; case 4: ChinSection.active = true; PreviousTitleText.text = EyesSectionTitle; TitleText.text = ChinSectionTitle; NextTitleText.text = MouthSectionTitle; break; case 5: MouthSection.active = true; PreviousTitleText.text = ChinSectionTitle; TitleText.text = MouthSectionTitle; NextTitleText.text = NoseSectionTitle; break; case 6: NoseSection.active = true; PreviousTitleText.text = MouthSectionTitle; TitleText.text = NoseSectionTitle; NextTitleText.text = GeneralSectionTitle; break; } } } }