示例#1
0
        public ExpressionKey(VrmLib.ExpressionPreset preset, string customName = null)
        {
            Preset       = preset;
            m_customName = customName;

            if (Preset != VrmLib.ExpressionPreset.Custom)
            {
                if (m_presetNameDictionary.ContainsKey((Preset)))
                {
                    m_id = m_presetNameDictionary[Preset];
                }
                else
                {
                    m_presetNameDictionary.Add(Preset, Preset.ToString());
                    m_id = m_presetNameDictionary[Preset];
                }
            }
            else
            {
                if (string.IsNullOrEmpty(m_customName))
                {
                    throw new ArgumentException("name is required for VrmLib.ExpressionPreset.Custom");
                }
                m_id = UnknownPresetPrefix + m_customName;
            }
        }
示例#2
0
        public void SetPresetValue(VrmLib.ExpressionPreset key, float value)
        {
            var expressionKey = new ExpressionKey(key);

            if (this.expressionKeyWeights.ContainsKey(expressionKey))
            {
                this.expressionKeyWeights[expressionKey] = value;
            }
        }
示例#3
0
        public float GetPresetValue(VrmLib.ExpressionPreset key)
        {
            var expressionKey = new ExpressionKey(key);

            if (this.expressionKeyWeights.ContainsKey(expressionKey))
            {
                return(this.expressionKeyWeights[expressionKey]);
            }
            else
            {
                return(0.0f);
            }
        }
示例#4
0
        void CreateDefaultPreset(VrmLib.ExpressionPreset preset)
        {
            var clip = GetClip(new ExpressionKey(preset));

            if (clip != null)
            {
                return;
            }
            clip                = ScriptableObject.CreateInstance <VRM10Expression>();
            clip.name           = preset.ToString();
            clip.ExpressionName = preset.ToString();
            clip.Preset         = preset;
            Clips.Add(clip);
        }
示例#5
0
文件: AIUEO.cs 项目: pdkyll/UniVRM
        IEnumerator RoutineNest(VrmLib.ExpressionPreset preset, float velocity, float wait)
        {
            for (var value = 0.0f; value <= 1.0f; value += velocity)
            {
                VRM.Expression.SetWeight(ExpressionKey.CreateFromPreset(preset), value);
                yield return(null);
            }
            VRM.Expression.SetWeight(ExpressionKey.CreateFromPreset(preset), 1.0f);
            yield return(new WaitForSeconds(wait));

            for (var value = 1.0f; value >= 0; value -= velocity)
            {
                VRM.Expression.SetWeight(ExpressionKey.CreateFromPreset(preset), value);
                yield return(null);
            }
            VRM.Expression.SetWeight(ExpressionKey.CreateFromPreset(preset), 0);
            yield return(new WaitForSeconds(wait * 2));
        }
示例#6
0
 public static ExpressionKey CreateFromPreset(VrmLib.ExpressionPreset preset)
 {
     return(new ExpressionKey(preset));
 }
示例#7
0
        public static void SetPresetValue(this IExpressionAccumulator self, VrmLib.ExpressionPreset key, float value)
        {
            var expressionKey = new ExpressionKey(key);

            self.SetValue(expressionKey, value);
        }
示例#8
0
        public static float GetPresetValue(this IExpressionAccumulator self, VrmLib.ExpressionPreset key)
        {
            var expressionKey = new ExpressionKey(key);

            return(self.GetValue(expressionKey));
        }