You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

209 lines
14 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using SiegeSong;
namespace SiegeSong
{
public class BlendshapeLoader : MonoBehaviour
{
public Dictionary<string, float> Blendshapes;
public int HairstyleID;
public int FacialHairID;
public int FacialDetailID;
public int HairColorR;
public int HairColorG;
public int HairColorB;
public int HairColorA;
public SkinnedMeshRenderer MeshRenderer;
#region FACE
public string JawDefinitionName = "JawDefinition";
public string ForeheadWidthName = "ForeheadWidth";
public string HeadShape02Name = "HeadShape02";
public string HeadShape03Name = "HeadShape03";
public string CheekboneSizeName = "CheekboneSize";
public string CheekbonesThinName = "CheekbonesThin";
public string CheeksDepthName = "CheeksDepth";
#endregion
#region EYES
public string EyelidsDepthName = "EyelidsDepth";
public string EyelidsSizeName = "EyelidsSize";
public string EyelidsTopName = "EyelidsTop";
public string EyelidsTopHeightName = "EyelidsTopHeight";
public string EyelidsInnerShapeName = "EyelidsInnerShape";
public string EyelidsOuterShapeName = "EyelidsOuterShape";
public string EyesAngleName = "EyesAngle";
public string EyeInsideDepthName = "EyeInsideDepth";
#endregion
#region CHIN
public string ChinDepthName = "ChinDepth";
public string ChinDimpleName = "ChinDimple";
public string ChinFillName = "ChinFill";
public string ChinWidthName = "ChinWidth";
public string ChinNarrowName = "ChinNarrow";
public string CleftChinName = "CleftChin";
#endregion
#region MOUTH
public string LipPeakName = "LipPeak";
public string LipShape1Name = "LipShape1";
public string LipShape2Name = "LipShape2";
public string LipShape3Name = "LipShape3";
public string LowerLipSizeName = "LowerLipSize";
public string LowerLipWidthName = "LowerLipWidth";
public string LowerLipDepthName = "LowerLipDepth";
public string UpperLipSizeName = "UpperLipSize";
public string UpperLipWidthName = "UpperLipWidth";
public string UpperLipDepthName = "UpperLipDepth";
public string MouthHeightName = "MouthHeight";
public string MouthSizeName = "MouthSize";
public string MouthWidthName = "MouthWidth";
#endregion
#region NOSE
public string NoseAngleName = "NoseAngle";
public string NoseBridgeDepthName = "NoseBridgeDepth";
public string NoseBridgeHeightName = "NoseBridgeHeight";
public string NoseBridgeScewName = "NoseBridgeScew";
public string NoseBridgeSlopeName = "NoseBridgeSlope";
public string NoseBridgeWidthName = "NoseBridgeWidth";
public string NoseBumpName = "NoseBump";
public string NoseDepthName = "NoseDepth";
public string NoseHeightName = "NoseHeight";
public string NosePinchName = "NosePinch";
public string NoseRidgeName = "NoseRidge";
public string NoseRidgeWidthName = "NoseRidgeWidth";
public string NoseSidePositionName = "NoseSidePosition";
public string NoseSizeName = "NoseSize";
#endregion
void Start()
{
}
void Update()
{
}
public void LoadBlendshapes(Dictionary<string, float> blendshapes)
{
Debug.Log($"csbss - {MeshRenderer.sharedMesh.blendShapeCount}");
// for (int i = 0; i < MeshRenderer.BlendShapes.Count; i++)
// {
// if (Blendshapes.ContainsKey(MeshRenderer.BlendShapes[i].key))
// {
// MeshRenderer.BlendShapes[i].value = blendshapes[MeshRenderer.BlendShapes[i].key];
// }
// }
//}
//public void SaveBlendshapes()
//{
// var blendshapes = new Dictionary<string, float>();
// for (int j = 0; j < BlendManager.blendShapeGameObjects.Count; j++)
// {
// if (MeshRenderer.BlendShapes[i].key == ForeheadWidthName)
// blendshapes.Add(ForeheadWidthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == JawDefinitionName)
// blendshapes.Add(JawDefinitionName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == HeadShape02Name)
// blendshapes.Add(HeadShape02Name, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == HeadShape03Name)
// blendshapes.Add(HeadShape03Name, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == CheekboneSizeName)
// blendshapes.Add(CheekboneSizeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == CheekbonesThinName)
// blendshapes.Add(CheekbonesThinName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == CheeksDepthName)
// blendshapes.Add(CheeksDepthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == EyelidsDepthName)
// blendshapes.Add(EyelidsDepthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == EyelidsSizeName)
// blendshapes.Add(EyelidsSizeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == EyelidsTopName)
// blendshapes.Add(EyelidsTopName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == EyelidsTopHeightName)
// blendshapes.Add(EyelidsTopHeightName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == EyelidsInnerShapeName)
// blendshapes.Add(EyelidsInnerShapeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == EyelidsOuterShapeName)
// blendshapes.Add(EyelidsOuterShapeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == EyesAngleName)
// blendshapes.Add(EyesAngleName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == EyeInsideDepthName)
// blendshapes.Add(EyeInsideDepthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == ChinDepthName)
// blendshapes.Add(ChinDepthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == ChinDimpleName)
// blendshapes.Add(ChinDimpleName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == HeadShape03Name)
// blendshapes.Add(HeadShape03Name, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == ChinFillName)
// blendshapes.Add(ChinFillName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == ChinWidthName)
// blendshapes.Add(ChinWidthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == ChinNarrowName)
// blendshapes.Add(ChinNarrowName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == CleftChinName)
// blendshapes.Add(CleftChinName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == LipPeakName)
// blendshapes.Add(LipPeakName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == LipShape1Name)
// blendshapes.Add(LipShape1Name, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == LipShape2Name)
// blendshapes.Add(LipShape2Name, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == LipShape3Name)
// blendshapes.Add(LipShape3Name, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == LowerLipSizeName)
// blendshapes.Add(LowerLipSizeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == LowerLipWidthName)
// blendshapes.Add(LowerLipWidthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == LowerLipDepthName)
// blendshapes.Add(LowerLipDepthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == UpperLipSizeName)
// blendshapes.Add(UpperLipSizeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == UpperLipWidthName)
// blendshapes.Add(UpperLipWidthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == UpperLipDepthName)
// blendshapes.Add(UpperLipDepthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == MouthHeightName)
// blendshapes.Add(MouthHeightName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == MouthSizeName)
// blendshapes.Add(MouthSizeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == MouthWidthName)
// blendshapes.Add(MouthWidthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseAngleName)
// blendshapes.Add(NoseAngleName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseBridgeDepthName)
// blendshapes.Add(NoseBridgeDepthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseBridgeHeightName)
// blendshapes.Add(NoseBridgeHeightName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseBridgeScewName)
// blendshapes.Add(NoseBridgeScewName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseBridgeSlopeName)
// blendshapes.Add(NoseBridgeSlopeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseBridgeWidthName)
// blendshapes.Add(NoseBridgeWidthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseBumpName)
// blendshapes.Add(NoseBumpName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseDepthName)
// blendshapes.Add(NoseDepthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseHeightName)
// blendshapes.Add(NoseHeightName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NosePinchName)
// blendshapes.Add(NosePinchName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseRidgeName)
// blendshapes.Add(NoseRidgeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseRidgeWidthName)
// blendshapes.Add(NoseRidgeWidthName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseSidePositionName)
// blendshapes.Add(NoseSidePositionName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// if (MeshRenderer.BlendShapes[i].key == NoseSizeName)
// blendshapes.Add(NoseSizeName, BlendManager.blendShapeGameObjects[j].blendShapeValues[i].value);
// }
}
}
}