/// <summary>
        /// Clothes use shaders that do not support applying colors directly, instead they rely on the main texture having all colors and effects already applied to it
        /// CustomTextureCreate is used to apply colors and masks to the original main texture of the clothes
        /// </summary>
        private bool InitializeCreateTextures()
        {
            var lib          = InfoBase;
            var mainManifest = lib.GetInfo(ChaListDefine.KeyType.MainManifest);
            var mainTexAb    = lib.GetInfo(ChaListDefine.KeyType.MainTexAB);

            if ("0" == mainTexAb)
            {
                mainTexAb = lib.GetInfo(ChaListDefine.KeyType.MainAB);
            }
            var mainTex = lib.GetInfo(ChaListDefine.KeyType.MainTex);

            if ("0" == mainTexAb || "0" == mainTex)
            {
                return(false);
            }
            var t2dMain = CommonLib.LoadAsset <Texture2D>(mainTexAb, mainTex, false, mainManifest);

            if (null == t2dMain)
            {
                return(false);
            }

            var colorMaskAb = lib.GetInfo(ChaListDefine.KeyType.ColorMaskAB);

            if ("0" == colorMaskAb)
            {
                colorMaskAb = lib.GetInfo(ChaListDefine.KeyType.MainAB);
            }
            var colorMaskTex = lib.GetInfo(ChaListDefine.KeyType.ColorMaskTex);

            if ("0" == colorMaskAb || "0" == colorMaskTex)
            {
                Resources.UnloadAsset(t2dMain);
                return(false);
            }
            var t2dColorMask = CommonLib.LoadAsset <Texture2D>(colorMaskAb, colorMaskTex, false, mainManifest);

            if (null == t2dColorMask)
            {
                Resources.UnloadAsset(t2dMain);
                return(false);
            }

            var mainTex02Ab = lib.GetInfo(ChaListDefine.KeyType.MainTex02AB);

            if ("0" == mainTex02Ab)
            {
                mainTex02Ab = lib.GetInfo(ChaListDefine.KeyType.MainAB);
            }
            var       mainTex02    = lib.GetInfo(ChaListDefine.KeyType.MainTex02);
            Texture2D t2dMainTex02 = null;

            if ("0" != mainTex02Ab && "0" != mainTex02)
            {
                t2dMainTex02 = CommonLib.LoadAsset <Texture2D>(mainTex02Ab, mainTex02, false, mainManifest);
            }

            var colorMask02Ab = lib.GetInfo(ChaListDefine.KeyType.ColorMask02AB);

            if ("0" == colorMask02Ab)
            {
                colorMask02Ab = lib.GetInfo(ChaListDefine.KeyType.MainAB);
            }
            var       colorMask02Tex = lib.GetInfo(ChaListDefine.KeyType.ColorMask02Tex);
            Texture2D t2dColorMask02 = null;

            if ("0" != colorMask02Ab && "0" != colorMask02Tex)
            {
                t2dColorMask02 = CommonLib.LoadAsset <Texture2D>(colorMask02Ab, colorMask02Tex, false, mainManifest);
            }

#if KKS
            var mainTex03Ab = lib.GetInfo(ChaListDefine.KeyType.MainTex03AB);
            if ("0" == mainTex03Ab)
            {
                mainTex03Ab = lib.GetInfo(ChaListDefine.KeyType.MainAB);
            }
            var mainTex03 = lib.GetInfo(ChaListDefine.KeyType.MainTex03);

            Texture2D t2dMainTex03 = null;
            if ("0" != mainTex03Ab && "0" != mainTex03)
            {
                t2dMainTex03 = CommonLib.LoadAsset <Texture2D>(mainTex03Ab, mainTex03, false, mainManifest, true);
            }

            var colorMask03Tex = lib.GetInfo(ChaListDefine.KeyType.ColorMask03Tex);
            var colorMask03Ab  = lib.GetInfo(ChaListDefine.KeyType.ColorMask03AB);
            if ("0" == colorMask03Ab)
            {
                colorMask03Ab = lib.GetInfo(ChaListDefine.KeyType.MainAB);
            }
            Texture2D t2dColorMask03 = null;
            if ("0" != colorMask03Ab && "0" != colorMask03Tex)
            {
                t2dColorMask03 = CommonLib.LoadAsset <Texture2D>(colorMask03Ab, colorMask03Tex, false, mainManifest, true);
            }
#endif

            for (var i = 0; i < 3; i++)
            {
                CustomTextureCreate ctc   = null;
                Texture2D           main  = null;
                Texture2D           color = null;
                if (i == 0)
                {
                    main  = t2dMain;
                    color = t2dColorMask;
                }
                else if (1 == i)
                {
                    main  = t2dMainTex02;
                    color = t2dColorMask02;
                }
                else
                {
#if KKS
                    main  = t2dMainTex03;
                    color = t2dColorMask03;
#endif
                }
                if (null != main)
                {
                    ctc = new CustomTextureCreate(Owner.objRoot.transform);
                    ctc.Initialize("chara/mm_base.unity3d", "cf_m_clothesN_create", "", main.width, main.height, RenderTextureFormat.ARGB32);
                    ctc.SetMainTexture(main);
                    ctc.SetTexture(ChaShader._ColorMask, color);
                }

                _ctcArr[i] = ctc;
            }

            return(true);
        }