Ejemplo n.º 1
0
        private bool _進捗率を設定する(float progress, string morphName)
        {
            if (!Morphs.ContainsKey(morphName))
            {
                return(false);
            }

            材質モーフデータ data = Morphs[morphName];

            foreach (var materialMorphOffset in data.Morphoffsets)
            {
                if (materialMorphOffset.材質インデックス == -1)
                {
                    foreach (var pmxSubset in _model.サブセット管理.サブセットリスト)
                    {
                        エフェクト用材質情報 matInfo = pmxSubset.エフェクト用材質情報;
                        matInfo       = materialMorphOffset.オフセット演算形式 == 0 ? matInfo.乗算差分 : matInfo.加算差分;                  //0の場合は対象を乗算、1なら対象を加算にセット
                        matInfo.拡散色  += materialMorphOffset.拡散色 * progress;
                        matInfo.環境色  += new Vector4(materialMorphOffset.環境色, 1f) * progress;
                        matInfo.反射色  += new Vector4(materialMorphOffset.反射色, 1f) * progress;
                        matInfo.反射係数 += materialMorphOffset.反射強度 * progress;
                        matInfo.エッジ色 += materialMorphOffset.エッジ色 * progress;
                    }
                }
                else
                {
                    エフェクト用材質情報 matInfo = _model.サブセット管理.サブセットリスト[materialMorphOffset.材質インデックス].エフェクト用材質情報;
                    matInfo       = materialMorphOffset.オフセット演算形式 == 0 ? matInfo.乗算差分 : matInfo.加算差分;              //0の場合は対象を乗算、1なら対象を加算にセット
                    matInfo.拡散色  += materialMorphOffset.拡散色 * progress;
                    matInfo.環境色  += new Vector4(materialMorphOffset.環境色, 1f) * progress;
                    matInfo.反射色  += new Vector4(materialMorphOffset.反射色, 1f) * progress;
                    matInfo.反射係数 += materialMorphOffset.反射強度 * progress;
                    matInfo.エッジ色 += materialMorphOffset.エッジ色 * progress;
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
 public 数更新時引数(エフェクト用材質情報 info, IDrawable model)
 {
     材質  = info;
     モデル = model;
 }