123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /**
- * Copyright(c) Live2D Inc. All rights reserved.
- *
- * Use of this source code is governed by the Live2D Open Software license
- * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
- */
- using Live2D.Cubism.Framework.Json;
- using System;
- using UnityEngine;
- namespace Live2D.Cubism.Framework.Expression
- {
- public class CubismExpressionData : ScriptableObject
- {
- /// <summary>
- /// Expression type.
- /// </summary>
- [SerializeField]
- public string Type;
- /// <summary>
- /// Expression fade in time.
- /// </summary>
- [SerializeField]
- public float FadeInTime;
- /// <summary>
- /// Expression fade out time.
- /// </summary>
- [SerializeField]
- public float FadeOutTime;
- /// <summary>
- /// Expression Parameters
- /// </summary>
- [SerializeField]
- public SerializableExpressionParameter[] Parameters;
- /// <summary>
- /// ExpressionParameter
- /// </summary>
- [Serializable]
- public struct SerializableExpressionParameter
- {
- /// <summary>
- /// Expression Parameter Id
- /// </summary>
- [SerializeField]
- public string Id;
- /// <summary>
- /// Expression Parameter Value
- /// </summary>
- [SerializeField]
- public float Value;
- /// <summary>
- /// Expression Parameter Blend Mode
- /// </summary>
- [SerializeField]
- public CubismParameterBlendMode Blend;
- }
- public static CubismExpressionData CreateInstance(CubismExp3Json json)
- {
- var expressionData = CreateInstance<CubismExpressionData>();
- return CreateInstance(expressionData, json);
- }
- public static CubismExpressionData CreateInstance(CubismExpressionData expressionData, CubismExp3Json json)
- {
- expressionData.Type = json.Type;
- expressionData.FadeInTime = json.FadeInTime;
- expressionData.FadeOutTime = json.FadeOutTime;
- expressionData.Parameters = new SerializableExpressionParameter[json.Parameters.Length];
- for(var i = 0; i < json.Parameters.Length; ++i)
- {
- expressionData.Parameters[i].Id = json.Parameters[i].Id;
- expressionData.Parameters[i].Value = json.Parameters[i].Value;
- switch(json.Parameters[i].Blend)
- {
- case "Add":
- expressionData.Parameters[i].Blend = CubismParameterBlendMode.Additive;
- break;
- case "Multiply":
- expressionData.Parameters[i].Blend = CubismParameterBlendMode.Multiply;
- break;
- case "Overwrite":
- expressionData.Parameters[i].Blend = CubismParameterBlendMode.Override;
- break;
- default:
- expressionData.Parameters[i].Blend = CubismParameterBlendMode.Additive;
- break;
- }
- }
- return expressionData;
- }
- }
- }
|