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); }
public 数更新時引数(エフェクト用材質情報 info, IDrawable model) { 材質 = info; モデル = model; }