diff --git a/FaceUnity/src/main/assets/animation/animation_data.json b/FaceUnity/src/main/assets/animation/animation_data.json new file mode 100644 index 000000000..b7a3af2a2 --- /dev/null +++ b/FaceUnity/src/main/assets/animation/animation_data.json @@ -0,0 +1,6469 @@ +{ + "v": "5.7.3", + "fr": 30, + "ip": 0, + "op": 83, + "w": 202, + "h": 244, + "nm": "精品贴纸- icon", + "ddd": 0, + "assets": [ + { + "id": "imgSeq_0", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAA1klEQVR4nO3BgQAAAADDoPlTn+AGVQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AwDQQABuUTdfAAAAABJRU5ErkJggg==", + "e": 1 + }, + { + "id": "imgSeq_1", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABHklEQVR4nO3VMQ7CQAxFwe+IFNz/tBTEFHCBNOtEzEjun2ytNgEAAAAAAABgre6u7q7pDtZ4TAfcTXdvSeo3R5KeLWKFbTrghrYke5K9qo7pGNbwUM7rJM/Y3V9x7JOq6p3vj/KabgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBr+wBxwA8aMZdeyAAAAABJRU5ErkJggg==", + "e": 1 + }, + { + "id": "imgSeq_2", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAACiklEQVR4nO3avW5cVRQF4LUNjo3/I9HwBPTpaBAVT5GXyAulTeOC1qRLkwhEkSIIgURBDYWhi2LvFPcOM3JACkhwxr7fJx1pfpqlK63Z59y5CQAAAAAAAMC/VKMD3Hbd/ec1rKoemYX/jqL8Q5vFyLvXr5XlblKU9/A35ejEFFmKD0cHuEVqY10pyLLsjA6wbbp758YESaZyfJDph8X2aoEUZUN372Qqw19N2t0kqaqr/zUUW0FRZvMU2Z/X0Y27WdeZJsrrQfEYzBllbS/JQZJ7mcpyleT31ZdV9cegXGwBd72SdPdeko+TfDSvgyTXSb6bpwkLt9iizOeR/SQnSY4yleMwyfHGepPk2yQ/OsAv2+KKMhdkVYjV9Dia359mKs7JxuvjJL8l+aqqXozIzHhLLEolOUvySdalWBXjbF6bn6+mzUGSZ1X1aEBsBltcUVa6ezfJp0keZDqf3M9UktOst15HmbZnL5OcJ7moKne+FmixRVnp7uMkD5N8lvUUOcx06/xJkvOq+mVcQtgS3X3a3Rfd/U13v+run7v7y9G52B7+cExSVZdJvs96C/ZTVX09NhVsoe7+ort/7e7L7v58dB7YSvPDkD9099PRWdg+HmGZVdV1dz9O8nx0FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4694CTRODih0VhXQAAAAASUVORK5CYII=", + "e": 1 + }, + { + "id": "imgSeq_3", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADfElEQVR4nO3au6odVRwG8G/OxRPvIMRLZ28pKBLRzsIUgtoKvoLPYNDeSnwDG5/AwgcQwSLaBYKKIeQiXjCXk/NZ7DnnDNvEWJ3Zyfx+sJi9157iz8DH+q9ZOwEAAAAAAAAAgFkNcxfwoGl79MyGYeictXByBOV/mIZjNA3LwQmXwwwE5T+sBWT98zQs+ydWFLPYmbuAB8AwuR6uHp3Otx20YQ83QVnTdis5aqm2DueHYbizfutJ1sW8tu5/y3KMIXkkyfbYdh2GZj0kLMz23AVsijEkjybZHaf2k9RmnUTrleQoJI9n9Tx2kmwPw/B3tFeMFheUsaU6HNvjOJXVs9gdr/tJrs9VI5tnUUEZV47dHAdkZzJ2JyNtf/Umi0OLO0dpu5NVmzUNxk5Wm/jpqnItyQVhIVlgUJKk7W6SZ5Ps5d+BOdqnJLma5LwNPYsMSpK03UvyYo7fdE0Dsp3Vq+GtrPYq3zl9X7bFnqMMw3AzqxCcGsdeVu3XemhOJ3ntLv/3YkEWtZm/i9tZBWQnxyvIb1kF6EaSm+P1hr3Ksi0qKG2fTrI3DMPlcepWVqvIYUguDsPww1z1sbmW1np9lOTdyfdbOd6TXBIS7mUxQWn7RpJ3krx9ODcMw+3x45Uk389RF2yMtk+0/abtxbaX2z43+e2ltv7zBm0/bvtL26tt/2j7wdw1wUZou9325baftr3U9nrbv9rebPvV3PXxYHmozgbaPpnklSRvJnkryQtJHsvxK+DpQeK5JJ+M5ymwHG3PtP267Y9tf257ZWy1brS91Xa/7Z22B+M43/bM3HXDiWt7uu0Xba+1/XNstW6PAZmG5KDHPh/PWGBZ2p5te2ESkoN7hKRtv2373tw1wyzG1eXiXULye9sv237Y9vm564TZtT23FpLzbZ+Zuy7YKG1fn7RaB21fnbsm2Djjecr1MSifzV0PbKxxP/JT26fmrgU2Vtv3256duw4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB+/gGp78J5A6UmWgAAAABJRU5ErkJggg==", + "e": 1 + }, + { + "id": "imgSeq_4", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAFNklEQVR4nO3cu6tlVx0H8O+688xDwqhRCAo24gttjCE+IBFHfBQ+QASFWFmI2AgKFlqI/4FoI6YQBK1sLFSwEQ1ICtMNFikMaKeJUZPBzNz5Wux9kjN37tyZCHP3ued8PrA5z+K3D/u711p7rbMTAAAAAAAAAAAAAHZL29F2LF0Hx+/00gVsOsEgSRwEN3FIQK57Pca4dozlLK7tGGN06TqWokU54BYtyE6eWObfZLTNroZFUI5w4KDo6oBJstd2b8dalb0k+0sXwYZoe6rtqdv43la0LvP+3nJf2u4dRz2baqd3/qC2Z5KczW38LlvUBflckkdv9aUdaz1vsFNdr/Uz5/qBPrcgZzIFZC/JleOv7vjN+/1Ykv+0/f0Y4+rSNW2qXWtRRpJTSU63Pdv2XNvzSc5lOmmcmrddOXt+NMk7krwnyScWrmWj7VpQmnkwnldCsR6QU0l2aZD+lST3JbmQ5Btz15ND7FRQ5u5WMwfikMe9+fOt1nav7VeTfDzJXUnuSfLuJD9p+65Fi9tQW3Hl5tVqe3emlmQv02+wviXJs9vYqsxXrj6f5DtJ3p7ppHBtftyfn19J8mSSx5P8coxxeZlqN8uuBuVsprPoYSEZSf47xnh+ofLuiLYfTvLDTAG57qMD236Sq/P24zHGN4+zzk21U12vNatxys1alPNtzy1U253ypyQ/SvLnXH+CXP8tVmO23yS5KCSv2NUW5Z5MffP1cOTA8/0k/9ii+ZKXtX00ydeTfCrXj8meSvLlMcZTS9S1yXY1KPdlmlhc7f+LmfrmqzPqars8xvj3IkUeg7a/SPLZ+eW1JG8bYzy9YElsgran27657evavqHthbY3nXTdlmUqN9P2nW2vdfKrpethA8yTix9s+3Db+9vetXRNm6Dtz+egfGbpWlhY27vbPtL2k3NQdvUixg3mVuWZo1pWdmCt1zweeTDTMpWRZGzjHMn/a4xxqe0j1nkdbWuC0vZCkgcyDdJXy1JW8yWrFmRkWvzImjHGX5auYdNtTVCS/DPJmzKtW3p53VZuvASs28WrtjUHzTzfcSnTpd7DQrJ6fm/b1y5SJCfW1gQlScYY+5lmoC/nxpBk7flDbV9zzOVxgm1VUJJkjPFSpkV9qxnnw+ZCziR52CVibtfWBSVJ5hWvz+folQfnk7x/XiAJR9qmwfxBB9do7Sd5NtffSWQ/yf1J/nZcRXEybU1Q5pbhsTHG44d8/GKSP44xXjjmstgS29T1+l6S7669Xt0g4l9JnhASdl7bi2335wV+b5nfe9+8tssEI7R9fdu/ziG51vYL8/tvvJ0b2cHWmxc7/notJNfa/mDputg+J2owP/8z8cEkH5i3D2W63c66izt4X2CYtP1i2+faXm77Utura+OS1bby07b3Ll0zLKLtl+awHBWSlafbPrR0zbCItm9t++QtQrJype23/FGLndT2TNvv3yIkK5fafmzpmjnZTuzNE+ZW4plM/0FZ94ckv0vyRKbZ+OeOuzbYKG1/dqD1+PbSNcHGafu1tZD81lgEDtH2vXNI/t72gaXrgY3U6YZ2L7T99NK1wEZr+5GlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuvP8Bl+6iPXcFJh8AAAAASUVORK5CYII=", + "e": 1 + }, + { + "id": "imgSeq_5", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,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", + "e": 1 + }, + { + "id": "imgSeq_6", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,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", + "e": 1 + }, + { + "id": "imgSeq_7", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,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", + "e": 1 + }, + { + "id": "imgSeq_8", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,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", + "e": 1 + }, + { + "id": "imgSeq_9", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,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", + "e": 1 + }, + { + "id": "imgSeq_10", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,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", + "e": 1 + }, + { + "id": "imgSeq_11", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAHuklEQVR4nO3d3Ytd1RnH8d8zL8nkVayvMZJSrSGKxjfsRcGS2l5Ii9CCFCpeeNm7gu1V6XV7UcSbUvEPEBR7UxDEO2lvFSsVS2nRSkuJSaqNyWQmmcz8erHWzuwzs8+co85+O/v7gcPJ7LOGeTJ7nr3Ws9ba50gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHSQ7Xnb0dbPn2vrBwOf05ykxbaShURBn4RSsjT+d0uioG9C0kLTybLQ5A8DdkmRLBuSNvIxX3sxwpXf9SWQKOizOaWk8ZZHLT8I6IOqIr6WpKhComS2o83pR4xne16jiTIuQVzHsEsiUcpC0p58UtAR+XxMUyLUliRSdXf2pRVX5joDr4PtvcU/Ja0rFYqhdEGZk6SIuNJOdMOTZ7YWq14qPVspSdbrjKXWYt72XERsTG7ZGVZKjFD17+Zqs+EM1w5JUtm8zlikGhMl9ya96lGUepBxQ6/ar1oYMa/qv59W6shaEqVvQ66SneKmN2mA7cOSLkbE2pjXi96+0YShmB81tpDv2RCyl2wvStonaWlcm4hwTqJGzweJkuUx8dirFFPHjTiYn/dNahgRV9VgspAomyYNQ0mUGtneI2lP/nLB9sSyINeMjSQLiaKRBa1iWngtP8ongd9VvQ5u+XpiryKlIXETw2L2eiUbEXG56ngekjVePA6J7f3aPhW8ZPtiVyaGOPlT6uGaUKflC9CSUs8x7oJ9RdKFXI+0avCJQgI0K+9+2Cdp76S2JatKU8atrWMNNlHyLNYhSYqIz1oOZxBywX6dvli9Z0krkpbbuLANskDNJ+wGpSsbq+0Nyfvkzkm6qM+3a6Nou1c7rLHUaaaLedsHJe1XSobiMa/Rbp9EaVAuzpdtryidm/2aPLJZU+pNLrdV3M/00CsPr27QDivukj5lR3B78tT89dp+jizpkqSVLuyxm+mhV776nJ/QjEK+RTkJliteWo6IVgv4splOFEnK+4Iu7dCklTHvkNlesH1H6dCqRmuWde18zho384mSVV2xCgfyZjw0wPYhSd+SdLQ4lnv+8oLvclcWGgtDSZRJtdhhNj3Wz/ZRSY9KOqBUoJet5Of1iFhRx8z0rFfJ1kJxXen+kvn8WFDaa3Sh4bhmSt6Ksrb1XpK8Cn+PpK+VDo+stkfEFdvrSlPHnTO0RLFStz4yFJu0xR6T5R75EaXeWUqJUGwuXdLmzuBC1Y1Z58fdsNW2mRt62b69Yhg1r3TiPtmaJNK1HaidmF3pq1xTvKXNBFhQWtA9rO1JIlUkSleTRJqxRMld//1KaydlqxHx3y5srptl+SL0Tttx1GGmEkXS3Ur/p6PlgyRIcyLiY0l/n6Lp0byVqBdmJlFsXy/ptvzlkTY+GgDX/E1pT9dOliQ91JfZxpn4Y7K9T9LJ0qFFSbe2FM7g5Xplml7lJknHaw5nV/R21ivfU31EaZh1o7bPWp3Mbf7VtcWrgZh2a9Bx2//LQ7bO6kW3t5XtWyU9rOl6xM8kvR8RZ+uNCmW2b5H0jYqX1pRmIYtzZ6UZyT9GRKe2rZT1MlEkyfbNSotYh6b8lg8j4r0aQ0KJ7dslPVg6tCzpreImudJbphaP5S7v4u7t0Csiztg+K+mYpBOqnqu/Kum0pH9rcnGJCWyfknSHpJfGvBlHWXn/3GlJ75RnH/Ndipc1users3rbo5TljXanyockvadUn7CQuEtsn5T0rqQzkn4r6YWIOLelzV5Jj0l6RqlH+V5E/KPhUDGO7W/afiI/7m07nlll+wNvWrH9ou1Ttp+y/bLt86XXf9V2vINh+yu2fzJpvt32sZwkj/dpIatvbD/n6azYvrHteAfD9nW2P7H9h1zAj2u3aPv7tr/eZHxDY/vRKRPlxbZjHRzbH+Uu/UPb3y0dX7B9m+0Hc6IcNyvytbI9Z/vMFIlyou1YB8f2n2yftX3B9qrtf9o+bXsjP/5qm1t6G2L7tQlJ8kbbMe62vkwPf6Q0DVzcN3JEm5/IdEXSjyNitb3whsOp/ntoQrMPmoilSZ1PFKe3szmotGC1oM0PHi0+hPTnEfHn9iIcnB8pXah28p0mAmlSH8bzT+Tn80rJsqq0DWJd0uuSftdSXEP1syna3GX7ntojaVCnexSnNyO4X2lVfVHbe5RX2fDYHNuPSXpgmqaSfijp/Xojak5nexSntxC6T9JZpZXgc5I+VdrkeEmpZ5nqw2awa57NzxuS3pT0U0l3SrpF0i8k/Ueb78/1g6aDGyTbh2zfaftu2/faPmH727Zfsf1unvn6ZdtxDoXtA7Z/b/sZ21tvtS7a7LH9tO23ba/bPtZ0nMhyAv3a9l9s/6bteFAtX9S+2nYcg2Y7bD9p+/m2YwE6L08dAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/Q/wHnvoriekCjMAAAAABJRU5ErkJggg==", + "e": 1 + }, + { + "id": "imgSeq_12", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,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", + "e": 1 + }, + { + "id": "imgSeq_13", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,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", + "e": 1 + }, + { + "id": "imgSeq_14", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAErUlEQVR4nO3c22okRRgH8H+NG1fRVcEDKIKgFyJeCooP4Gv4Cr6AD+mF4LUHvFBEdLNmd5PM50X1ZHqzm2Q8ZA7dvx80c8gQag7//qq6qjsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmK+qWlTVYtft2JbZvFH+P0NAjpK0XbdlW/Y+KFU1my/jEIxCkgjKfhi+lOd23Q66Yad1NHpKUPZESy4Cww5dqiSzc2fXDdjQIsly142Yg6p6LusdaMv1VUNF2bWhzNewqSrbU+kBWOTmILS5jCEP4ce3Csuiqu4IzO1qrS2TnGbYQW3gUHol/8ne7g1Ge6rx7bgrsGytnW+9YTMxGrhv8hupJKettU3DdXD2du88+tDHH35d2rglw+e/aWVpSY6m3A3b2zf2jA999bimvOfaN//waNdkK8te9y9bazUKjIDsxnU703HVX91vmWC139uKMlZVTUi2azhM/GqSkzx9aH7ZWjvdfqt2Z2/HKOOul5BsV1W9mOT19C7X7EOS7HHXSzhux1Apkv6Dr0t/WyR5Jcnd0dPnWc+pzDIkyR4HhVtzlN6lSlUt04OwTB9XPJ+nexnLDOOOuYYkEZTZaa09rKoX0qvGItd3v6u1thzGiLOes9rbMQq36s9stnZumSRzD0kiKLM0LFP5Y4OXLqY8ifhPCMpMtdYeJ/nrppclubeF5uw9QZm3Bxu85oWqunvzy6ZNULjKeLb93txXbc/6zZM3k3yeJ38Hlxecru6/vK1G7SOHh2eoqo6SfJTkg6zPHl0F4kH6quHVyVurrVXVndba2fZbvHuCMjFVdSfJh0nuJzlOcn88UVhV7yT5OOvZ9/vpITlP8sdcg3ATQZmY1trZsFbr/dVzVfUwPTRH6UtULs4aTa8gJ0mOLRu6mqBM07dJ3sj6+72bvjwlWXezVidm/dRau7/1Fh4Yg/kJaq09TPJd1oFYDtv5aDtLrzK/76iZB0VQpuuHJL/l6XCcpVeSx0kexWWgNiIoEzWMN77Nk8E4TQ/Hw9H25q7aeEgEZdoeJPkifRnKo/RB+yogJ+lLWI6q6qWdtfBACMpEDctOvk7yWXr36iTrcKy21eOXLH68nqNeE1RVryX5Ksm7SX5M8kt6IC6PV8aP76ZXGp5BUCamqt5O8uXw8Pv0uZM/04OyOtL1OOvTey+umuIiHlcTlANUVZ8k+TTranCcHoJK8lb60a5HWQfhOD0sx8O5KM/6n0JyDUE5TN8keS99UnGZXjVWE4g/pleMVdU4S/LrMLdyJSG5ngHcgaqq59MH6kfpATm7dHuaHqLHSX62huu/EZQDNhzZei+9mlwenI8H7aettZNdtXMKBOXADZXlXtbLVMZbjW7PrxqfcDNBmYDh/JJFnn21/4v7xiH/nqBMwDBZeHEx89XzggEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/6G6t6hzgTaFVIAAAAAElFTkSuQmCC", + "e": 1 + }, + { + "id": "imgSeq_15", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADDklEQVR4nO3cXW8aRxQG4Hf8mTZRe5P2qv///7Vq0tgGTi9mgA0BG0uRMcvzSCtYDNbI7LtnPnadAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8oKraqdsAXKiqak5Cr3d16gbw5lqSu6q6eSkwI1TXb9Sud82Z5QJV1f1kd5Vk0Vqr8bOr9BPoVfrxsWqtPb19K9+Xm1M3gJNYZdubuEqvMJX9J87lm7XqHdP1ukyrPa/tC8mqtbbvvRdHUC7TsQe/ajIIygUa45F64W2lmmwJCocIyYSgXKAxs2XG8xUE5TIdszbi2Jjwx5ihqvp4aKFwsk5y8ONjcxnRhKDM022Sz1X1e1XtrpVd7zy/T++GLfL9AL/i+Niw4DhPD+kB+JDkQ1U9JPmSPt17n/6936QHpJJ8aa0tkywnFafFOGZDUObpcTyuK8Td2KavrbtYDyMkSZIxJbwa3S4VZRCUGWqtLatqkW03q555/Hrgd1QsOG4Iynw9JPkl+8Ox3h6n1YTDBGW+ntLHI/sCkvQFxW8naNdZEpT5uk4PQ+XHkFSSpUtUjicoMzRmrm7SxxiVHpr19O+0onAksxrzdJsekrskfyT5NPaX6QFZZjuzxRFUlDNUVX+mH/z/ju2/yR2KLcmvST6mB2aR5J983w3LeGyTfZ7hjHKGxuUpf43dVbYD88f0Rca78doivXr8PfZ3v+9aB4znCcqZqqpP2U7/TqtFy6R7lX6X4redz26+d0E5jq7X+fqaHorb9DWT3dmt9fbDOolwvJ6gnKnW2qqqnpL8ln4d13oWa3ccIhQ/gaCct5btQH1aOTbhUD1+DmOUM7VzX8l6jCIYMOVfowIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/4HVObuJ+2YzhoAAAAASUVORK5CYII=", + "e": 1 + }, + { + "id": "imgSeq_16", + "w": 202, + "h": 244, + "t": "seq", + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAAD0CAYAAADaFbl1AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABvUlEQVR4nO3a0WqDQBAF0FmT2v//3ELq9KEuiDWNIVpZew4EM9GHhXCzM0siAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeyMxy9BoAAAAAAAAAAABgL5nZZWbv/3Lb6Y5eALspEfEmLNsQlHMTlo0IyvnVsPiuX3A9egHsJmf1NTPzzv3PUsr8eSYE5X+Yh2BaD0LymKCcU4nfw1HrLKUMf7OktgnKyYyzSBcrgiIk6zkNOZHxdOtSy6VH6lW79RxBaVBmXiKij4iPuiuMIZmfbC2GRUiep/Vq0xDfP3LvmXmLiFsszyUxfnbvHivZURqVmf20HF915iiza4bTrZcISqPG9msahFh4H6HV2oTWq121/Zr6EQgh2YYdpWGTAb62XoKxEztK+8weAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACw0hcO3WMluFqQfAAAAABJRU5ErkJggg==", + "e": 1 + }, + { + "id": "sequence_0", + "layers": [ + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_0", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 0, + "st": 0, + "op": 1, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_1", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 1, + "st": 1, + "op": 2, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_2", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 2, + "st": 2, + "op": 3, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_3", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 3, + "st": 3, + "op": 4, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_4", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 4, + "st": 4, + "op": 5, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_5", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 5, + "st": 5, + "op": 6, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_6", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 6, + "st": 6, + "op": 7, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_7", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 7, + "st": 7, + "op": 8, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_8", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 8, + "st": 8, + "op": 9, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_9", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 9, + "st": 9, + "op": 10, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_10", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 10, + "st": 10, + "op": 11, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_11", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 11, + "st": 11, + "op": 12, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_12", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 12, + "st": 12, + "op": 13, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_13", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 13, + "st": 13, + "op": 14, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_14", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 14, + "st": 14, + "op": 15, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_15", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 15, + "st": 15, + "op": 16, + "sr": 1, + "bm": 0 + }, + { + "ty": 2, + "sc": "#00ffff", + "refId": "imgSeq_16", + "ks": { + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "r": { + "a": 0, + "k": [ + 0 + ] + }, + "o": { + "a": 0, + "k": [ + 100 + ] + } + }, + "ip": 16, + "st": 16, + "op": 18, + "sr": 1, + "bm": 0 + } + ] + }, + { + "id": "comp_0", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "✨流星", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 47.228, + 61.728, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "hasMask": true, + "masksProperties": [ + { + "inv": false, + "mode": "a", + "pt": { + "a": 0, + "k": { + "i": [ + [ + 42.388, + 0 + ], + [ + 0, + -42.388 + ], + [ + -42.388, + 0 + ], + [ + 0, + 42.388 + ] + ], + "o": [ + [ + -42.388, + 0 + ], + [ + 0, + 42.388 + ], + [ + 42.388, + 0 + ], + [ + 0, + -42.388 + ] + ], + "v": [ + [ + 54.022, + -48.728 + ], + [ + -22.728, + 28.022 + ], + [ + 54.022, + 104.772 + ], + [ + 130.772, + 28.022 + ] + ], + "c": true + }, + "ix": 1 + }, + "o": { + "a": 0, + "k": 100, + "ix": 3 + }, + "x": { + "a": 0, + "k": 0, + "ix": 4 + }, + "nm": "蒙版 1" + } + ], + "ef": [ + { + "ty": 5, + "nm": "残影", + "np": 7, + "mn": "ADBE Echo", + "ix": 1, + "en": 1, + "ef": [ + { + "ty": 0, + "nm": "残影时间(秒)", + "mn": "ADBE Echo-0001", + "ix": 1, + "v": { + "a": 0, + "k": -0.028, + "ix": 1 + } + }, + { + "ty": 0, + "nm": "残影数量", + "mn": "ADBE Echo-0002", + "ix": 2, + "v": { + "a": 0, + "k": 3, + "ix": 2 + } + }, + { + "ty": 0, + "nm": "起始强度", + "mn": "ADBE Echo-0003", + "ix": 3, + "v": { + "a": 0, + "k": 1, + "ix": 3 + } + }, + { + "ty": 0, + "nm": "衰减", + "mn": "ADBE Echo-0004", + "ix": 4, + "v": { + "a": 0, + "k": 0.3, + "ix": 4 + } + }, + { + "ty": 7, + "nm": "残影运算符", + "mn": "ADBE Echo-0005", + "ix": 5, + "v": { + "a": 0, + "k": 1, + "ix": 5 + } + } + ] + } + ], + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 0, + 3.51 + ], + [ + -5.66, + 5.66 + ], + [ + -3.51, + 0 + ], + [ + -5.66, + -5.66 + ], + [ + 0, + -3.51 + ], + [ + 5.66, + -5.66 + ], + [ + 3.51, + 0 + ], + [ + 5.66, + 5.66 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "rd", + "nm": "圆角 1", + "r": { + "a": 0, + "k": 0.6, + "ix": 1 + }, + "ix": 2, + "mn": "ADBE Vector Filter - RC", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.74, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.159 + }, + "t": 36, + "s": [ + 38.732, + -68.361 + ], + "to": [ + -12.362, + 18.721 + ], + "ti": [ + 12.362, + -18.721 + ] + }, + { + "t": 46, + "s": [ + -35.439, + 43.968 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.74 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 36, + "s": [ + -45 + ] + }, + { + "t": 46, + "s": [ + 720 + ] + } + ], + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "星形", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 0, + 3.07 + ], + [ + -4.95, + 4.95 + ], + [ + -3.07, + 0 + ], + [ + -4.95, + -4.95 + ], + [ + 0, + -3.07 + ], + [ + 4.95, + -4.95 + ], + [ + 3.07, + 0 + ], + [ + 4.95, + 4.95 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "rd", + "nm": "圆角 1", + "r": { + "a": 0, + "k": 0.6, + "ix": 1 + }, + "ix": 2, + "mn": "ADBE Vector Filter - RC", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.74, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.157 + }, + "t": 39, + "s": [ + 94.317, + -52.128 + ], + "to": [ + -17.959, + 23.196 + ], + "ti": [ + 17.959, + -23.196 + ] + }, + { + "t": 49, + "s": [ + -13.44, + 87.049 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.74 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + -45 + ] + }, + { + "t": 49, + "s": [ + 720 + ] + } + ], + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "星形 2", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 0, + 3.95 + ], + [ + -6.36, + 6.36 + ], + [ + -3.95, + 0 + ], + [ + -6.36, + -6.36 + ], + [ + 0, + -3.95 + ], + [ + 6.36, + -6.36 + ], + [ + 3.95, + 0 + ], + [ + 6.36, + 6.36 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "rd", + "nm": "圆角 1", + "r": { + "a": 0, + "k": 0.6, + "ix": 1 + }, + "ix": 2, + "mn": "ADBE Vector Filter - RC", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.74, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.156 + }, + "t": 42, + "s": [ + 154.797, + -1.631 + ], + "to": [ + -15.644, + 20.128 + ], + "ti": [ + 15.644, + -20.128 + ] + }, + { + "t": 52, + "s": [ + 60.936, + 119.135 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.74 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 42, + "s": [ + -45 + ] + }, + { + "t": 52, + "s": [ + 1080 + ] + } + ], + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "星形 3", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 3, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + } + ] + } + ], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "▨ 墨镜 右 2", + "td": 1, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.52, + "y": 0 + }, + "t": 56, + "s": [ + 106.898, + 80.715, + 0 + ], + "to": [ + 0, + 0.958, + 0 + ], + "ti": [ + 0, + -0.958, + 0 + ] + }, + { + "t": 62, + "s": [ + 106.898, + 86.465, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 12.899, + -0.035, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -7.57, + 0 + ], + [ + 0, + -0.82 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 6.57, + 0 + ], + [ + 0.87, + 7.18 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0.74, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -0.12, + 8.14 + ], + [ + -6.04, + 0 + ], + [ + -0.34, + -2.81 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 23.66, + -9 + ], + [ + 25, + -7.51 + ], + [ + 25, + -6.01 + ], + [ + 25, + -5.75 + ], + [ + 12.97, + 8.93 + ], + [ + 1.42, + -2.962 + ], + [ + 1.42, + -9.012 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "墨镜", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + } + ], + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "高光4", + "parent": 1, + "tt": 1, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.48, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 31, + "s": [ + -3.75, + -3.25, + 0 + ], + "to": [ + 2.292, + 0, + 0 + ], + "ti": [ + -2.292, + 0, + 0 + ] + }, + { + "i": { + "x": 0.48, + "y": 0.48 + }, + "o": { + "x": 0.26, + "y": 0.26 + }, + "t": 41, + "s": [ + 10, + -3.25, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.26, + "y": 0 + }, + "t": 56, + "s": [ + 10, + -3.25, + 0 + ], + "to": [ + 3.375, + 0, + 0 + ], + "ti": [ + -3.375, + 0, + 0 + ] + }, + { + "t": 62, + "s": [ + 30.25, + -3.25, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { + "a": 0, + "k": [ + 6, + 36 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 4 + }, + "nm": "矩形路径 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.105882354081, + 0.098039217293, + 0.211764708161, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": -330, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "高光1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 31, + "op": 331, + "st": 31, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "▨ 墨镜 左 2", + "td": 1, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.52, + "y": 0 + }, + "t": 56, + "s": [ + 94.123, + 80.75, + 0 + ], + "to": [ + 0, + 0.958, + 0 + ], + "ti": [ + 0, + -0.958, + 0 + ] + }, + { + "t": 62, + "s": [ + 94.123, + 86.5, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0.157, + -1.294 + ], + [ + 6.04, + 0 + ], + [ + 0.12, + 8.14 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -0.74, + 0 + ], + [ + 0, + 0 + ], + [ + 0.054, + -1.31 + ] + ], + "o": [ + [ + -0.87, + 7.18 + ], + [ + -6.57, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -0.82 + ], + [ + 3.877, + 0 + ], + [ + 0, + 0 + ], + [ + -0.046, + 1.118 + ] + ], + "v": [ + [ + -3.34, + -2.95 + ], + [ + -14.24, + 9 + ], + [ + -25, + -5.75 + ], + [ + -25, + -6.01 + ], + [ + -25, + -7.51 + ], + [ + -23.66, + -9 + ], + [ + -2.998, + -9 + ], + [ + -3.053, + -6.747 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "墨镜", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + } + ], + "ip": -58, + "op": 242, + "st": -58, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "高光3", + "parent": 3, + "tt": 1, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.48, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 31, + "s": [ + -33.125, + -2.25, + 0 + ], + "to": [ + 2.625, + 0, + 0 + ], + "ti": [ + -2.625, + 0, + 0 + ] + }, + { + "i": { + "x": 0.48, + "y": 0.48 + }, + "o": { + "x": 0.26, + "y": 0.26 + }, + "t": 41, + "s": [ + -17.375, + -2.25, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.26, + "y": 0 + }, + "t": 56, + "s": [ + -17.375, + -2.25, + 0 + ], + "to": [ + 3.375, + 0, + 0 + ], + "ti": [ + -3.375, + 0, + 0 + ] + }, + { + "t": 62, + "s": [ + 2.875, + -2.25, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { + "a": 0, + "k": [ + 6, + 36 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 4 + }, + "nm": "矩形路径 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.105882354081, + 0.098039217293, + 0.211764708161, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": -330, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "高光1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 31, + "op": 331, + "st": 31, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "▨ 墨镜 右", + "td": 1, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 106.898, + 80.715, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 12.899, + -0.035, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -7.57, + 0 + ], + [ + 0, + -0.82 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 6.57, + 0 + ], + [ + 0.87, + 7.18 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0.74, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -0.12, + 8.14 + ], + [ + -6.04, + 0 + ], + [ + -0.34, + -2.81 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 23.66, + -9 + ], + [ + 25, + -7.51 + ], + [ + 25, + -6.01 + ], + [ + 25, + -5.75 + ], + [ + 12.97, + 8.93 + ], + [ + 1.42, + -2.962 + ], + [ + 1.42, + -9.012 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "墨镜", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + } + ], + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "高光2", + "parent": 5, + "tt": 1, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.48, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 16, + "s": [ + -3.75, + -3.25, + 0 + ], + "to": [ + 5.917, + 0, + 0 + ], + "ti": [ + -5.917, + 0, + 0 + ] + }, + { + "t": 26, + "s": [ + 31.75, + -3.25, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { + "a": 0, + "k": [ + 6, + 36 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 4 + }, + "nm": "矩形路径 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.105882354081, + 0.098039217293, + 0.211764708161, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": -330, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "高光1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 16, + "op": 316, + "st": 16, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "▨ 墨镜 左", + "td": 1, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 80.124, + 80.75, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + -13.999, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0.157, + -1.294 + ], + [ + 6.04, + 0 + ], + [ + 0.12, + 8.14 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -0.74, + 0 + ], + [ + 0, + 0 + ], + [ + 0.054, + -1.31 + ] + ], + "o": [ + [ + -0.87, + 7.18 + ], + [ + -6.57, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -0.82 + ], + [ + 3.877, + 0 + ], + [ + 0, + 0 + ], + [ + -0.046, + 1.118 + ] + ], + "v": [ + [ + -3.34, + -2.95 + ], + [ + -14.24, + 9 + ], + [ + -25, + -5.75 + ], + [ + -25, + -6.01 + ], + [ + -25, + -7.51 + ], + [ + -23.66, + -9 + ], + [ + -2.998, + -9 + ], + [ + -3.053, + -6.747 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "墨镜", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + } + ], + "ip": -58, + "op": 242, + "st": -58, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "高光1", + "parent": 7, + "tt": 1, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.48, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 16, + "s": [ + -33.125, + -2.25, + 0 + ], + "to": [ + 6.042, + 0, + 0 + ], + "ti": [ + -6.042, + 0, + 0 + ] + }, + { + "t": 26, + "s": [ + 3.125, + -2.25, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { + "a": 0, + "k": [ + 6, + 36 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 4 + }, + "nm": "矩形路径 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.105882354081, + 0.098039217293, + 0.211764708161, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": -330, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "高光1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 16, + "op": 316, + "st": 16, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "墨镜", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.48, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 5, + "s": [ + 93.748, + 86, + 0 + ], + "to": [ + 0.042, + -0.875, + 0 + ], + "ti": [ + -0.042, + 0.875, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 11, + "s": [ + 93.998, + 80.75, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.52, + "y": 0 + }, + "t": 56, + "s": [ + 93.998, + 80.75, + 0 + ], + "to": [ + -0.042, + 0.875, + 0 + ], + "ti": [ + 0.042, + -0.875, + 0 + ] + }, + { + "t": 62, + "s": [ + 93.748, + 86, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -7.57, + 0 + ], + [ + 0, + -0.82 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 6.57, + 0 + ], + [ + 0.87, + 7.18 + ], + [ + 0.34, + -2.81 + ], + [ + 6.04, + 0 + ], + [ + 0.12, + 8.14 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -0.74, + 0 + ], + [ + -8.2, + 0 + ] + ], + "o": [ + [ + 0.74, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -0.12, + 8.14 + ], + [ + -6.04, + 0 + ], + [ + -0.34, + -2.81 + ], + [ + -0.87, + 7.18 + ], + [ + -6.57, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -0.82 + ], + [ + 8.2, + 0 + ], + [ + 7.57, + 0 + ] + ], + "v": [ + [ + 23.66, + -9 + ], + [ + 25, + -7.51 + ], + [ + 25, + -6.01 + ], + [ + 25, + -5.75 + ], + [ + 12.97, + 8.93 + ], + [ + 0.95, + -2.95 + ], + [ + -3.34, + -2.95 + ], + [ + -14.24, + 9 + ], + [ + -25, + -5.75 + ], + [ + -25, + -6.01 + ], + [ + -25, + -7.51 + ], + [ + -23.66, + -9 + ], + [ + 0.95, + -9 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "墨镜", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "左腮红", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.48 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 5, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.48 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 10, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 57, + "s": [ + 100 + ] + }, + { + "t": 62, + "s": [ + 0 + ] + } + ], + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 115.824, + 94.051, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 13, + 8 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "椭圆路径 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 0.250980407 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 25, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": -5, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "左腮红", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 289, + "st": -11, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "左腮红", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.48 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 5, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.48 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 10, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 57, + "s": [ + 100 + ] + }, + { + "t": 62, + "s": [ + 0 + ] + } + ], + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 70.824, + 94.051, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 13, + 8 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "椭圆路径 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 0.250980407 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 25, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 5, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "左腮红", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 289, + "st": -11, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "嘴巴 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.833, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 57, + "s": [ + 94.195, + 99.5, + 0 + ], + "to": [ + 0, + 0.169, + 0 + ], + "ti": [ + 0, + -0.169, + 0 + ] + }, + { + "t": 62, + "s": [ + 94.195, + 100.513, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -3.65, + 8.13 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0.02, + -0.2 + ] + ], + "v": [ + [ + -6, + 1.4 + ], + [ + 6, + -2.5 + ] + ], + "c": false + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 57, + "s": [ + 15 + ] + }, + { + "t": 62, + "s": [ + 0 + ] + } + ], + "ix": 1 + }, + "e": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 57, + "s": [ + 100 + ] + }, + { + "t": 62, + "s": [ + 65 + ] + } + ], + "ix": 2 + }, + "o": { + "a": 0, + "k": 0, + "ix": 3 + }, + "m": 1, + "ix": 2, + "nm": "修剪路径 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3, + "ix": 5 + }, + "lc": 2, + "lj": 2, + "bm": 0, + "nm": "描边 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + -0.25, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": -5, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "嘴巴", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 56, + "op": 306, + "st": 6, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "嘴巴", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.26, + "y": 0.74 + }, + "t": 5, + "s": [ + 94.195, + 100.513, + 0 + ], + "to": [ + 0, + -0.169, + 0 + ], + "ti": [ + 0, + 0.169, + 0 + ] + }, + { + "t": 10, + "s": [ + 94.195, + 99.5, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -3.65, + 8.13 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0.02, + -0.2 + ] + ], + "v": [ + [ + -6, + 1.4 + ], + [ + 6, + -2.5 + ] + ], + "c": false + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.26 + ], + "y": [ + 0.5 + ] + }, + "t": 5, + "s": [ + 0 + ] + }, + { + "t": 10, + "s": [ + 15 + ] + } + ], + "ix": 1, + "x": "var $bm_rt;\nvar nearestKeyIndex, nearestKeyIndex, currentTime, currentTime, calculatedVelocity, amplitude, frequency, decay;\n$bm_rt = nearestKeyIndex = 0;\nif (numKeys > 0) {\n $bm_rt = nearestKeyIndex = nearestKey(time).index;\n if (key(nearestKeyIndex).time > time) {\n nearestKeyIndex--;\n }\n}\nif (nearestKeyIndex == 0) {\n $bm_rt = currentTime = 0;\n} else {\n $bm_rt = currentTime = $bm_sub(time, key(nearestKeyIndex).time);\n}\nif (nearestKeyIndex > 0 && currentTime < 1) {\n calculatedVelocity = velocityAtTime($bm_sub(key(nearestKeyIndex).time, $bm_div(thisComp.frameDuration, 10)));\n amplitude = 0.2;\n frequency = 2;\n decay = 6;\n $bm_rt = $bm_sum(value, $bm_div($bm_mul($bm_mul(calculatedVelocity, amplitude), Math.sin($bm_mul($bm_mul($bm_mul(frequency, currentTime), 2), Math.PI))), Math.exp($bm_mul(decay, currentTime))));\n} else {\n $bm_rt = value;\n}" + }, + "e": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.26 + ], + "y": [ + 0.5 + ] + }, + "t": 5, + "s": [ + 65 + ] + }, + { + "t": 10, + "s": [ + 100 + ] + } + ], + "ix": 2, + "x": "var $bm_rt;\nvar nearestKeyIndex, nearestKeyIndex, currentTime, currentTime, calculatedVelocity, amplitude, frequency, decay;\n$bm_rt = nearestKeyIndex = 0;\nif (numKeys > 0) {\n $bm_rt = nearestKeyIndex = nearestKey(time).index;\n if (key(nearestKeyIndex).time > time) {\n nearestKeyIndex--;\n }\n}\nif (nearestKeyIndex == 0) {\n $bm_rt = currentTime = 0;\n} else {\n $bm_rt = currentTime = $bm_sub(time, key(nearestKeyIndex).time);\n}\nif (nearestKeyIndex > 0 && currentTime < 1) {\n calculatedVelocity = velocityAtTime($bm_sub(key(nearestKeyIndex).time, $bm_div(thisComp.frameDuration, 10)));\n amplitude = 0.2;\n frequency = 2;\n decay = 6;\n $bm_rt = $bm_sum(value, $bm_div($bm_mul($bm_mul(calculatedVelocity, amplitude), Math.sin($bm_mul($bm_mul($bm_mul(frequency, currentTime), 2), Math.PI))), Math.exp($bm_mul(decay, currentTime))));\n} else {\n $bm_rt = value;\n}" + }, + "o": { + "a": 0, + "k": 0, + "ix": 3 + }, + "m": 1, + "ix": 2, + "nm": "修剪路径 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3, + "ix": 5 + }, + "lc": 2, + "lj": 2, + "bm": 0, + "nm": "描边 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + -0.25, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": -5, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "嘴巴", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 56, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "右眼", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 108, + 77, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 10, + 10 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "椭圆路径 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "右眼", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "左眼", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 80, + 77, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + -0.028, + -0.775 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "椭圆 1", + "np": 1, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 10, + 10 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "椭圆路径 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "左眼", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 16, + "ty": 4, + "nm": "折角", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 124.125, + 116.629, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 4.15, + 0 + ], + [ + 0, + -10.44 + ], + [ + -0.76, + -2.02 + ], + [ + -0.47, + -0.83 + ] + ], + "o": [ + [ + -3.16, + -2.16 + ], + [ + -10.73, + 0 + ], + [ + 0, + 2.29 + ], + [ + 0.34, + 0.9 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 15.125, + -11.559 + ], + [ + 4.315, + -14.129 + ], + [ + -15.125, + 4.771 + ], + [ + -13.945, + 11.271 + ], + [ + -12.535, + 14.131 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3.165, + "ix": 5 + }, + "lc": 2, + "lj": 2, + "bm": 0, + "nm": "描边 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 0.20000000298 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 20, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "折角", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 17, + "ty": 4, + "nm": "圆圈", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 101, + 91.5, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 4.61 + ], + [ + 22.64, + 0 + ], + [ + 0, + -22.64 + ], + [ + -22.64, + 0 + ], + [ + -3.19, + 0.79 + ] + ], + "o": [ + [ + 1.4, + -4.14 + ], + [ + 0, + -22.64 + ], + [ + -22.64, + 0 + ], + [ + 0, + 22.64 + ], + [ + 3.44, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 38.25, + 13.57 + ], + [ + 41, + 0 + ], + [ + 0, + -41 + ], + [ + -41, + 0 + ], + [ + 0, + 41 + ], + [ + 10.59, + 39.26 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "路径 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3, + "ix": 5 + }, + "lc": 2, + "lj": 2, + "bm": 0, + "nm": "描边 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.105882354081, + 0.098039217293, + 0.211764708161, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "填充 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "变换" + } + ], + "nm": "圆圈", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 18, + "ty": 0, + "nm": "流星_[00036-00052].png", + "cl": "png", + "refId": "sequence_0", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 101, + 122, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 101, + 122, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "w": 202, + "h": 244, + "ip": 36, + "op": 53, + "st": 36, + "bm": 0 + }, + { + "ddd": 0, + "ind": 19, + "ty": 0, + "nm": "流星", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 101, + 122, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 101, + 122, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "w": 202, + "h": 244, + "ip": 0, + "op": 300, + "st": 0, + "bm": 0 + } + ], + "markers": [ + { + "tm": 0, + "cm": "0", + "dr": 0 + }, + { + "tm": 5, + "cm": "1", + "dr": 0 + }, + { + "tm": 16, + "cm": "2", + "dr": 0 + }, + { + "tm": 41, + "cm": "3", + "dr": 0 + }, + { + "tm": 56, + "cm": "4", + "dr": 0 + }, + { + "tm": 62, + "cm": "5", + "dr": 0 + } + ] +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/animoji/baihu_Animoji.bundle b/FaceUnity/src/main/assets/animoji/baihu_Animoji.bundle new file mode 100644 index 000000000..a78c51d65 Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/baihu_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/baimao_Animoji.bundle b/FaceUnity/src/main/assets/animoji/baimao_Animoji.bundle new file mode 100644 index 000000000..708a73cae Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/baimao_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/cartoon_princess_Animoji.bundle b/FaceUnity/src/main/assets/animoji/cartoon_princess_Animoji.bundle new file mode 100644 index 000000000..cab34c84d Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/cartoon_princess_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/douniuquan_Animoji.bundle b/FaceUnity/src/main/assets/animoji/douniuquan_Animoji.bundle new file mode 100644 index 000000000..74ae417ed Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/douniuquan_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/frog_Animoji.bundle b/FaceUnity/src/main/assets/animoji/frog_Animoji.bundle new file mode 100644 index 000000000..84ac64458 Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/frog_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/hashiqi_Animoji.bundle b/FaceUnity/src/main/assets/animoji/hashiqi_Animoji.bundle new file mode 100644 index 000000000..52843b920 Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/hashiqi_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/hetun_Animoji.bundle b/FaceUnity/src/main/assets/animoji/hetun_Animoji.bundle new file mode 100644 index 000000000..2a8ddfbd4 Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/hetun_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/huangya_Animoji.bundle b/FaceUnity/src/main/assets/animoji/huangya_Animoji.bundle new file mode 100644 index 000000000..50f51182c Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/huangya_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/kaola_Animoji.bundle b/FaceUnity/src/main/assets/animoji/kaola_Animoji.bundle new file mode 100644 index 000000000..bbbad5d30 Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/kaola_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/kuloutou_Animoji.bundle b/FaceUnity/src/main/assets/animoji/kuloutou_Animoji.bundle new file mode 100644 index 000000000..b69842c62 Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/kuloutou_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/qgirl_Animoji.bundle b/FaceUnity/src/main/assets/animoji/qgirl_Animoji.bundle new file mode 100644 index 000000000..9b93c855c Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/qgirl_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/animoji/wuxia_Animoji.bundle b/FaceUnity/src/main/assets/animoji/wuxia_Animoji.bundle new file mode 100644 index 000000000..8dc259842 Binary files /dev/null and b/FaceUnity/src/main/assets/animoji/wuxia_Animoji.bundle differ diff --git a/FaceUnity/src/main/assets/effect/action/actiongame_android.bundle b/FaceUnity/src/main/assets/effect/action/actiongame_android.bundle new file mode 100644 index 000000000..4eaf23ef2 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/action/actiongame_android.bundle differ diff --git a/FaceUnity/src/main/assets/effect/ar/baozi.bundle b/FaceUnity/src/main/assets/effect/ar/baozi.bundle new file mode 100644 index 000000000..234c5c70b Binary files /dev/null and b/FaceUnity/src/main/assets/effect/ar/baozi.bundle differ diff --git a/FaceUnity/src/main/assets/effect/ar/bluebird.bundle b/FaceUnity/src/main/assets/effect/ar/bluebird.bundle new file mode 100644 index 000000000..9a26e4229 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/ar/bluebird.bundle differ diff --git a/FaceUnity/src/main/assets/effect/ar/fenhudie.bundle b/FaceUnity/src/main/assets/effect/ar/fenhudie.bundle new file mode 100644 index 000000000..affbcb7a3 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/ar/fenhudie.bundle differ diff --git a/FaceUnity/src/main/assets/effect/ar/lanhudie.bundle b/FaceUnity/src/main/assets/effect/ar/lanhudie.bundle new file mode 100644 index 000000000..b7476fef8 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/ar/lanhudie.bundle differ diff --git a/FaceUnity/src/main/assets/effect/ar/tiger.bundle b/FaceUnity/src/main/assets/effect/ar/tiger.bundle new file mode 100644 index 000000000..0997d0f6a Binary files /dev/null and b/FaceUnity/src/main/assets/effect/ar/tiger.bundle differ diff --git a/FaceUnity/src/main/assets/effect/ar/tiger_bai.bundle b/FaceUnity/src/main/assets/effect/ar/tiger_bai.bundle new file mode 100644 index 000000000..d4a68138d Binary files /dev/null and b/FaceUnity/src/main/assets/effect/ar/tiger_bai.bundle differ diff --git a/FaceUnity/src/main/assets/effect/ar/tiger_huang.bundle b/FaceUnity/src/main/assets/effect/ar/tiger_huang.bundle new file mode 100644 index 000000000..d94500201 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/ar/tiger_huang.bundle differ diff --git a/FaceUnity/src/main/assets/effect/ar/xiongmao.bundle b/FaceUnity/src/main/assets/effect/ar/xiongmao.bundle new file mode 100644 index 000000000..57c1f94a9 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/ar/xiongmao.bundle differ diff --git a/FaceUnity/src/main/assets/effect/big_head/big_head.bundle b/FaceUnity/src/main/assets/effect/big_head/big_head.bundle new file mode 100644 index 000000000..3c7890ab7 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/big_head/big_head.bundle differ diff --git a/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp2.bundle b/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp2.bundle new file mode 100644 index 000000000..9e23331fe Binary files /dev/null and b/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp2.bundle differ diff --git a/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp4.bundle b/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp4.bundle new file mode 100644 index 000000000..778646332 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp4.bundle differ diff --git a/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp5.bundle b/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp5.bundle new file mode 100644 index 000000000..ccef9c7f5 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp5.bundle differ diff --git a/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp6.bundle b/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp6.bundle new file mode 100644 index 000000000..96ee4f503 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/big_head/big_head_facewarp6.bundle differ diff --git a/FaceUnity/src/main/assets/effect/big_head/big_head_smile.bundle b/FaceUnity/src/main/assets/effect/big_head/big_head_smile.bundle new file mode 100644 index 000000000..a90c68982 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/big_head/big_head_smile.bundle differ diff --git a/FaceUnity/src/main/assets/effect/expression/future_warrior.bundle b/FaceUnity/src/main/assets/effect/expression/future_warrior.bundle new file mode 100644 index 000000000..16db3286c Binary files /dev/null and b/FaceUnity/src/main/assets/effect/expression/future_warrior.bundle differ diff --git a/FaceUnity/src/main/assets/effect/expression/jet_mask.bundle b/FaceUnity/src/main/assets/effect/expression/jet_mask.bundle new file mode 100644 index 000000000..baf7eb1e8 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/expression/jet_mask.bundle differ diff --git a/FaceUnity/src/main/assets/effect/expression/luhantongkuan_ztt_fu.bundle b/FaceUnity/src/main/assets/effect/expression/luhantongkuan_ztt_fu.bundle new file mode 100644 index 000000000..3e467c1d6 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/expression/luhantongkuan_ztt_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/expression/qingqing_ztt_fu.bundle b/FaceUnity/src/main/assets/effect/expression/qingqing_ztt_fu.bundle new file mode 100644 index 000000000..8cdeaf20b Binary files /dev/null and b/FaceUnity/src/main/assets/effect/expression/qingqing_ztt_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/expression/sdx2.bundle b/FaceUnity/src/main/assets/effect/expression/sdx2.bundle new file mode 100644 index 000000000..fb8fb3fa7 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/expression/sdx2.bundle differ diff --git a/FaceUnity/src/main/assets/effect/expression/xiaobianzi_zh_fu.bundle b/FaceUnity/src/main/assets/effect/expression/xiaobianzi_zh_fu.bundle new file mode 100644 index 000000000..fdfa9a2b2 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/expression/xiaobianzi_zh_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/expression/xiaoxueshen_ztt_fu.bundle b/FaceUnity/src/main/assets/effect/expression/xiaoxueshen_ztt_fu.bundle new file mode 100644 index 000000000..61e282fb2 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/expression/xiaoxueshen_ztt_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/facewarp/facewarp2.bundle b/FaceUnity/src/main/assets/effect/facewarp/facewarp2.bundle new file mode 100644 index 000000000..8868e88bd Binary files /dev/null and b/FaceUnity/src/main/assets/effect/facewarp/facewarp2.bundle differ diff --git a/FaceUnity/src/main/assets/effect/facewarp/facewarp3.bundle b/FaceUnity/src/main/assets/effect/facewarp/facewarp3.bundle new file mode 100644 index 000000000..71a32bf1d Binary files /dev/null and b/FaceUnity/src/main/assets/effect/facewarp/facewarp3.bundle differ diff --git a/FaceUnity/src/main/assets/effect/facewarp/facewarp4.bundle b/FaceUnity/src/main/assets/effect/facewarp/facewarp4.bundle new file mode 100644 index 000000000..a35cb6b95 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/facewarp/facewarp4.bundle differ diff --git a/FaceUnity/src/main/assets/effect/facewarp/facewarp5.bundle b/FaceUnity/src/main/assets/effect/facewarp/facewarp5.bundle new file mode 100644 index 000000000..a0fabc925 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/facewarp/facewarp5.bundle differ diff --git a/FaceUnity/src/main/assets/effect/facewarp/facewarp6.bundle b/FaceUnity/src/main/assets/effect/facewarp/facewarp6.bundle new file mode 100644 index 000000000..ffbd3b821 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/facewarp/facewarp6.bundle differ diff --git a/FaceUnity/src/main/assets/effect/gesture/ctrl_flower.bundle b/FaceUnity/src/main/assets/effect/gesture/ctrl_flower.bundle new file mode 100644 index 000000000..fad2583fb Binary files /dev/null and b/FaceUnity/src/main/assets/effect/gesture/ctrl_flower.bundle differ diff --git a/FaceUnity/src/main/assets/effect/gesture/ctrl_rain.bundle b/FaceUnity/src/main/assets/effect/gesture/ctrl_rain.bundle new file mode 100644 index 000000000..c34a4b09b Binary files /dev/null and b/FaceUnity/src/main/assets/effect/gesture/ctrl_rain.bundle differ diff --git a/FaceUnity/src/main/assets/effect/gesture/ctrl_snow.bundle b/FaceUnity/src/main/assets/effect/gesture/ctrl_snow.bundle new file mode 100644 index 000000000..800e1d0f3 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/gesture/ctrl_snow.bundle differ diff --git a/FaceUnity/src/main/assets/effect/gesture/ssd_thread_cute.bundle b/FaceUnity/src/main/assets/effect/gesture/ssd_thread_cute.bundle new file mode 100644 index 000000000..dcdde4ead Binary files /dev/null and b/FaceUnity/src/main/assets/effect/gesture/ssd_thread_cute.bundle differ diff --git a/FaceUnity/src/main/assets/effect/gesture/ssd_thread_korheart.bundle b/FaceUnity/src/main/assets/effect/gesture/ssd_thread_korheart.bundle new file mode 100644 index 000000000..f75d253c9 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/gesture/ssd_thread_korheart.bundle differ diff --git a/FaceUnity/src/main/assets/effect/gesture/ssd_thread_six.bundle b/FaceUnity/src/main/assets/effect/gesture/ssd_thread_six.bundle new file mode 100644 index 000000000..6602d71e0 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/gesture/ssd_thread_six.bundle differ diff --git a/FaceUnity/src/main/assets/effect/landmarks.bundle b/FaceUnity/src/main/assets/effect/landmarks.bundle new file mode 100644 index 000000000..82b1031e3 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/landmarks.bundle differ diff --git a/FaceUnity/src/main/assets/effect/musicfilter/douyin_01.bundle b/FaceUnity/src/main/assets/effect/musicfilter/douyin_01.bundle new file mode 100644 index 000000000..d6e31d5e7 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/musicfilter/douyin_01.bundle differ diff --git a/FaceUnity/src/main/assets/effect/musicfilter/douyin_01.mp3 b/FaceUnity/src/main/assets/effect/musicfilter/douyin_01.mp3 new file mode 100644 index 000000000..16f895789 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/musicfilter/douyin_01.mp3 differ diff --git a/FaceUnity/src/main/assets/effect/musicfilter/douyin_02.bundle b/FaceUnity/src/main/assets/effect/musicfilter/douyin_02.bundle new file mode 100644 index 000000000..58253544a Binary files /dev/null and b/FaceUnity/src/main/assets/effect/musicfilter/douyin_02.bundle differ diff --git a/FaceUnity/src/main/assets/effect/musicfilter/douyin_02.mp3 b/FaceUnity/src/main/assets/effect/musicfilter/douyin_02.mp3 new file mode 100644 index 000000000..16f895789 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/musicfilter/douyin_02.mp3 differ diff --git a/FaceUnity/src/main/assets/effect/normal/cat_sparks.bundle b/FaceUnity/src/main/assets/effect/normal/cat_sparks.bundle new file mode 100644 index 000000000..088b1bdfc Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/cat_sparks.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/daisypig.bundle b/FaceUnity/src/main/assets/effect/normal/daisypig.bundle new file mode 100644 index 000000000..8c0739f1a Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/daisypig.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/fashi.bundle b/FaceUnity/src/main/assets/effect/normal/fashi.bundle new file mode 100644 index 000000000..7318669d3 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/fashi.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/fu_zh_fenshu.bundle b/FaceUnity/src/main/assets/effect/normal/fu_zh_fenshu.bundle new file mode 100644 index 000000000..a5f523b7b Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/fu_zh_fenshu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/gaoshiqing.bundle b/FaceUnity/src/main/assets/effect/normal/gaoshiqing.bundle new file mode 100644 index 000000000..153d019fa Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/gaoshiqing.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/newy1.bundle b/FaceUnity/src/main/assets/effect/normal/newy1.bundle new file mode 100644 index 000000000..a4d86abab Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/newy1.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/redribbt.bundle b/FaceUnity/src/main/assets/effect/normal/redribbt.bundle new file mode 100644 index 000000000..ab5fea384 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/redribbt.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/sdlr.bundle b/FaceUnity/src/main/assets/effect/normal/sdlr.bundle new file mode 100644 index 000000000..ebc18df6d Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/sdlr.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/sdlu.bundle b/FaceUnity/src/main/assets/effect/normal/sdlu.bundle new file mode 100644 index 000000000..fad48d6ec Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/sdlu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/wobushi.bundle b/FaceUnity/src/main/assets/effect/normal/wobushi.bundle new file mode 100644 index 000000000..3c98927d7 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/wobushi.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/xlong_zh_fu.bundle b/FaceUnity/src/main/assets/effect/normal/xlong_zh_fu.bundle new file mode 100644 index 000000000..914ad6c4c Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/xlong_zh_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/normal/xueqiu_lm_fu.bundle b/FaceUnity/src/main/assets/effect/normal/xueqiu_lm_fu.bundle new file mode 100644 index 000000000..f6bf32deb Binary files /dev/null and b/FaceUnity/src/main/assets/effect/normal/xueqiu_lm_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/bg_segment.bundle b/FaceUnity/src/main/assets/effect/segment/bg_segment.bundle new file mode 100644 index 000000000..ddc65ca20 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/bg_segment.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/boyfriend1.bundle b/FaceUnity/src/main/assets/effect/segment/boyfriend1.bundle new file mode 100644 index 000000000..49008e265 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/boyfriend1.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/boyfriend2.bundle b/FaceUnity/src/main/assets/effect/segment/boyfriend2.bundle new file mode 100644 index 000000000..e3da0418d Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/boyfriend2.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/boyfriend3.bundle b/FaceUnity/src/main/assets/effect/segment/boyfriend3.bundle new file mode 100644 index 000000000..b07a9bb23 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/boyfriend3.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/gufeng_zh_fu.bundle b/FaceUnity/src/main/assets/effect/segment/gufeng_zh_fu.bundle new file mode 100644 index 000000000..120948ebf Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/gufeng_zh_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/hez_ztt_fu.bundle b/FaceUnity/src/main/assets/effect/segment/hez_ztt_fu.bundle new file mode 100644 index 000000000..73cd7d3df Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/hez_ztt_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/human_outline.bundle b/FaceUnity/src/main/assets/effect/segment/human_outline.bundle new file mode 100644 index 000000000..14adbadac Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/human_outline.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/ice_lm_fu.bundle b/FaceUnity/src/main/assets/effect/segment/ice_lm_fu.bundle new file mode 100644 index 000000000..2c41a4a5d Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/ice_lm_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/sea_lm_fu.bundle b/FaceUnity/src/main/assets/effect/segment/sea_lm_fu.bundle new file mode 100644 index 000000000..d4061c598 Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/sea_lm_fu.bundle differ diff --git a/FaceUnity/src/main/assets/effect/segment/xiandai_ztt_fu.bundle b/FaceUnity/src/main/assets/effect/segment/xiandai_ztt_fu.bundle new file mode 100644 index 000000000..67091225e Binary files /dev/null and b/FaceUnity/src/main/assets/effect/segment/xiandai_ztt_fu.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/color_setup.json b/FaceUnity/src/main/assets/makeup/color_setup.json new file mode 100644 index 000000000..319525c61 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/color_setup.json @@ -0,0 +1,1170 @@ +{ + "color_mu_style_eyebrow_01": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyeshadow_01": { + "color1": [ + 1.0, + 0.43, + 0.44, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color2": [ + 0.88, + 0.32, + 0.32, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color3": [ + 0.90, + 0.55, + 0.36, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color4": [ + 0.78, + 0.24, + 0.37, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color5": [ + 1.0, + 0.42, + 0.49, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + }, + "color_mu_style_eyeshadow_02": { + "color1": [ + 1.0, + 0.72, + 0.36, + 1.0, + 0.93, + 0.45, + 0.25, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color2": [ + 0.89, + 0.61, + 0.41, + 1.0, + 0.86, + 0.26, + 0.07, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color3": [ + 0.98, + 0.75, + 0.52, + 1.0, + 0.66, + 0.28, + 0.23, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color4": [ + 1.0, + 0.58, + 0.40, + 1.0, + 0.72, + 0.38, + 0.14, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color5": [ + 1.0, + 0.62, + 0.55, + 1.0, + 0.56, + 0.17, + 0.17, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + }, + "color_mu_style_eyeshadow_03": { + "color1": [ + 1.0, + 0.72, + 0.36, + 1.0, + 0.93, + 0.45, + 0.25, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color2": [ + 0.89, + 0.61, + 0.41, + 1.0, + 0.86, + 0.26, + 0.07, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color3": [ + 0.98, + 0.75, + 0.52, + 1.0, + 0.66, + 0.28, + 0.23, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color4": [ + 1.0, + 0.58, + 0.40, + 1.0, + 0.72, + 0.38, + 0.14, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color5": [ + 1.0, + 0.62, + 0.55, + 1.0, + 0.56, + 0.17, + 0.17, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + }, + "color_mu_style_eyeshadow_04": { + "color1": [ + 0.82, + 0.15, + 0.24, + 1.0, + 1.0, + 0.92, + 0.74, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color2": [ + 0.88, + 0.32, + 0.32, + 1.0, + 0.97, + 0.86, + 0.78, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color3": [ + 0.90, + 0.55, + 0.36, + 1.0, + 0.98, + 0.8, + 0.76, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color4": [ + 0.78, + 0.24, + 0.37, + 1.0, + 0.92, + 0.91, + 0.84, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "color5": [ + 1.0, + 0.43, + 0.44, + 1.0, + 0.99, + 0.78, + 0.84, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + }, + "color_mu_style_eyeshadow_05": { + "color1": [ + 1.0, + 0.72, + 0.36, + 1.0, + 1.0, + 0.43, + 0.44, + 1.0, + 0.72, + 0.38, + 0.15, + 1.0 + ], + "color2": [ + 0.89, + 0.61, + 0.41, + 1.0, + 0.78, + 0.24, + 0.37, + 1.0, + 0.56, + 0.17, + 0.17, + 1.0 + ], + "color3": [ + 0.98, + 0.75, + 0.52, + 1.0, + 0.90, + 0.55, + 0.36, + 1.0, + 0.93, + 0.45, + 0.25, + 1.0 + ], + "color4": [ + 1.0, + 0.58, + 0.40, + 1.0, + 0.88, + 0.32, + 0.32, + 1.0, + 0.66, + 0.28, + 0.23, + 1.0 + ], + "color5": [ + 1.0, + 0.62, + 0.55, + 1.0, + 1.0, + 0.42, + 0.49, + 1.0, + 0.86, + 0.26, + 0.07, + 1.0 + ] + }, + "color_mu_style_eyeshadow_06": { + "color1": [ + 1.0, + 0.43, + 0.44, + 1.0, + 0.66, + 0.28, + 0.23, + 1.0, + 1.0, + 0.92, + 0.74, + 1.0 + ], + "color2": [ + 0.88, + 0.32, + 0.32, + 1.0, + 0.69, + 0.25, + 0.25, + 1.0, + 0.98, + 0.8, + 0.76, + 1.0 + ], + "color3": [ + 0.90, + 0.55, + 0.36, + 1.0, + 0.72, + 0.38, + 0.15, + 1.0, + 0.97, + 0.86, + 0.78, + 1.0 + ], + "color4": [ + 1.0, + 0.58, + 0.40, + 1.0, + 0.56, + 0.17, + 0.17, + 1.0, + 0.99, + 0.78, + 0.84, + 1.0 + ], + "color5": [ + 1.0, + 0.62, + 0.55, + 1.0, + 0.86, + 0.26, + 0.07, + 1.0, + 0.92, + 0.91, + 0.84, + 1.0 + ] + }, + "color_mu_style_eyelash_01": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyelash_02": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyelash_03": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyelash_04": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyelash_05": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyelash_06": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyeliner_01": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyeliner_02": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyeliner_03": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyeliner_04": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyeliner_05": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyeliner_06": { + "color1": [ + 0.36, + 0.10, + 0.10, + 1.0 + ], + "color2": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "color3": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "color4": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "color5": [ + 0.31, + 0.17, + 0.22, + 1.0 + ] + }, + "color_mu_style_foundation_01": { + "color1": [ + 0.82, + 0.71, + 0.62, + 1.0 + ], + "color2": [ + 0.87, + 0.74, + 0.69, + 1.0 + ], + "color3": [ + 0.91, + 0.81, + 0.74, + 1.0 + ], + "color4": [ + 0.8, + 0.74, + 0.65, + 1.0 + ], + "color5": [ + 0.74, + 0.62, + 0.56, + 1.0 + ] + }, + "color_mu_style_highlight_01": { + "color1": [ + 0.98, + 0.95, + 0.94, + 1.0 + ], + "color2": [ + 1.0, + 0.97, + 0.93, + 1.0 + ], + "color3": [ + 1.0, + 0.96, + 0.93, + 1.0 + ], + "color4": [ + 0.97, + 0.95, + 0.95, + 1.0 + ], + "color5": [ + 0.99, + 0.98, + 0.95, + 1.0 + ] + }, + "color_mu_style_highlight_02": { + "color1": [ + 0.98, + 0.95, + 0.94, + 1.0 + ], + "color2": [ + 1.0, + 0.97, + 0.93, + 1.0 + ], + "color3": [ + 1.0, + 0.96, + 0.93, + 1.0 + ], + "color4": [ + 0.97, + 0.95, + 0.95, + 1.0 + ], + "color5": [ + 0.99, + 0.98, + 0.95, + 1.0 + ] + }, + "color_mu_style_blush_01": { + "color1": [ + 0.96, + 0.44, + 0.42, + 1.0 + ], + "color2": [ + 0.93, + 0.35, + 0.43, + 1.0 + ], + "color3": [ + 0.89, + 0.26, + 0.28, + 1.0 + ], + "color4": [ + 0.89, + 0.26, + 0.40, + 1.0 + ], + "color5": [ + 1.0, + 0.39, + 0.32, + 1.0 + ] + }, + "color_mu_style_blush_02": { + "color1": [ + 0.96, + 0.44, + 0.42, + 1.0 + ], + "color2": [ + 0.93, + 0.35, + 0.43, + 1.0 + ], + "color3": [ + 0.89, + 0.26, + 0.28, + 1.0 + ], + "color4": [ + 0.89, + 0.26, + 0.40, + 1.0 + ], + "color5": [ + 1.0, + 0.39, + 0.32, + 1.0 + ] + }, + "color_mu_style_blush_03": { + "color1": [ + 0.96, + 0.44, + 0.42, + 1.0 + ], + "color2": [ + 0.93, + 0.35, + 0.43, + 1.0 + ], + "color3": [ + 0.89, + 0.26, + 0.28, + 1.0 + ], + "color4": [ + 0.89, + 0.26, + 0.40, + 1.0 + ], + "color5": [ + 1.0, + 0.39, + 0.32, + 1.0 + ] + }, + "color_mu_style_blush_04": { + "color1": [ + 0.96, + 0.44, + 0.42, + 1.0 + ], + "color2": [ + 0.93, + 0.35, + 0.43, + 1.0 + ], + "color3": [ + 0.89, + 0.26, + 0.28, + 1.0 + ], + "color4": [ + 0.89, + 0.26, + 0.40, + 1.0 + ], + "color5": [ + 1.0, + 0.39, + 0.32, + 1.0 + ] + }, + "color_mu_style_contour_01": { + "color1": [ + 0.33, + 0.16, + 0.09, + 1.0 + ], + "color2": [ + 0.41, + 0.22, + 0.15, + 1.0 + ], + "color3": [ + 0.34, + 0.1, + 0.1, + 1.0 + ], + "color4": [ + 0.4, + 0.12, + 0.18, + 1.0 + ], + "color5": [ + 0.32, + 0.23, + 0.16, + 1.0 + ] + }, + "color_mu_style_lip_01": { + "color1": [ + 0.60, + 0.16, + 0.16, + 1.0 + ], + "color2": [ + 0.84, + 0.16, + 0.27, + 1.0 + ], + "color3": [ + 0.84, + 0.26, + 0.16, + 1.0 + ], + "color4": [ + 0.60, + 0.11, + 0.23, + 1.0 + ], + "color5": [ + 0.81, + 0.31, + 0.22, + 1.0 + ] + }, + "color_mu_style_eyepupil_01": { + "color1": [ + 0.33, + 0.13, + 0.06, + 1.0 + ], + "color2": [ + 0.61, + 0.18, + 0.25, + 1.0 + ], + "color3": [ + 0.73, + 0.51, + 0.11, + 1.0 + ], + "color4": [ + 0.13, + 0.72, + 0.72, + 1.0 + ], + "color5": [ + 0.39, + 0.64, + 0.43, + 1.0 + ] + } +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/chaoa.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/chaoa.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/chaoa.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/chaoa.bundle diff --git a/FaceUnity/src/main/assets/makeup/chaomo.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/chaomo.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/chaomo.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/chaomo.bundle diff --git a/FaceUnity/src/main/assets/makeup/chuju.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/chuju.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/chuju.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/chuju.bundle diff --git a/FaceUnity/src/main/assets/makeup/chuqiu.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/chuqiu.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/chuqiu.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/chuqiu.bundle diff --git a/FaceUnity/src/main/assets/makeup/diadiatu.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/diadiatu.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/diadiatu.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/diadiatu.bundle diff --git a/FaceUnity/src/main/assets/makeup/dongling.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/dongling.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/dongling.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/dongling.bundle diff --git a/FaceUnity/src/main/assets/makeup/dousha.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/dousha.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/dousha.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/dousha.bundle diff --git a/FaceUnity/src/main/assets/makeup/gangfeng.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/gangfeng.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/gangfeng.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/gangfeng.bundle diff --git a/FaceUnity/src/main/assets/makeup/guofeng.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/guofeng.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/guofeng.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/guofeng.bundle diff --git a/FaceUnity/src/main/assets/makeup/hongfeng.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/hongfeng.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/hongfeng.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/hongfeng.bundle diff --git a/FaceUnity/src/main/assets/makeup/hunxie.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/hunxie.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/hunxie.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/hunxie.bundle diff --git a/FaceUnity/src/main/assets/makeup/jianling.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/jianling.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/jianling.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/jianling.bundle diff --git a/FaceUnity/src/main/assets/makeup/linjia.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/linjia.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/linjia.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/linjia.bundle diff --git a/FaceUnity/src/main/assets/makeup/naicha.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/naicha.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/naicha.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/naicha.bundle diff --git a/FaceUnity/src/main/assets/makeup/nuandong.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/nuandong.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/nuandong.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/nuandong.bundle diff --git a/FaceUnity/src/main/assets/makeup/oumei.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/oumei.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/oumei.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/oumei.bundle diff --git a/FaceUnity/src/main/assets/makeup/qianzhihe.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/qianzhihe.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/qianzhihe.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/qianzhihe.bundle diff --git a/FaceUnity/src/main/assets/makeup/renyu.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/renyu.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/renyu.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/renyu.bundle diff --git a/FaceUnity/src/main/assets/makeup/rose.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/rose.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/rose.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/rose.bundle diff --git a/FaceUnity/src/main/assets/makeup/shaonv.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/shaonv.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/shaonv.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/shaonv.bundle diff --git a/FaceUnity/src/main/assets/makeup/tianmei.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/tianmei.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/tianmei.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/tianmei.bundle diff --git a/FaceUnity/src/main/assets/makeup/wumei.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/wumei.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/wumei.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/wumei.bundle diff --git a/FaceUnity/src/main/assets/makeup/xinggan.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/xinggan.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/xinggan.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/xinggan.bundle diff --git a/FaceUnity/src/main/assets/makeup/yanshimao.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/yanshimao.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/yanshimao.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/yanshimao.bundle diff --git a/FaceUnity/src/main/assets/makeup/ziyun.bundle b/FaceUnity/src/main/assets/makeup/combination_bundle/ziyun.bundle similarity index 100% rename from FaceUnity/src/main/assets/makeup/ziyun.bundle rename to FaceUnity/src/main/assets/makeup/combination_bundle/ziyun.bundle diff --git a/FaceUnity/src/main/assets/makeup/config_json/chaomo.json b/FaceUnity/src/main/assets/makeup/config_json/chaomo.json new file mode 100644 index 000000000..053bd9622 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/chaomo.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 0.800000011920929, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 1.0, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 1.0, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 0.9882352948188782, + 0.95686274766922, + 0.9372549057006836, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 1.0, + "makeup_lip_color": [ + 0.501960813999176, + 0.10196078568696976, + 0.10196078568696976, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 1.0, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/chuju.json b/FaceUnity/src/main/assets/makeup/config_json/chuju.json new file mode 100644 index 000000000..909d1f1ec --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/chuju.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 0.800000011920929, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 0.800000011920929, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 0.699999988079071, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.6000000238418579, + "makeup_lip_color": [ + 0.6509804129600525, + 0.3019607961177826, + 0.250980406999588, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 0.8999999761581421, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/chuqiu.json b/FaceUnity/src/main/assets/makeup/config_json/chuqiu.json new file mode 100644 index 000000000..d6a8201a6 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/chuqiu.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 1.0, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 1.0, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 1.0, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 0.9882352948188782, + 0.9647058844566345, + 0.9490196108818054, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 0.800000011920929, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.6000000238418579, + "makeup_lip_color": [ + 0.7215686440467835, + 0.2705882489681244, + 0.18039216101169587, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 0.8999999761581421, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/diadiatu.json b/FaceUnity/src/main/assets/makeup/config_json/diadiatu.json new file mode 100644 index 000000000..51df2ff45 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/diadiatu.json @@ -0,0 +1,102 @@ +{ + "makeup_eyelash_color": [ + 0.3333333432674408, + 0.1921568661928177, + 0.1568627506494522, + 1.0 + ], + "tex_eyelash": "eyelash03.png", + "makeup_intensity_eyelash": 0.699999988079071, + "makeup_name": "Group_1_25", + "makeup_eyeBrow_color": [ + 0.5254902243614197, + 0.45098039507865906, + 0.32156863808631897, + 1.0 + ], + "tex_eyeBrow": "brow6.png", + "brow_warp": 0.0, + "brow_warp_type": 0, + "use_brow_v2": 1, + "makeup_intensity_eyeBrow": 0.800000011920929, + "makeup_eyeLiner_color": [ + 0.5098039507865906, + 0.30588236451148987, + 0.2549019753932953, + 1.0 + ], + "tex_eyeLiner": "eyeliner04.png", + "makeup_intensity_eyeLiner": 0.75, + "blend_type_tex_eye": 1, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "makeup_eye_color2": [ + 0.47843137383461, + 0.24313725531101227, + 0.2235294133424759, + 1.0 + ], + "makeup_eye_color3": [ + 0.49803921580314636, + 0.20392157137393951, + 0.1921568661928177, + 1.0 + ], + "tex_eye": "eye11.png", + "tex_eye2": "eye66.png", + "tex_eye3": "eye33.png", + "makeup_intensity_eye": 0.6000000238418579, + "makeup_pupil_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_pupil": "美瞳3.png", + "makeup_intensity_pupil": 0.800000011920929, + "makeup_lip_color": [ + 0.7254902124404907, + 0.16862745583057404, + 0.2235294133424759, + 1.0 + ], + "is_two_color": 0, + "tex_lip_mask_zz": "mask1.png", + "tex_lip_mask_bz": "mask.png", + "lip_type": 0, + "makeup_intensity_lip": 0.949999988079071, + "blend_type_tex_blusher": 1, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "mu_style_highlight_02.png", + "makeup_intensity_highlight": 0.699999988079071, + "makeup_shadow_color": [ + 0.7019608020782471, + 0.3764705955982208, + 0.29411765933036804, + 1.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 1.0, + "use_eye_v2": 1 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/dongling.json b/FaceUnity/src/main/assets/makeup/config_json/dongling.json new file mode 100644 index 000000000..42961b8a1 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/dongling.json @@ -0,0 +1,111 @@ +{ + "makeup_lip_color": [ + 0.6784313917160034, + 0.0470588244497776, + 0.24705882370471954, + 1.0 + ], + "makeup_lip_color_v2": [ + 0.6784313917160034, + 0.0470588244497776, + 0.24705882370471954, + 1.0 + ], + "makeup_lip_color_mix_strength": 0.6000000238418579, + "makeup_lip_highlight_strength": 0.800000011920929, + "makeup_lip_highlight_enable": 1, + "tex_lip_mask_zz": "mask1.png", + "tex_lip_mask_bz": "mask.png", + "lip_type": 7, + "makeup_intensity_lip": 0.8999999761581421, + "makeup_name": "Group_1_13", + "blend_type_tex_eye": 1, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 0, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.800000011920929, + 0.10980392247438431, + 0.3294117748737335, + 1.0 + ], + "tex_eye": "eye1.png", + "tex_eye2": "eye_2.png", + "makeup_intensity_eye": 0.8999999761581421, + "makeup_pupil_color": [ + 0.5882353186607361, + 0.5921568870544434, + 0.43921568989753723, + 1.0 + ], + "tex_pupil": "eyepupil.png", + "makeup_intensity_pupil": 1.0, + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 1.0, + 0.11372549086809158, + 0.45490196347236633, + 1.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 0.800000011920929, + "makeup_foundation_color": [ + 0.8627451062202454, + 0.7803921699523926, + 0.7803921699523926, + 1.0 + ], + "tex_foundation": "zhuangrong_fd.png", + "makeup_intensity_foundation": 0.800000011920929, + "makeup_eyelash_color": [ + 0.38823530077934265, + 0.12941177189350128, + 0.21176470816135406, + 1.0 + ], + "tex_eyelash": "eyeLash.png", + "makeup_intensity_eyelash": 0.6000000238418579, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.800000011920929, + "makeup_eyeBrow_color": [ + 0.3176470696926117, + 0.24705882370471954, + 0.22745098173618317, + 1.0 + ], + "tex_eyeBrow": "brow6.png", + "brow_warp": 0.0, + "brow_warp_type": 6, + "use_brow_v2": 1, + "makeup_intensity_eyeBrow": 0.800000011920929, + "makeup_eyeLiner_color": [ + 0.5411764979362488, + 0.14509804546833038, + 0.2705882489681244, + 1.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 0.25, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "mu_style_highlight_01.png", + "makeup_intensity_highlight": 0.800000011920929, + "use_eye_v2": 1 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/gangfeng.json b/FaceUnity/src/main/assets/makeup/config_json/gangfeng.json new file mode 100644 index 000000000..28575a85d --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/gangfeng.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 1.0, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 0.800000011920929, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 0.800000011920929, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 0.8999999761581421, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.800000011920929, + "makeup_lip_color": [ + 0.5803921818733215, + 0.25882354378700259, + 0.20000000298023225, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 0.800000011920929, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/guofeng.json b/FaceUnity/src/main/assets/makeup/config_json/guofeng.json new file mode 100644 index 000000000..9dd3167ee --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/guofeng.json @@ -0,0 +1,96 @@ +{ + "makeup_eyelash_color": [ + 0.6117647290229797, + 0.4313725531101227, + 0.12156862765550613, + 1.0 + ], + "tex_eyelash": "eyeLash03.png", + "makeup_intensity_eyelash": 0.550000011920929, + "makeup_name": "Group_1_25", + "makeup_eyeBrow_color": [ + 0.5254902243614197, + 0.45098039507865906, + 0.32156863808631897, + 1.0 + ], + "tex_eyeBrow": "brow6.png", + "brow_warp": 0.0, + "brow_warp_type": 0, + "use_brow_v2": 1, + "makeup_intensity_eyeBrow": 0.800000011920929, + "makeup_eyeLiner_color": [ + 0.4627451002597809, + 0.35686275362968445, + 0.20392157137393951, + 1.0 + ], + "tex_eyeLiner": "eyeLiner03.png", + "makeup_intensity_eyeLiner": 0.5, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.6705882549285889, + 0.3529411852359772, + 0.19607843458652496, + 1.0 + ], + "tex_eye": "eye03.png", + "makeup_intensity_eye": 0.8500000238418579, + "makeup_lip_color": [ + 0.5490196347236633, + 0.0, + 0.007843137718737125, + 1.0 + ], + "is_two_color": 0, + "tex_lip_mask_zz": "GF1015-5zz.png", + "tex_lip_mask_bz": "GF1015-5.png", + "lip_type": 0, + "makeup_intensity_lip": 1.0, + "blend_type_tex_blusher": 1, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 1.0, + 0.2549019753932953, + 0.27843138575553894, + 1.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 0.30000001192092896, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "mu_style_highlight_02.png", + "makeup_intensity_highlight": 0.550000011920929, + "makeup_foundation_color": [ + 0.6705882549285889, + 0.47058823704719543, + 0.4431372582912445, + 1.0 + ], + "tex_foundation": "zhuangrong_fd.png", + "makeup_intensity_foundation": 0.6000000238418579, + "makeup_shadow_color": [ + 0.5333333611488342, + 0.3294117748737335, + 0.29019609093666077, + 1.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.25, + "makeup_pupil_color": [ + 0.4745098054409027, + 0.42352941632270813, + 0.3960784375667572, + 1.0 + ], + "tex_pupil": "icon_style_eyepupil_03.png", + "makeup_intensity_pupil": 0.5, + "use_eye_v2": 1 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/hongfeng.json b/FaceUnity/src/main/assets/makeup/config_json/hongfeng.json new file mode 100644 index 000000000..900f4ece0 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/hongfeng.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 1.0, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 0.699999988079071, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 0.800000011920929, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 1.0, + "makeup_lip_color": [ + 0.5803921818733215, + 0.250980406999588, + 0.21960784494876862, + 1.0 + ], + "lip_type": 1, + "makeup_intensity_lip": 1.0, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/hunxie.json b/FaceUnity/src/main/assets/makeup/config_json/hunxie.json new file mode 100644 index 000000000..1d9a461a3 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/hunxie.json @@ -0,0 +1,117 @@ +{ + "makeup_lip_color": [ + 0.3764705955982208, + 0.0, + 0.0, + 1.0 + ], + "makeup_lip_color_v2": [ + 0.3764705955982208, + 0.0, + 0.0, + 1.0 + ], + "makeup_lip_color_mix_strength": 0.0, + "makeup_lip_highlight_strength": 0.30000001192092896, + "makeup_lip_highlight_enable": 1, + "tex_lip_mask_zz": "HX1015-3-zz.png", + "tex_lip_mask_bz": "HX1015-3.png", + "lip_type": 7, + "makeup_intensity_lip": 0.8500000238418579, + "makeup_name": "Group_1_8", + "blend_type_tex_eye": 1, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 0, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.47843137383461, + 0.24313725531101227, + 0.2235294133424759, + 1.0 + ], + "makeup_eye_color3": [ + 0.6941176652908325, + 0.3490196168422699, + 0.32156863808631897, + 1.0 + ], + "makeup_eye_color4": [ + 0.6784313917160034, + 0.34117648005485535, + 0.29411765933036804, + 1.0 + ], + "tex_eye": "eye11.png", + "tex_eye2": "eye3.png", + "tex_eye3": "eye66.png", + "tex_eye4": "eye04.png", + "makeup_intensity_eye": 1.0, + "makeup_eyelash_color": [ + 0.4274509847164154, + 0.2666666805744171, + 0.21568627655506134, + 1.0 + ], + "tex_eyelash": "eyelash03.png", + "makeup_intensity_eyelash": 0.8500000238418579, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "mu_style_highlight_02_2.png", + "makeup_intensity_highlight": 0.30000001192092896, + "makeup_eyeLiner_color": [ + 0.4745098054409027, + 0.30980393290519714, + 0.24313725531101227, + 1.0 + ], + "tex_eyeLiner": "eyeLiner04.png", + "makeup_intensity_eyeLiner": 0.800000011920929, + "makeup_pupil_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_pupil": "eyepupil.png", + "makeup_intensity_pupil": 0.550000011920929, + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 1.0, + "makeup_eyeBrow_color": [ + 0.5176470875740051, + 0.47843137383461, + 0.3803921639919281, + 1.0 + ], + "tex_eyeBrow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 6, + "use_brow_v2": 1, + "makeup_intensity_eyeBrow": 0.8999999761581421, + "makeup_shadow_color": [ + 0.7450980544090271, + 0.4745098054409027, + 0.4274509847164154, + 1.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.4000000059604645, + "use_eye_v2": 1 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/jianling.json b/FaceUnity/src/main/assets/makeup/config_json/jianling.json new file mode 100644 index 000000000..ce49b961e --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/jianling.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 0.8999999761581421, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 1.0, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 0.699999988079071, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.699999988079071, + "makeup_lip_color": [ + 0.6509804129600525, + 0.21176470816135407, + 0.29019609093666079, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 0.800000011920929, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/linjia.json b/FaceUnity/src/main/assets/makeup/config_json/linjia.json new file mode 100644 index 000000000..f0eb25871 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/linjia.json @@ -0,0 +1,71 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.89, + 0.26, + 0.28, + 1.0 + ], + "tex_blusher": "mu_style_blush_01.bundle", + "makeup_intensity_blusher": 1.0, + "makeup_eyeBrow_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_brow": "mu_style_eyebrow_01.bundle", + "makeup_intensity_eyeBrow": 0.20000000298023225, + "makeup_eyelash_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_eyeLash": "mu_style_eyelash_01.bundle", + "makeup_intensity_eyelash": 0.699999988079071, + "makeup_eyeLiner_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_eyeLiner": "mu_style_eyeliner_06.bundle", + "makeup_intensity_eyeLiner": 0.699999988079071, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 0, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 1.0, + 0.72, + 0.36, + 1.0 + ], + "makeup_eye_color2": [ + 0.93, + 0.45, + 0.25, + 1.0 + ], + "tex_eye": "mu_style_eyeshadow_02.bundle", + "makeup_intensity_eye": 0.8999999761581421, + "makeup_foundation_color": [ + 0.91, + 0.81, + 0.74, + 1.0 + ], + "tex_foundation": "mu_style_foundation_01.bundle", + "makeup_intensity_foundation": 1.0, + "makeup_lip_color": [ + 0.84, + 0.26, + 0.16, + 1.0 + ], + "lip_type": 0, + "is_two_color": 0, + "makeup_intensity_lip": 0.6000000238418579 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/nuandong.json b/FaceUnity/src/main/assets/makeup/config_json/nuandong.json new file mode 100644 index 000000000..c9858ec32 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/nuandong.json @@ -0,0 +1,96 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 1, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_blusher_color2": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "tex_blusher2": "zhuangrong_sh2.png", + "makeup_intensity_blusher": 0.699999988079071, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 0.8999999761581421, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 0.800000011920929, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 1.0, + "makeup_lip_color": [ + 0.5803921818733215, + 0.20000000298023225, + 0.10196078568696976, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 0.800000011920929, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/oumei.json b/FaceUnity/src/main/assets/makeup/config_json/oumei.json new file mode 100644 index 000000000..4d42e7950 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/oumei.json @@ -0,0 +1,87 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.89, + 0.26, + 0.40, + 1.0 + ], + "tex_blusher": "mu_style_blush_02.bundle", + "makeup_intensity_blusher": 1.0, + "makeup_eyeBrow_color": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "tex_brow": "mu_style_eyebrow_01.bundle", + "makeup_intensity_eyeBrow": 0.5, + "makeup_eyelash_color": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "tex_eyeLash": "mu_style_eyelash_06.bundle", + "makeup_intensity_eyelash": 0.6000000238418579, + "makeup_eyeLiner_color": [ + 0.21, + 0.05, + 0.02, + 1.0 + ], + "tex_eyeLiner": "mu_style_eyeliner_05.bundle", + "makeup_intensity_eyeLiner": 0.4000000059604645, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 1, + "blend_type_tex_eye3": 0, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.82, + 0.15, + 0.24, + 1.0 + ], + "makeup_eye_color2": [ + 1.0, + 0.92, + 0.74, + 1.0 + ], + "tex_eye": "mu_style_eyeshadow_04.bundle", + "makeup_intensity_eye": 0.800000011920929, + "makeup_foundation_color": [ + 0.87, + 0.74, + 0.69, + 1.0 + ], + "tex_foundation": "mu_style_foundation_01.bundle", + "makeup_intensity_foundation": 1.0, + "makeup_highlight_color": [ + 0.97, + 0.95, + 0.95, + 1.0 + ], + "tex_highlight": "mu_style_highlight_02.bundle", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.40, + 0.12, + 0.18, + 1.0 + ], + "tex_shadow": "mu_style_contour_01.bundle", + "makeup_intensity_shadow": 1.0, + "makeup_lip_color": [ + 0.6, + 0.11, + 0.23, + 1.0 + ], + "lip_type": 0, + "is_two_color": 0, + "makeup_intensity_lip": 0.8600000143051148 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/qianzhihe.json b/FaceUnity/src/main/assets/makeup/config_json/qianzhihe.json new file mode 100644 index 000000000..5c91e28c9 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/qianzhihe.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 1.0, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 5, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 0.8999999761581421, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 0.8999999761581421, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 0.8999999761581421, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 1.0, + "makeup_lip_color": [ + 0.5490196347236633, + 0.12156862765550614, + 0.10196078568696976, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 0.8999999761581421, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/renyu.json b/FaceUnity/src/main/assets/makeup/config_json/renyu.json new file mode 100644 index 000000000..9f8573ac3 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/renyu.json @@ -0,0 +1,96 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 1, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_blusher_color2": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "tex_blusher2": "zhuangrong_sh2.png", + "makeup_intensity_blusher": 1.0, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 5, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 1.0, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 1.0, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.800000011920929, + "makeup_lip_color": [ + 0.6000000238418579, + 0.239215686917305, + 0.27843138575553896, + 1.0 + ], + "lip_type": 1, + "makeup_intensity_lip": 0.8999999761581421, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/rose.json b/FaceUnity/src/main/assets/makeup/config_json/rose.json new file mode 100644 index 000000000..fb5798d00 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/rose.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 1, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 1.0, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 1.0, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 1.0, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 1.0, + "makeup_lip_color": [ + 0.38823530077934267, + 0.18039216101169587, + 0.12941177189350129, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 1.0, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/shaonv.json b/FaceUnity/src/main/assets/makeup/config_json/shaonv.json new file mode 100644 index 000000000..c3175b81e --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/shaonv.json @@ -0,0 +1,89 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 0.800000011920929, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.5, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 1.0, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 0.949999988079071, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 0.699999988079071, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.699999988079071, + "makeup_lip_color": [ + 0.5411764979362488, + 0.20000000298023225, + 0.20000000298023225, + 1.0 + ], + "lip_type": 1, + "makeup_intensity_lip": 1.0, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/tianmei.json b/FaceUnity/src/main/assets/makeup/config_json/tianmei.json new file mode 100644 index 000000000..9b0515cd2 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/tianmei.json @@ -0,0 +1,81 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.93, + 0.35, + 0.43, + 1.0 + ], + "tex_blusher": "mu_style_blush_04.bundle", + "makeup_intensity_blusher": 1.0, + "makeup_eyeBrow_color": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "tex_brow": "mu_style_eyebrow_01.bundle", + "makeup_intensity_eyeBrow": 0.5, + "makeup_eyeLiner_color": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "tex_eyeLiner": "mu_style_eyeliner_02.bundle", + "makeup_intensity_eyeLiner": 0.5, + "makeup_eyelash_color": [ + 0.33, + 0.09, + 0.18, + 1.0 + ], + "tex_eyeLash": "mu_style_eyelash_02.bundle", + "makeup_intensity_eyelash": 0.5, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 0, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 1.0, + 0.43, + 0.44, + 1.0 + ], + "tex_eye": "mu_style_eyeshadow_01.bundle", + "makeup_intensity_eye": 0.699999988079071, + "makeup_foundation_color": [ + 0.87, + 0.74, + 0.69, + 1.0 + ], + "tex_foundation": "mu_style_foundation_01.bundle", + "makeup_intensity_foundation": 1.0, + "makeup_highlight_color": [ + 1.0, + 0.96, + 0.93, + 1.0 + ], + "tex_highlight": "mu_style_highlight_01.bundle", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.41, + 0.22, + 0.15, + 1.0 + ], + "tex_shadow": "mu_style_contour_01.bundle", + "makeup_intensity_shadow": 1.0, + "makeup_lip_color": [ + 0.84, + 0.16, + 0.27, + 1.0 + ], + "lip_type": 0, + "is_two_color": 0, + "makeup_intensity_lip": 0.5 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/wumei.json b/FaceUnity/src/main/assets/makeup/config_json/wumei.json new file mode 100644 index 000000000..28d9887aa --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/wumei.json @@ -0,0 +1,79 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 1.0, + 0.39, + 0.32, + 1.0 + ], + "tex_blusher": "mu_style_blush_03.bundle", + "makeup_intensity_blusher": 1.0, + "makeup_eyeBrow_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_brow": "mu_style_eyebrow_01.bundle", + "makeup_intensity_eyeBrow": 0.6000000238418579, + "makeup_eyelash_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_eyeLash": "mu_style_eyelash_03.bundle", + "makeup_intensity_eyelash": 0.6000000238418579, + "makeup_eyeLiner_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_eyeLiner": "mu_style_eyeliner_03.bundle", + "makeup_intensity_eyeLiner": 0.6000000238418579, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 0, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.89, + 0.61, + 0.41, + 1.0 + ], + "makeup_eye_color2": [ + 0.86, + 0.26, + 0.07, + 1.0 + ], + "tex_eye": "mu_style_eyeshadow_03.bundle", + "makeup_intensity_eye": 0.699999988079071, + "makeup_foundation_color": [ + 0.80, + 0.74, + 0.65, + 1.0 + ], + "tex_foundation": "mu_style_foundation_01.bundle", + "makeup_intensity_foundation": 1.0, + "makeup_highlight_color": [ + 0.99, + 0.98, + 0.95, + 1.0 + ], + "tex_highlight": "mu_style_highlight_01.bundle", + "makeup_intensity_highlight": 1.0, + "makeup_lip_color": [ + 0.81, + 0.31, + 0.22, + 1.0 + ], + "lip_type": 0, + "is_two_color": 0, + "makeup_intensity_lip": 0.699999988079071 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/xinggan.json b/FaceUnity/src/main/assets/makeup/config_json/xinggan.json new file mode 100644 index 000000000..d04d1d0fd --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/xinggan.json @@ -0,0 +1,93 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.96, + 0.44, + 0.42, + 1.0 + ], + "tex_blusher": "mu_style_blush_02.bundle", + "makeup_intensity_blusher": 1.0, + "makeup_eyeBrow_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_brow": "mu_style_eyebrow_01.bundle", + "makeup_intensity_eyeBrow": 0.4000000059604645, + "makeup_eyelash_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_eyeLash": "mu_style_eyelash_04.bundle", + "makeup_intensity_eyelash": 0.699999988079071, + "makeup_eyeLiner_color": [ + 0.28, + 0.16, + 0.08, + 1.0 + ], + "tex_eyeLiner": "mu_style_eyeliner_01.bundle", + "makeup_intensity_eyeLiner": 0.6000000238418579, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.88, + 0.32, + 0.32, + 1.0 + ], + "makeup_eye_color2": [ + 0.69, + 0.25, + 0.25, + 1.0 + ], + "makeup_eye_color3": [ + 0.98, + 0.80, + 0.760, + 1.0 + ], + "tex_eye": "mu_style_eyeshadow_06.bundle", + "makeup_intensity_eye": 0.8999999761581421, + "makeup_foundation_color": [ + 0.82, + 0.71, + 0.62, + 1.0 + ], + "tex_foundation": "mu_style_foundation_01.bundle", + "makeup_intensity_foundation": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "mu_style_highlight_02.bundle", + "makeup_intensity_highlight": 0.0, + "makeup_shadow_color": [ + 0.33, + 0.16, + 0.09, + 1.0 + ], + "tex_shadow": "mu_style_contour_01.bundle", + "makeup_intensity_shadow": 1.0, + "makeup_lip_color": [ + 0.60, + 0.16, + 0.16, + 1.0 + ], + "lip_type": 0, + "is_two_color": 0, + "makeup_intensity_lip": 0.800000011920929 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/yanshimao.json b/FaceUnity/src/main/assets/makeup/config_json/yanshimao.json new file mode 100644 index 000000000..8b1a07c9a --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/yanshimao.json @@ -0,0 +1,96 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 1, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_blusher_color2": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "tex_blusher2": "zhuangrong_sh2.png", + "makeup_intensity_blusher": 1.0, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 0.699999988079071, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 0.699999988079071, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 0.8999999761581421, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 1.0, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.800000011920929, + "makeup_lip_color": [ + 0.501960813999176, + 0.10980392247438431, + 0.12941177189350129, + 1.0 + ], + "lip_type": 0, + "makeup_intensity_lip": 0.800000011920929, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/config_json/ziyun.json b/FaceUnity/src/main/assets/makeup/config_json/ziyun.json new file mode 100644 index 000000000..4b52089d3 --- /dev/null +++ b/FaceUnity/src/main/assets/makeup/config_json/ziyun.json @@ -0,0 +1,95 @@ +{ + "blend_type_tex_blusher": 0, + "blend_type_tex_blusher2": 0, + "makeup_blusher_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_blusher_color2": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_blusher": "zhuangrong_sh.png", + "makeup_intensity_blusher": 1.0, + "makeup_brow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_brow": "brow.png", + "brow_warp": 0.0, + "brow_warp_type": 3, + "makeup_intensity_eyeBrow": 0.699999988079071, + "makeup_eyeLash_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLash": "eyeLash.png", + "makeup_intensity_eyelash": 1.0, + "makeup_eyeLiner_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_eyeLiner": "eyeLiner.png", + "makeup_intensity_eyeLiner": 1.0, + "makeup_highlight_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_highlight": "zhuangrong_gg.png", + "makeup_intensity_highlight": 0.800000011920929, + "makeup_shadow_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tex_shadow": "zhuangrong_yy.png", + "makeup_intensity_shadow": 0.699999988079071, + "makeup_lip_color": [ + 0.5490196347236633, + 0.20000000298023225, + 0.250980406999588, + 1.0 + ], + "lip_type": 1, + "makeup_intensity_lip": 0.8999999761581421, + "blend_type_tex_eye": 0, + "blend_type_tex_eye2": 0, + "blend_type_tex_eye3": 1, + "blend_type_tex_eye4": 0, + "makeup_eye_color": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "makeup_eye_color2": [ + 0.5882353186607361, + 0.3607843220233917, + 0.30588236451148989, + 1.0 + ], + "makeup_eye_color3": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tex_eye": "eye.png", + "tex_eye2": "eye2.png", + "tex_eye3": "eye3.png", + "makeup_intensity_eye": 1.0, + "use_brow_v2": 1.0 +} \ No newline at end of file diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_01.bundle new file mode 100644 index 000000000..3cb656c69 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_02.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_02.bundle new file mode 100644 index 000000000..8d06af48b Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_02.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_03.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_03.bundle new file mode 100644 index 000000000..78417e58d Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_03.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_04.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_04.bundle new file mode 100644 index 000000000..03308cdd5 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_blush_04.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_contour_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_contour_01.bundle new file mode 100644 index 000000000..d8ffd7ba4 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_contour_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_01.bundle new file mode 100644 index 000000000..f2a1dc002 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_02.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_02.bundle new file mode 100644 index 000000000..c14b4369f Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_02.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_03.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_03.bundle new file mode 100644 index 000000000..8c8b45e55 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_03.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_04.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_04.bundle new file mode 100644 index 000000000..d4be845b8 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyebrow_04.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_01.bundle new file mode 100644 index 000000000..65dfbe7c3 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_02.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_02.bundle new file mode 100644 index 000000000..316fef6bb Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_02.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_03.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_03.bundle new file mode 100644 index 000000000..fe2e9882a Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_03.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_04.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_04.bundle new file mode 100644 index 000000000..f44b74cbb Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_04.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_05.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_05.bundle new file mode 100644 index 000000000..be7c2591f Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_05.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_06.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_06.bundle new file mode 100644 index 000000000..d97622b37 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyelash_06.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_01.bundle new file mode 100644 index 000000000..fb53fc166 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_02.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_02.bundle new file mode 100644 index 000000000..2630bf965 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_02.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_03.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_03.bundle new file mode 100644 index 000000000..85fc251a5 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_03.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_04.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_04.bundle new file mode 100644 index 000000000..56b0b6216 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_04.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_05.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_05.bundle new file mode 100644 index 000000000..79729a674 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_05.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_06.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_06.bundle new file mode 100644 index 000000000..88e2417db Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeliner_06.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_01.bundle new file mode 100644 index 000000000..a2bbcbf5a Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_03.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_03.bundle new file mode 100644 index 000000000..1295c15f6 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_03.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_04.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_04.bundle new file mode 100644 index 000000000..d3f172018 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_04.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_05.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_05.bundle new file mode 100644 index 000000000..f66543bc2 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_05.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_06.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_06.bundle new file mode 100644 index 000000000..f40ca1f4c Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_06.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_07.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_07.bundle new file mode 100644 index 000000000..55a1e3c45 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_07.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_08.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_08.bundle new file mode 100644 index 000000000..9534ec5e0 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_08.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_09.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_09.bundle new file mode 100644 index 000000000..b6199cd8e Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyepupil_09.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_01.bundle new file mode 100644 index 000000000..bd0732fe0 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_02.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_02.bundle new file mode 100644 index 000000000..54c25d9b3 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_02.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_03.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_03.bundle new file mode 100644 index 000000000..973e4d0a2 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_03.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_04.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_04.bundle new file mode 100644 index 000000000..adfb9f5e8 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_04.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_05.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_05.bundle new file mode 100644 index 000000000..c110d66ac Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_05.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_06.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_06.bundle new file mode 100644 index 000000000..a795ba791 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_eyeshadow_06.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_foundation_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_foundation_01.bundle new file mode 100644 index 000000000..3932a45e7 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_foundation_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_highlight_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_highlight_01.bundle new file mode 100644 index 000000000..87d8dbf89 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_highlight_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_highlight_02.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_highlight_02.bundle new file mode 100644 index 000000000..7ed3b7520 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_highlight_02.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_01.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_01.bundle new file mode 100644 index 000000000..ce5625d84 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_01.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_02.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_02.bundle new file mode 100644 index 000000000..410086a3c Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_02.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_03.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_03.bundle new file mode 100644 index 000000000..503dc3728 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_03.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_04.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_04.bundle new file mode 100644 index 000000000..63a2d7e14 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_04.bundle differ diff --git a/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_05.bundle b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_05.bundle new file mode 100644 index 000000000..fd3c071a6 Binary files /dev/null and b/FaceUnity/src/main/assets/makeup/item_bundle/mu_style_lip_05.bundle differ diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/FaceManager.java b/FaceUnity/src/main/java/com/yunbao/faceunity/FaceManager.java index 537e6e952..46cb20f4d 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/FaceManager.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/FaceManager.java @@ -27,6 +27,7 @@ import com.faceunity.core.enumeration.CameraFacingEnum; import com.faceunity.core.enumeration.FUAIProcessorEnum; import com.faceunity.core.enumeration.FUInputTextureEnum; import com.faceunity.core.enumeration.FUTransformMatrixEnum; +import com.faceunity.core.faceunity.FURenderKit; import com.faceunity.core.faceunity.FURenderManager; import com.faceunity.core.listener.OnGlRendererListener; import com.faceunity.core.renderer.CameraRenderer; @@ -186,7 +187,7 @@ public class FaceManager implements SensorEventListener { @Override public void onPrepare() { mFaceUnityDataFactory.bindCurrentRenderer(); - Log.e(TAG, "mFURendererListener: onPrepare: "); + //Log.e(TAG, "mFURendererListener: onPrepare: "); } @Override @@ -197,7 +198,7 @@ public class FaceManager implements SensorEventListener { @Override public void onFpsChanged(double fps, double callTime) { final String FPS = String.format(Locale.getDefault(), "%.2f", fps); - Log.d(TAG, "onFpsChanged FPS: " + FPS + ", callTime: " + String.format("%.2f", callTime)); + // Log.d(TAG, "onFpsChanged FPS: " + FPS + ", callTime: " + String.format("%.2f", callTime)); } @Override diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/ContainerRecyclerAdapter.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/ContainerRecyclerAdapter.java index d3d230199..2fbc66920 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/ContainerRecyclerAdapter.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/ContainerRecyclerAdapter.java @@ -4,12 +4,11 @@ import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.yunbao.common.utils.DpUtil; import com.yunbao.faceunity.R; import com.yunbao.faceunity.adapters.vh.AnimViewHolder; import com.yunbao.faceunity.adapters.vh.AnimojiViewHolder; @@ -20,14 +19,21 @@ import com.yunbao.faceunity.adapters.vh.BeautySkinViewHolder; import com.yunbao.faceunity.adapters.vh.BigHeadViewHolder; import com.yunbao.faceunity.adapters.vh.FilterViewHolder; import com.yunbao.faceunity.adapters.vh.FineStickerViewHolder; +import com.yunbao.faceunity.adapters.vh.MakeupCustomItemViewHolder; import com.yunbao.faceunity.adapters.vh.MakeupViewHolder; import com.yunbao.faceunity.adapters.vh.StickerViewHolder; import com.yunbao.faceunity.adapters.vh.StyleViewHolder; +import com.yunbao.faceunity.data.AnimojiDataFactory; +import com.yunbao.faceunity.data.BodyBeautyDataFactory; +import com.yunbao.faceunity.data.FaceBeautyDataFactory; import com.yunbao.faceunity.data.FaceParam; +import com.yunbao.faceunity.data.FineStickerDataFactory; +import com.yunbao.faceunity.data.MakeupDataFactory; +import com.yunbao.faceunity.data.PropDataFactory; import com.yunbao.faceunity.entity.BaseBean; -import com.yunbao.faceunity.entity.ModelAttributeData; +import com.yunbao.faceunity.entity.PropBean; import com.yunbao.faceunity.seekbar.DiscreteSeekBar; -import com.yunbao.faceunity.utils.SeekBarUtils; +import com.yunbao.faceunity.utils.FaceSPUtils; import java.util.ArrayList; import java.util.List; @@ -37,14 +43,66 @@ public class ContainerRecyclerAdapter extends RecyclerView.Adapter list; public int selectPosition = -1; + private FaceBeautyDataFactory faceBeautyDataFactory;//美颜工厂 + private MakeupDataFactory makeupDataFactory;//美妆工厂 + private BodyBeautyDataFactory bodyBeautyDataFactory;//美体工厂 + private PropDataFactory propDataFactory;//道具业务工厂:道具贴图、AR面具、搞笑大头、表情识别、哈哈镜、手势识别 + private AnimojiDataFactory animojiDataFactory;//Animoji工厂 + private FineStickerDataFactory fineStickerDataFactory;//精品贴图 + private DiscreteSeekBar seekBar; + private float seekY = 0; public ContainerRecyclerAdapter(Context mContext) { this.mContext = mContext; + initDataFactory(); + } + + public void setSeekBar(DiscreteSeekBar seekBar) { + this.seekBar = seekBar; + } + + public DiscreteSeekBar getSeekBar() { + return seekBar; + } + + public void showSeekBar() { + if (seekBar.getVisibility() == View.VISIBLE) { + return; + } + seekBar.setVisibility(View.VISIBLE); + if (seekY == 0) { + seekY = seekBar.getY(); + } + seekBar.setY(seekY - DpUtil.dp2px(20)); + } + + + private void initDataFactory() { + faceBeautyDataFactory = new FaceBeautyDataFactory(new FaceBeautyDataFactory.FaceBeautyListener() { + @Override + public void onFilterSelected(int res) { + + } + + @Override + public void onFaceBeautyEnable(boolean enable) { + + } + }); + propDataFactory = new PropDataFactory(new PropDataFactory.PropListener() { + @Override + public void onItemSelected(PropBean bean) { + + } + }, 0, 0); + animojiDataFactory = new AnimojiDataFactory(0, 0); + makeupDataFactory = new MakeupDataFactory(0); + bodyBeautyDataFactory = new BodyBeautyDataFactory(); } public void setList(ArrayList list) { this.list = list; - this.selectPosition = 0; + this.selectPosition = -1; } public int getSelectPosition() { @@ -56,11 +114,32 @@ public class ContainerRecyclerAdapter extends RecyclerView.Adapter setSelectPosition(getAdapterPosition())); + icon =itemView.findViewById(R.id.iv_control); + icon.setBackgroundResource(R.drawable.bg_control_square_selector); + itemView.setOnClickListener(v -> { + adapter.getAnimojiDataFactory().onFilterSelected((AnimationFilterBean) itemView.getTag()); + setSelectPosition(getAdapterPosition()); + saveData(); + }); } @Override public void setData(BaseBean data) { - imageView.setImageResource(data.getImageRes()); - imageView.setSelected(getAdapterPosition()==getSelectPosition()); + itemView.setTag(data); + icon.setImageResource(data.getImageRes()); + icon.setSelected(getAdapterPosition()==getSelectPosition()); + } + + @Override + public boolean loadData() { + return false; + } + + @Override + public void saveData() { + } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/AnimojiViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/AnimojiViewHolder.java index c26ac8999..4abd779e9 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/AnimojiViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/AnimojiViewHolder.java @@ -5,23 +5,52 @@ import android.widget.ImageView; import androidx.annotation.NonNull; +import com.yunbao.common.utils.ToastUtil; import com.yunbao.faceunity.R; +import com.yunbao.faceunity.entity.AnimojiBean; import com.yunbao.faceunity.entity.BaseBean; /** * Animoji */ -public class AnimojiViewHolder extends BaseViewHolder{ - ImageView imageView; +public class AnimojiViewHolder extends BaseViewHolder { + ImageView icon; + public AnimojiViewHolder(@NonNull View itemView) { super(itemView); - imageView=itemView.findViewById(R.id.iv_control); - itemView.setOnClickListener(v -> setSelectPosition(getAdapterPosition())); + icon = itemView.findViewById(R.id.iv_control); + itemView.setOnClickListener(v -> { + adapter.getAnimojiDataFactory().onAnimojiSelected((AnimojiBean) itemView.getTag()); + setSelectPosition(getAdapterPosition()); + saveData(); + }); } @Override public void setData(BaseBean data) { - imageView.setImageResource(data.getImageRes()); - imageView.setSelected(getAdapterPosition()==getSelectPosition()); + itemView.setTag(data); + icon.setImageResource(data.getImageRes()); + int adapterPosition = getAdapterPosition(); + int selectPosition = getSelectPosition(); + if(loadData()){ + return; + } + icon.setSelected(adapterPosition == selectPosition); + + } + + @Override + public boolean loadData() { + String data = adapter.getString(getClass().getSimpleName()); + if (data != null) { + icon.setSelected(getAdapterPosition() == Integer.parseInt(data)); + return true; + } + return false; + } + + @Override + public void saveData() { + adapter.save(getClass().getSimpleName(), String.valueOf(getAdapterPosition())); } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BaseViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BaseViewHolder.java index 14580a40e..b8374bfa7 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BaseViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BaseViewHolder.java @@ -27,7 +27,14 @@ public abstract class BaseViewHolder extends RecyclerView.ViewHolder { super(itemView); } + public String getName(Object obj){ + return obj.getClass().getSimpleName()+"_"; + } + public abstract void setData(BaseBean data); + public abstract boolean loadData(); + public abstract void saveData(); + } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautyBodyViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautyBodyViewHolder.java index 24ebd6a3c..172338798 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautyBodyViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautyBodyViewHolder.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import com.yunbao.faceunity.R; import com.yunbao.faceunity.entity.BaseBean; +import com.yunbao.faceunity.entity.BodyBeautyBean; import com.yunbao.faceunity.entity.ModelAttributeData; import com.yunbao.faceunity.seekbar.DiscreteSeekBar; import com.yunbao.faceunity.utils.SeekBarUtils; @@ -27,12 +28,27 @@ public class BeautyBodyViewHolder extends BaseViewHolder{ title = itemView.findViewById(R.id.item_title); value = itemView.findViewById(R.id.item_value); seekBar = itemView.findViewById(R.id.item_seekBar); + seekBar.setOnProgressChangeListener(new DiscreteSeekBar.OnSimpleProgressChangeListener(){ + @Override + public void onProgressChanged(DiscreteSeekBar seekBar, int value, boolean fromUser) { + super.onProgressChanged(seekBar, value, fromUser); + BodyBeautyBean bean = (BodyBeautyBean) itemView.getTag(); + double toValue = SeekBarUtils.Companion.seekToValue(bean.getModelAttributeData().getMaxRange(), value, seekBar.getMin()); + BeautyBodyViewHolder.this.value.setText(String.format("%.1f",toValue)); + adapter.getBodyBeautyDataFactory().updateParamIntensity(bean.getKey(),toValue); + saveData(); + } + }); } @Override public void setData(BaseBean data) { + itemView.setTag(data); icon.setImageResource(data.getImageRes()); title.setText(data.getDesRes()); + if(loadData()){ + return; + } ModelAttributeData attributeData = data.getModelAttributeData(); value.setText(attributeData.getDefault() + ""); SeekBarUtils.Companion.seekToSeekBar(seekBar, @@ -40,4 +56,27 @@ public class BeautyBodyViewHolder extends BaseViewHolder{ attributeData.getStand(), attributeData.getMaxRange()); } + + @Override + public boolean loadData() { + BodyBeautyBean bean = (BodyBeautyBean) itemView.getTag(); + String val = adapter.getString(getName(this) + bean); + if(val==null){ + return false; + } + ModelAttributeData attributeData = bean.getModelAttributeData(); + value.setText(val); + SeekBarUtils.Companion.seekToSeekBar(seekBar, + Double.parseDouble(val), + attributeData.getStand(), + attributeData.getMaxRange()); + return true; + } + + @Override + public void saveData() { + BodyBeautyBean bean = (BodyBeautyBean) itemView.getTag(); + String key=getName(this)+bean.getKey(); + adapter.save(key, (String) value.getText()); + } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautyShapeViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautyShapeViewHolder.java index 4b47f591e..5171f210f 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautyShapeViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautyShapeViewHolder.java @@ -7,7 +7,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import com.yunbao.faceunity.R; -import com.yunbao.faceunity.data.FaceBeautyDataFactory; import com.yunbao.faceunity.entity.BaseBean; import com.yunbao.faceunity.entity.FaceBeautyBean; import com.yunbao.faceunity.entity.ModelAttributeData; @@ -17,12 +16,11 @@ import com.yunbao.faceunity.utils.SeekBarUtils; /** * 美型 */ -public class BeautyShapeViewHolder extends BaseViewHolder{ +public class BeautyShapeViewHolder extends BaseViewHolder { private ImageView icon; private TextView title; private TextView value; private DiscreteSeekBar seekBar; - private FaceBeautyDataFactory dataFactory; public BeautyShapeViewHolder(@NonNull View itemView) { @@ -31,27 +29,18 @@ public class BeautyShapeViewHolder extends BaseViewHolder{ title = itemView.findViewById(R.id.item_title); value = itemView.findViewById(R.id.item_value); seekBar = itemView.findViewById(R.id.item_seekBar); - seekBar.setOnProgressChangeListener(new DiscreteSeekBar.OnSimpleProgressChangeListener(){ + seekBar.setOnProgressChangeListener(new DiscreteSeekBar.OnSimpleProgressChangeListener() { @Override public void onProgressChanged(DiscreteSeekBar seekBar, int value, boolean fromUser) { super.onProgressChanged(seekBar, value, fromUser); FaceBeautyBean bean = (FaceBeautyBean) itemView.getTag(); double toValue = SeekBarUtils.Companion.seekToValue(bean.getModelAttributeData().getMaxRange(), value, seekBar.getMin()); - BeautyShapeViewHolder.this.value.setText(String.format("%.1f",toValue)); - dataFactory.updateParamIntensity(bean.getKey(),toValue); + BeautyShapeViewHolder.this.value.setText(String.format("%.1f", toValue)); + adapter.getFaceBeautyDataFactory().updateParamIntensity(bean.getKey(), toValue); + saveData(); } }); - dataFactory=new FaceBeautyDataFactory(new FaceBeautyDataFactory.FaceBeautyListener() { - @Override - public void onFilterSelected(int res) { - } - - @Override - public void onFaceBeautyEnable(boolean enable) { - - } - }); } @Override @@ -59,6 +48,9 @@ public class BeautyShapeViewHolder extends BaseViewHolder{ itemView.setTag(data); icon.setImageResource(data.getImageRes()); title.setText(data.getDesRes()); + if(loadData()){ + return; + } ModelAttributeData attributeData = data.getModelAttributeData(); value.setText(attributeData.getDefault() + ""); SeekBarUtils.Companion.seekToSeekBar(seekBar, @@ -66,4 +58,26 @@ public class BeautyShapeViewHolder extends BaseViewHolder{ attributeData.getStand(), attributeData.getMaxRange()); } + + @Override + public boolean loadData() { + FaceBeautyBean bean = (FaceBeautyBean) itemView.getTag(); + String val = adapter.getString(getName(this) + bean.getKey()); + if(val==null) { + return false; + } + ModelAttributeData attributeData = bean.getModelAttributeData(); + value.setText(val); + SeekBarUtils.Companion.seekToSeekBar(seekBar, + Double.parseDouble(val), + attributeData.getStand(), + attributeData.getMaxRange()); + return true; + } + + @Override + public void saveData() { + FaceBeautyBean bean = (FaceBeautyBean) itemView.getTag(); + adapter.save(getName(this)+bean.getKey(), (String) value.getText()); + } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautySkinViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautySkinViewHolder.java index f1333284e..3d667ada6 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautySkinViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BeautySkinViewHolder.java @@ -7,7 +7,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import com.yunbao.faceunity.R; -import com.yunbao.faceunity.data.FaceBeautyDataFactory; import com.yunbao.faceunity.entity.BaseBean; import com.yunbao.faceunity.entity.FaceBeautyBean; import com.yunbao.faceunity.entity.ModelAttributeData; @@ -22,7 +21,6 @@ public class BeautySkinViewHolder extends BaseViewHolder{ private TextView title; private TextView value; private DiscreteSeekBar seekBar; - private FaceBeautyDataFactory dataFactory; public BeautySkinViewHolder(@NonNull View itemView) { super(itemView); @@ -37,18 +35,8 @@ public class BeautySkinViewHolder extends BaseViewHolder{ FaceBeautyBean bean = (FaceBeautyBean) itemView.getTag(); double toValue = SeekBarUtils.Companion.seekToValue(bean.getModelAttributeData().getMaxRange(), value, seekBar.getMin()); BeautySkinViewHolder.this.value.setText(String.format("%.1f",toValue)); - dataFactory.updateParamIntensity(bean.getKey(),toValue); - } - }); - dataFactory=new FaceBeautyDataFactory(new FaceBeautyDataFactory.FaceBeautyListener() { - @Override - public void onFilterSelected(int res) { - - } - - @Override - public void onFaceBeautyEnable(boolean enable) { - + adapter.getFaceBeautyDataFactory().updateParamIntensity(bean.getKey(),toValue); + saveData(); } }); } @@ -58,6 +46,9 @@ public class BeautySkinViewHolder extends BaseViewHolder{ itemView.setTag(data); icon.setImageResource(data.getImageRes()); title.setText(data.getDesRes()); + if(loadData()){ + return; + } ModelAttributeData attributeData = data.getModelAttributeData(); value.setText(attributeData.getDefault() + ""); SeekBarUtils.Companion.seekToSeekBar(seekBar, @@ -65,4 +56,29 @@ public class BeautySkinViewHolder extends BaseViewHolder{ attributeData.getStand(), attributeData.getMaxRange()); } + + @Override + public boolean loadData() { + BaseBean data = (FaceBeautyBean) itemView.getTag(); + ModelAttributeData attributeData = data.getModelAttributeData(); + String key = getName(this)+data.getKey(); + String val=adapter.getString(key); + if (val==null){ + return false; + } + value.setText(val); + SeekBarUtils.Companion.seekToSeekBar(seekBar, + Double.parseDouble(val), + attributeData.getStand(), + attributeData.getMaxRange() + ); + return true; + } + + @Override + public void saveData() { + String key = ((FaceBeautyBean)itemView.getTag()).getKey(); + String val= (String) value.getText(); + adapter.save(getName(this)+key,val); + } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BigHeadViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BigHeadViewHolder.java index b1fba3fdc..757a4d7a6 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BigHeadViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/BigHeadViewHolder.java @@ -7,26 +7,59 @@ import androidx.annotation.NonNull; import com.yunbao.faceunity.R; import com.yunbao.faceunity.entity.BaseBean; +import com.yunbao.faceunity.entity.FunctionEnum; +import com.yunbao.faceunity.entity.PropBean; /** * 大头 */ -public class BigHeadViewHolder extends BaseViewHolder{ - ImageView imageView; +public class BigHeadViewHolder extends BaseViewHolder { + ImageView icon; + public BigHeadViewHolder(@NonNull View itemView) { super(itemView); - imageView=itemView.findViewById(R.id.iv_control); - itemView.setOnClickListener(v -> setSelectPosition(getAdapterPosition())); + icon = itemView.findViewById(R.id.iv_control); + itemView.setOnClickListener(v -> { + PropBean bean = (PropBean) itemView.getTag(); + adapter.getPropDataFactory().setPropType(FunctionEnum.BIG_HEAD); + adapter.getPropDataFactory().onItemSelected(bean); + setSelectPosition(getAdapterPosition()); + saveData(); + }); } @Override public void setData(BaseBean data) { - imageView.setImageResource(data.getImageRes()); - if(getAdapterPosition()==0){ - imageView.setBackgroundResource(R.drawable.bg_control_oval2_selector); - }else{ - //imageView.setBackgroundResource(R.drawable.bg_control_oval_selector); + itemView.setTag(data); + icon.setImageResource(data.getImageRes()); + if(loadData()){ + return; } - imageView.setSelected(getSelectPosition() == getAdapterPosition()); + if (getAdapterPosition() == 0) { + icon.setBackgroundResource(R.drawable.bg_control_oval2_selector); + } + icon.setSelected(getSelectPosition() == getAdapterPosition()); + } + + @Override + public boolean loadData() { + PropBean bean = (PropBean) itemView.getTag(); + String val = adapter.getString(getName(this)); + if(val==null){ + return false; + } + if(!val.equals(bean.getKey())){ + return false; + } + icon.setSelected(true); + adapter.getPropDataFactory().setPropType(FunctionEnum.BIG_HEAD); + adapter.getPropDataFactory().onItemSelected(bean); + return true; + } + + @Override + public void saveData() { + PropBean bean = (PropBean) itemView.getTag(); + adapter.save(getName(this),bean.getKey()); } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/FilterViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/FilterViewHolder.java index c651309f4..21e3df717 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/FilterViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/FilterViewHolder.java @@ -7,8 +7,8 @@ import android.widget.TextView; import androidx.annotation.NonNull; import com.yunbao.faceunity.R; -import com.yunbao.faceunity.adapters.vh.BaseViewHolder; import com.yunbao.faceunity.entity.BaseBean; +import com.yunbao.faceunity.entity.FaceBeautyFilterBean; /** * 滤镜 @@ -21,15 +21,46 @@ public class FilterViewHolder extends BaseViewHolder { super(itemView); icon = itemView.findViewById(R.id.iv_control); title = itemView.findViewById(R.id.tv_control); - itemView.setOnClickListener(view -> setSelectPosition(getAdapterPosition())); + itemView.setOnClickListener(view -> { + FaceBeautyFilterBean bean= (FaceBeautyFilterBean) itemView.getTag(); + adapter.getFaceBeautyDataFactory().onFilterSelected(bean.getKey(),bean.getIntensity(),bean.getDesRes()); + setSelectPosition(getAdapterPosition()); + saveData(); + }); } @Override public void setData(BaseBean data) { + itemView.setTag(data); icon.setImageResource(data.getImageRes()); title.setText(data.getDesRes()); + if(loadData()){ + return; + } icon.setSelected(getSelectPosition()==getAdapterPosition()); title.setSelected(getSelectPosition()==getAdapterPosition()); } + + @Override + public boolean loadData() { + FaceBeautyFilterBean bean= (FaceBeautyFilterBean) itemView.getTag(); + String val = adapter.getString(getName(this)); + if(val==null){ + return false; + } + if(!val.equals(bean.getKey())){ + return false; + } + icon.setSelected(true); + title.setSelected(true); + adapter.getFaceBeautyDataFactory().onFilterSelected(bean.getKey(),bean.getIntensity(),bean.getDesRes()); + return true; + } + + @Override + public void saveData() { + FaceBeautyFilterBean bean= (FaceBeautyFilterBean) itemView.getTag(); + adapter.save(getName(this),bean.getKey()); + } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/FineStickerViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/FineStickerViewHolder.java index 6eab87195..a88da6845 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/FineStickerViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/FineStickerViewHolder.java @@ -6,28 +6,82 @@ import android.widget.ImageView; import androidx.annotation.NonNull; import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.utils.ToastUtil; import com.yunbao.faceunity.R; +import com.yunbao.faceunity.data.FineStickerDataFactory; import com.yunbao.faceunity.entity.BaseBean; +import com.yunbao.faceunity.entity.net.FineStickerEntity; +import com.yunbao.faceunity.utils.net.StickerDownloadHelper; /** * 精品贴纸 */ -public class FineStickerViewHolder extends BaseViewHolder { - ImageView imageView; +public class FineStickerViewHolder extends BaseViewHolder implements StickerDownloadHelper.Callback { + ImageView icon; public FineStickerViewHolder(@NonNull View itemView) { super(itemView); - imageView = itemView.findViewById(R.id.iv_control); - itemView.setOnClickListener(view -> setSelectPosition(getAdapterPosition())); + icon = itemView.findViewById(R.id.iv_control); + itemView.setOnClickListener(view -> { + FineStickerDataFactory.getInstance().downloadSticker((FineStickerEntity.DocsBean) itemView.getTag()); + setSelectPosition(getAdapterPosition()); + saveData(); + }); + FineStickerDataFactory.getInstance().addCallback(this); } @Override public void setData(BaseBean data) { + itemView.setTag(data); if (data.getImageUrl().isEmpty()) { - imageView.setImageResource(R.mipmap.icon_control_none); + icon.setImageResource(R.mipmap.icon_control_none); } else { - ImgLoader.display(imageView.getContext(), data.getImageUrl(), imageView); + ImgLoader.display(icon.getContext(), data.getImageUrl(), icon); } - imageView.setSelected(getSelectPosition() == getAdapterPosition()); + if (loadData()) { + return; + } + icon.setSelected(getSelectPosition() == getAdapterPosition()); + } + + @Override + public boolean loadData() { + FineStickerEntity.DocsBean bean = (FineStickerEntity.DocsBean) itemView.getTag(); + String val = adapter.getString(getName(this) + bean.getKey()); + if(val==null){ + return false; + } + if(!val.equals(bean.getKey())){ + return false; + } + FineStickerDataFactory.getInstance().downloadSticker(bean); + icon.setSelected(true); + return true; + } + + @Override + public void saveData() { + FineStickerEntity.DocsBean bean = (FineStickerEntity.DocsBean) itemView.getTag(); + adapter.save(getName(this), bean.getKey()); + } + + @Override + public void onGetTags(String[] tags) { + + } + + @Override + public void onGetList(String tag, FineStickerEntity fineSticker) { + + } + + @Override + public void onDownload(FineStickerEntity.DocsBean entity) { + FineStickerDataFactory.getInstance().onItemSelected(entity); + } + + @Override + public void onDownloadError(FineStickerEntity.DocsBean entity, String msg) { + ToastUtil.show("下载失败 = " + msg); } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/MakeupCustomItemViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/MakeupCustomItemViewHolder.java new file mode 100644 index 000000000..591dcfd99 --- /dev/null +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/MakeupCustomItemViewHolder.java @@ -0,0 +1,147 @@ +package com.yunbao.faceunity.adapters.vh; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.yunbao.faceunity.R; +import com.yunbao.faceunity.data.FaceParam; +import com.yunbao.faceunity.entity.BaseBean; +import com.yunbao.faceunity.entity.MakeupCustomBean; +import com.yunbao.faceunity.repo.MakeupSource; +import com.yunbao.faceunity.seekbar.DiscreteSeekBar; + +public class MakeupCustomItemViewHolder extends BaseViewHolder { + private ImageView icon; + private TextView title; + + + public MakeupCustomItemViewHolder(@NonNull View itemView) { + super(itemView); + icon = itemView.findViewById(R.id.iv_control); + title = itemView.findViewById(R.id.tv_control); + title.setVisibility(View.INVISIBLE); + itemView.setOnClickListener(new View.OnClickListener() { + private String key = null; + + @Override + public void onClick(View v) { + adapter.showSeekBar(); + MakeupCustomBean bean = (MakeupCustomBean) itemView.getTag(); + key = getMakeupKey(bean.getBeanType()); + + if (key == null) { + return; + } + adapter.getMakeupDataFactory().enterCustomMakeup(); + adapter.getMakeupDataFactory().onCustomBeanSelected(key, getAdapterPosition()); + adapter.getMakeupDataFactory().bindCurrentRenderer(); + setSelectPosition(getAdapterPosition()); + double intensity = adapter.getMakeupDataFactory().getCurrentCustomIntensity(key, adapter.getMakeupDataFactory().getCurrentCustomItemIndex(key)); + adapter.getSeekBar().setProgress((int) (intensity * 100)); + adapter.getSeekBar().setOnProgressChangeListener(new DiscreteSeekBar.OnSimpleProgressChangeListener() { + @Override + public void onProgressChanged(DiscreteSeekBar seekBar, int value, boolean fromUser) { + super.onProgressChanged(seekBar, value, fromUser); + float valueF = (float) (1.0 * (value - seekBar.getMin()) / 100); + int current = adapter.getMakeupDataFactory().getCurrentCustomItemIndex(key); + adapter.getMakeupDataFactory().updateCustomItemIntensity(key, current, valueF); + saveData(); + } + }); + saveData(); + } + }); + } + + @Override + public void setData(BaseBean data) { + itemView.setTag(data); + icon.setImageDrawable(data.getImageDrawable()); + if (loadData()) { + return; + } + if (getSelectPosition() == getAdapterPosition()) { + icon.setSelected(true); + return; + } + icon.setSelected(false); + } + + @Override + public boolean loadData() { + MakeupCustomBean bean = (MakeupCustomBean) itemView.getTag(); + String model = adapter.getString(getName(this) + "_model"); + String val = adapter.getString(getName(this) + bean.getKey() + "_val"); + if (model == null || val == null) { + return false; + } + if(!model.equals(bean.getKey())){ + return false; + } + icon.setSelected(true); + String key = getMakeupKey(bean.getBeanType()); + if (key == null) { + return false; + } + adapter.getMakeupDataFactory().enterCustomMakeup(); + adapter.getMakeupDataFactory().onCustomBeanSelected(key, getAdapterPosition()); + adapter.getMakeupDataFactory().bindCurrentRenderer(); + adapter.getSeekBar().setProgress(Integer.parseInt(val)); + + float valueF = (float) (1.0 * (Integer.parseInt(val) - adapter.getSeekBar().getMin()) / 100); + int current = adapter.getMakeupDataFactory().getCurrentCustomItemIndex(key); + adapter.getMakeupDataFactory().updateCustomItemIntensity(key, current, valueF); + return true; + } + + @Override + public void saveData() { + MakeupCustomBean bean = (MakeupCustomBean) itemView.getTag(); + String key=getMakeupKey(bean.getBeanType()); + if(key==null){ + return; + } + adapter.save(getName(this) + "_model", key); + adapter.save(getName(this) + bean.getKey() + "_val", adapter.getSeekBar().getProgress() + ""); + } + + public String getMakeupKey(int beanType) { + String key = null; + switch (beanType) { + case FaceParam.FACE_MAKEUP_TYPE_FOUNDATION: + key = MakeupSource.FACE_MAKEUP_TYPE_FOUNDATION; + break; + case FaceParam.FACE_MAKEUP_TYPE_LIP_STICK: + key = MakeupSource.FACE_MAKEUP_TYPE_LIP_STICK; + break; + case FaceParam.FACE_MAKEUP_TYPE_BLUSHER: + key = MakeupSource.FACE_MAKEUP_TYPE_BLUSHER; + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_BROW: + key = MakeupSource.FACE_MAKEUP_TYPE_EYE_BROW; + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW: + key = MakeupSource.FACE_MAKEUP_TYPE_EYE_SHADOW; + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_LINER: + key = MakeupSource.FACE_MAKEUP_TYPE_EYE_LINER; + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_LASH: + key = MakeupSource.FACE_MAKEUP_TYPE_EYE_LASH; + break; + case FaceParam.FACE_MAKEUP_TYPE_HIGH_LIGHT: + key = MakeupSource.FACE_MAKEUP_TYPE_HIGH_LIGHT; + break; + case FaceParam.FACE_MAKEUP_TYPE_SHADOW: + key = MakeupSource.FACE_MAKEUP_TYPE_SHADOW; + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL: + key = MakeupSource.FACE_MAKEUP_TYPE_EYE_PUPIL; + break; + } + return key; + } +} diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/MakeupViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/MakeupViewHolder.java index 20133fb24..920711c4a 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/MakeupViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/MakeupViewHolder.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import com.yunbao.faceunity.R; import com.yunbao.faceunity.entity.BaseBean; +import com.yunbao.faceunity.entity.MakeupCombinationBean; /** * 美妆 @@ -15,14 +16,15 @@ import com.yunbao.faceunity.entity.BaseBean; public class MakeupViewHolder extends BaseViewHolder { private ImageView icon; private TextView title; - private int index = -1; public MakeupViewHolder(@NonNull View itemView) { super(itemView); icon = itemView.findViewById(R.id.iv_control); title = itemView.findViewById(R.id.tv_control); itemView.setOnClickListener(v -> { + adapter.getMakeupDataFactory().onMakeupCombinationSelected((MakeupCombinationBean) itemView.getTag()); setSelectPosition(getAdapterPosition()); + saveData(); }); } @@ -31,6 +33,9 @@ public class MakeupViewHolder extends BaseViewHolder { itemView.setTag(data); icon.setImageResource(data.getImageRes()); title.setText(data.getDesRes()); + if(loadData()){ + return; + } if (getSelectPosition() == getAdapterPosition()) { icon.setSelected(true); title.setSelected(true); @@ -39,4 +44,16 @@ public class MakeupViewHolder extends BaseViewHolder { icon.setSelected(false); title.setSelected(false); } + + @Override + public boolean loadData() { + return true; + + } + + @Override + public void saveData() { + MakeupCombinationBean bean = (MakeupCombinationBean) itemView.getTag(); + adapter.save(getName(this),bean.getKey()); + } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/StickerViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/StickerViewHolder.java index e55f2b315..19f215587 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/StickerViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/StickerViewHolder.java @@ -7,19 +7,43 @@ import androidx.annotation.NonNull; import com.yunbao.faceunity.R; import com.yunbao.faceunity.entity.BaseBean; +import com.yunbao.faceunity.entity.FunctionEnum; +import com.yunbao.faceunity.entity.PropBean; /** * 普通贴纸 */ public class StickerViewHolder extends BaseViewHolder{ - ImageView imageView; + ImageView icon; public StickerViewHolder(@NonNull View itemView) { super(itemView); - imageView=itemView.findViewById(R.id.iv_control); + icon =itemView.findViewById(R.id.iv_control); + itemView.setOnClickListener(v -> { + PropBean bean= (PropBean) itemView.getTag(); + adapter.getPropDataFactory().setPropType(FunctionEnum.STICKER); + adapter.getPropDataFactory().onItemSelected(bean); + setSelectPosition(getAdapterPosition()); + }); } @Override public void setData(BaseBean data) { - imageView.setImageResource(data.getImageRes()); + itemView.setTag(data); + icon.setImageResource(data.getImageRes()); + if(getAdapterPosition()==0){ + icon.setBackgroundResource(R.drawable.bg_control_oval2_selector); + } + icon.setSelected(getSelectPosition() == getAdapterPosition()); + } + + @Override + public boolean loadData() { + return true; + + } + + @Override + public void saveData() { + } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/StyleViewHolder.java b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/StyleViewHolder.java index ffba0565b..b362976a2 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/StyleViewHolder.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/adapters/vh/StyleViewHolder.java @@ -9,6 +9,9 @@ import androidx.annotation.NonNull; import com.yunbao.faceunity.R; import com.yunbao.faceunity.entity.BaseBean; +/** + * 风格推荐 + */ public class StyleViewHolder extends BaseViewHolder{ private ImageView icon; private TextView title; @@ -16,14 +19,30 @@ public class StyleViewHolder extends BaseViewHolder{ super(itemView); icon=itemView.findViewById(R.id.iv_control); title=itemView.findViewById(R.id.tv_control); - itemView.setOnClickListener(v -> setSelectPosition(getAdapterPosition())); + itemView.setOnClickListener(v -> { + BaseBean bean= (BaseBean) itemView.getTag(); + adapter.getFaceBeautyDataFactory().onStyleSelected(bean.getKey()); + setSelectPosition(getAdapterPosition()); + }); } @Override public void setData(BaseBean data) { + itemView.setTag(data); icon.setImageResource(data.getImageRes()); title.setText(data.getDesRes()); icon.setSelected(getSelectPosition()==getAdapterPosition()); title.setSelected(getSelectPosition()==getAdapterPosition()); } + + @Override + public boolean loadData() { + return true; + + } + + @Override + public void saveData() { + + } } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/control/MakeupControlView.java b/FaceUnity/src/main/java/com/yunbao/faceunity/control/MakeupControlView.java deleted file mode 100644 index 9bc6e8b80..000000000 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/control/MakeupControlView.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.yunbao.faceunity.control; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; - -import com.faceunity.core.utils.DecimalUtils; - -import com.yunbao.faceunity.R; -import com.yunbao.faceunity.base.BaseDelegate; -import com.yunbao.faceunity.base.BaseListAdapter; -import com.yunbao.faceunity.base.BaseViewHolder; -import com.yunbao.faceunity.entity.MakeupCombinationBean; -import com.yunbao.faceunity.infe.AbstractMakeupDataFactory; -import com.yunbao.faceunity.seekbar.DiscreteSeekBar; - -import java.util.ArrayList; - -/** - * DESC:美妆 - * Created on 2021/4/26 - */ -public class MakeupControlView extends BaseControlView { - - private RecyclerView recyclerView; - private DiscreteSeekBar discreteSeekBar; - - private AbstractMakeupDataFactory mDataFactory; - - /* 组合妆容 */ - private BaseListAdapter mCombinationAdapter; - - public MakeupControlView(@NonNull Context context) { - super(context); - init(); - } - - public MakeupControlView(@NonNull Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - init(); - } - - public MakeupControlView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(); - } - - private void init() { - LayoutInflater.from(mContext).inflate(R.layout.layout_make_up_control, this); - initView(); - initAdapter(); - bindListener(); - } - - private void initView() { - recyclerView = findViewById(R.id.recycler_view); - discreteSeekBar = findViewById(R.id.seek_bar); - initHorizontalRecycleView(recyclerView); - } - - /** - * 给控制绑定FaceBeautyController,MakeupController 数据工厂 - * - * @param dataFactory IFaceBeautyDataFactory - */ - public void bindDataFactory(AbstractMakeupDataFactory dataFactory) { - mDataFactory = dataFactory; - mCombinationAdapter.setData(dataFactory.getMakeupCombinations()); - showCombinationSeekBar(mCombinationAdapter.getData(dataFactory.getCurrentCombinationIndex())); - } - - /** - * 组合妆容Adapter - */ - private void initAdapter() { - mCombinationAdapter = new BaseListAdapter<>(new ArrayList<>(), new BaseDelegate() { - @Override - public void convert(int viewType, BaseViewHolder helper, MakeupCombinationBean data, int position) { - helper.setText(R.id.tv_control, data.getDesRes()); - helper.setImageResource(R.id.iv_control, data.getImageRes()); - helper.itemView.setSelected(position == mDataFactory.getCurrentCombinationIndex()); - } - - @Override - public void onItemClickListener(View view, MakeupCombinationBean data, int position) { - if (position != mDataFactory.getCurrentCombinationIndex()) { - changeAdapterSelected(mCombinationAdapter, mDataFactory.getCurrentCombinationIndex(), position); - mDataFactory.setCurrentCombinationIndex(position); - mDataFactory.onMakeupCombinationSelected(data); - showCombinationSeekBar(data); - } - - } - - - }, R.layout.list_item_control_title_image_square); - recyclerView.setAdapter(mCombinationAdapter); - } - - - /** - * 绑定监听事件 - */ - @SuppressLint("ClickableViewAccessibility") - private void bindListener() { - /*组合妆容强度变更回调*/ - discreteSeekBar.setOnProgressChangeListener(new DiscreteSeekBar.OnSimpleProgressChangeListener() { - @Override - public void onProgressChanged(DiscreteSeekBar seekBar, int value, boolean fromUser) { - if (!fromUser) { - return; - } - double valueF = 1.0f * (value - seekBar.getMin()) / 100; - MakeupCombinationBean combination = mCombinationAdapter.getData(mDataFactory.getCurrentCombinationIndex()); - if (!DecimalUtils.doubleEquals(valueF, combination.getIntensity())) { - combination.setIntensity(valueF); - mDataFactory.updateCombinationIntensity(valueF); - } - } - }); - } - - //endregion init - - - // region Adapter - - -// region 视图控制 - - /** - * 选中组合妆容,控制强度调节器以及自定义按钮状态变更 - */ - private void showCombinationSeekBar(MakeupCombinationBean data) { - if (data.getBundlePath() == null) { - discreteSeekBar.setVisibility(View.INVISIBLE); - } else { - discreteSeekBar.setVisibility(View.VISIBLE); - discreteSeekBar.setProgress((int) (data.getIntensity() * 100)); - } - } - - // endregion -} diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/data/AnimojiDataFactory.java b/FaceUnity/src/main/java/com/yunbao/faceunity/data/AnimojiDataFactory.java index b89e52e13..ac181db54 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/data/AnimojiDataFactory.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/data/AnimojiDataFactory.java @@ -54,6 +54,7 @@ public class AnimojiDataFactory extends AbstractAnimojiDataFactory { currentFilterIndex = filterIndex; animojiBeans = AnimojiSource.buildAnimojis(); animationFilterBeans = AnimojiSource.buildFilters(); + bindCurrentRenderer(); } @@ -141,6 +142,7 @@ public class AnimojiDataFactory extends AbstractAnimojiDataFactory { */ @Override public void onFilterSelected(AnimationFilterBean data) { + animationFilter.setStyle(data.getStyle()); } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/data/FaceBeautyDataFactory.java b/FaceUnity/src/main/java/com/yunbao/faceunity/data/FaceBeautyDataFactory.java index 5ac58cd6a..823aedd07 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/data/FaceBeautyDataFactory.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/data/FaceBeautyDataFactory.java @@ -339,7 +339,7 @@ public class FaceBeautyDataFactory extends AbstractFaceBeautyDataFactory { /** * 设置推荐风格 * - * @param name + * @param name 风格key */ @Override public void onStyleSelected(String name) { diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/data/FaceParam.java b/FaceUnity/src/main/java/com/yunbao/faceunity/data/FaceParam.java index 243f6c632..531706a6a 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/data/FaceParam.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/data/FaceParam.java @@ -1,19 +1,34 @@ package com.yunbao.faceunity.data; public class FaceParam { - public static final int FACE_BEAUTY=100; - public static final int FACE_BEAUTY_SKIN=101; - public static final int FACE_BEAUTY_SHAPE=102; - public static final int FACE_BEAUTY_FILTER=103; - public static final int FACE_BEAUTY_STYLE=104; - public static final int FACE_MAKEUP=200; - public static final int FACE_BEAUTY_BODY=300; - public static final int FACE_BIG_HEAD=400; - public static final int FACE_ANIMOJI=500; - public static final int FACE_STICKER=600; - public static final int FACE_FINE_STICKER=700; - public static final int FACE_FINE_STICKER_MIDDLE=701; - public static final int FACE_FINE_STICKER_HIGH=702; - public static final int FACE_FINE_STICKER_GAME=703; - public static final int FACE_ANIM=800; + public static final int FACE_BEAUTY=100;//美颜 + public static final int FACE_BEAUTY_SKIN=101;//美肤 + public static final int FACE_BEAUTY_SHAPE=102;//美型 + public static final int FACE_BEAUTY_FILTER=103;//滤镜 + public static final int FACE_BEAUTY_STYLE=104;//风格推荐 + public static final int FACE_MAKEUP=200;//美妆 + public static final int FACE_MAKEUP_TYPE_FOUNDATION=201;//粉底 + public static final int FACE_MAKEUP_TYPE_LIP_STICK=202;//口红 + public static final int FACE_MAKEUP_TYPE_BLUSHER=203;//腮红 + public static final int FACE_MAKEUP_TYPE_EYE_BROW=204;//眉毛 + public static final int FACE_MAKEUP_TYPE_EYE_SHADOW=205;//眼影 + public static final int FACE_MAKEUP_TYPE_EYE_LINER=206;//眼线 + public static final int FACE_MAKEUP_TYPE_EYE_LASH=207;//睫毛 + public static final int FACE_MAKEUP_TYPE_HIGH_LIGHT=208;//高光 + public static final int FACE_MAKEUP_TYPE_SHADOW=209;//阴影 + public static final int FACE_MAKEUP_TYPE_EYE_PUPIL=210;//美瞳 + public static final int FACE_BEAUTY_BODY=300;//美体 + public static final int FACE_BIG_HEAD=400;//大头 + public static final int FACE_ANIMOJI=500;//Animoji + public static final int FACE_STICKER=600;//贴纸 + public static final int FACE_FINE_STICKER=700;//精品贴纸 + public static final int FACE_FINE_STICKER_MIDDLE=701;//中级道具 + public static final int FACE_FINE_STICKER_HIGH=702;//高级道具 + public static final int FACE_FINE_STICKER_GAME=703;//游戏道具 + public static final int FACE_ANIM=800;//动漫滤镜 + // 占位符,以下均未使用 + public static final int FACE_ANIM_AR_MASK=900; + public static final int FACE_EXPRESSION_RECOGNITION=1000; + public static final int FACE_FACE_WARP=1000; + public static final int FACE_GESTURE_RECOGNITION=1100; } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/data/FineStickerDataFactory.java b/FaceUnity/src/main/java/com/yunbao/faceunity/data/FineStickerDataFactory.java index d5b53256e..e500c4b6f 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/data/FineStickerDataFactory.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/data/FineStickerDataFactory.java @@ -68,6 +68,9 @@ public class FineStickerDataFactory extends AbstractFineStickerDataFactory { /*3D抗锯齿*/ public Antialiasing antialiasing; + //回调 + private List callbacks; + //avatar用于区分bundle类型的关键字 private final String COMPONENTS_STR = "components"; private final String ANIM_STR = "anim"; @@ -75,8 +78,9 @@ public class FineStickerDataFactory extends AbstractFineStickerDataFactory { private final String ZIP = ".zip"; private final String AVATAR = "avatar"; - public FineStickerDataFactory() { - // StickerDownloadHelper.getInstance().setCallback(downloadHelper); + private FineStickerDataFactory() { + callbacks=new ArrayList<>(); + StickerDownloadHelper.getInstance().setCallback(downloadHelper); } /** @@ -87,9 +91,14 @@ public class FineStickerDataFactory extends AbstractFineStickerDataFactory { } - public void setCallback(StickerDownloadHelper.Callback downloadHelper) { - StickerDownloadHelper.getInstance().setCallback(downloadHelper); - + public void addCallback(StickerDownloadHelper.Callback downloadHelper) { + callbacks.add(downloadHelper); + } + public void removeCallback(StickerDownloadHelper.Callback downloadHelper){ + callbacks.remove(downloadHelper); + } + private void removeAllCallback(){ + callbacks.clear(); } public void refuseEvent() { @@ -260,20 +269,31 @@ public class FineStickerDataFactory extends AbstractFineStickerDataFactory { private StickerDownloadHelper.Callback downloadHelper = new StickerDownloadHelper.Callback() { @Override public void onGetTags(String[] tags) { - formatTag(tags); + for (StickerDownloadHelper.Callback callback : callbacks) { + callback.onGetTags(tags); + } } @Override public void onGetList(String tag, FineStickerEntity fineSticker) { - new FineStickerTagEntity(tag); + for (StickerDownloadHelper.Callback callback : callbacks) { + callback.onGetList(tag, fineSticker); + } } @Override public void onDownload(FineStickerEntity.DocsBean entity) { + for (StickerDownloadHelper.Callback callback : callbacks) { + callback.onDownload(entity); + } } @Override public void onDownloadError(FineStickerEntity.DocsBean entity, String msg) { + for (StickerDownloadHelper.Callback callback : callbacks) { + callback.onDownloadError(entity, msg); + + } } }; diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/data/MakeupDataFactory.java b/FaceUnity/src/main/java/com/yunbao/faceunity/data/MakeupDataFactory.java index 6e4f4136d..99c6809a3 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/data/MakeupDataFactory.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/data/MakeupDataFactory.java @@ -1,18 +1,31 @@ package com.yunbao.faceunity.data; +import static com.yunbao.faceunity.repo.MakeupSource.*; + import androidx.annotation.NonNull; import com.faceunity.core.entity.FUBundleData; +import com.faceunity.core.entity.FUColorRGBData; +import com.faceunity.core.enumeration.FUAITypeEnum; +import com.faceunity.core.faceunity.FUAIKit; import com.faceunity.core.faceunity.FURenderKit; -import com.faceunity.core.model.makeup.SimpleMakeup; +import com.faceunity.core.model.makeup.Makeup; +import com.faceunity.core.model.makeup.MakeupLipEnum; +import com.faceunity.core.model.prop.expression.ExpressionRecognition; +import com.faceunity.core.utils.DecimalUtils; import com.yunbao.faceunity.entity.MakeupCombinationBean; +import com.yunbao.faceunity.entity.MakeupCustomBean; +import com.yunbao.faceunity.entity.MakeupCustomClassBean; import com.yunbao.faceunity.infe.AbstractMakeupDataFactory; +import com.yunbao.faceunity.repo.FaceBeautySource; import com.yunbao.faceunity.repo.MakeupSource; +import com.yunbao.faceunity.utils.FaceUnityConfig; import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashMap; /** * DESC:美妆业务工厂 @@ -29,15 +42,27 @@ public class MakeupDataFactory extends AbstractMakeupDataFactory { /*组合妆容当前下标*/ private int currentCombinationIndex;//-1:自定义 /*美妆数据模型*/ - private SimpleMakeup currentMakeup; - /*美妆数据模型缓存*/ - private HashMap makeupMap = new HashMap<>(); + private Makeup currentMakeup; + /*当前滤镜*/ + private String currentFilterName; + /*当前滤镜*/ + private Double currentFilterIntensity; + + + private LinkedHashMap> mMakeUpColorMap;//美妆颜色表 + + private HashMap mCustomIndexMap = new HashMap<>();//key:美妆类别 value:当前美妆子项选中下标 默认0 + private HashMap mCustomIntensityMap = new HashMap<>();//key:美妆类别_子项下标 value:当前美妆选中子项的妆容强度 默认1.0 + private HashMap mCustomColorIndexMap = new HashMap<>();//key:美妆类别_子项下标 value:当前美妆选中子项的颜色下标 默认3 public MakeupDataFactory(int index) { makeupCombinations = MakeupSource.buildCombinations(); + mMakeUpColorMap = MakeupSource.buildMakeUpColorMap(); currentCombinationIndex = index; - currentMakeup = getMakeupModel(makeupCombinations.get(currentCombinationIndex)); // 当前生效模型 + currentFilterName = makeupCombinations.get(index).getFilterName(); + currentFilterIntensity = makeupCombinations.get(index).getFilterIntensity(); + currentMakeup = MakeupSource.getMakeupModel(makeupCombinations.get(currentCombinationIndex)); // 当前生效模型 } //region 组合妆 @@ -80,8 +105,16 @@ public class MakeupDataFactory extends AbstractMakeupDataFactory { */ @Override public void onMakeupCombinationSelected(MakeupCombinationBean bean) { - currentMakeup = getMakeupModel(bean); + currentFilterName = bean.getFilterName(); + currentFilterIntensity = bean.getFilterIntensity(); + if (mFURenderKit.getFaceBeauty() != null) { + mFURenderKit.getFaceBeauty().setFilterName(currentFilterName); + mFURenderKit.getFaceBeauty().setFilterIntensity(currentFilterIntensity); + } + currentMakeup = MakeupSource.getMakeupModel(bean); mFURenderKit.setMakeup(currentMakeup); + if (!currentMakeup.getControlBundle().getPath().equals(FaceUnityConfig.BUNDLE_FACE_MAKEUP)) + currentMakeup.setFilterIntensity(currentFilterIntensity); } /** @@ -92,36 +125,725 @@ public class MakeupDataFactory extends AbstractMakeupDataFactory { @Override public void updateCombinationIntensity(double intensity) { currentMakeup.setMakeupIntensity(intensity); - } - - /** - * 构造美妆模型 - * - * @param bean - * @return - */ - private SimpleMakeup getMakeupModel(MakeupCombinationBean bean) { - if (bean.getBundlePath() == null) { - return null; - } else { - if (makeupMap.containsKey(bean.getKey())) { - return makeupMap.get(bean.getKey()); - } - SimpleMakeup makeup = new SimpleMakeup(new FUBundleData(MakeupSource.BUNDLE_FACE_MAKEUP)); - makeup.setCombinedConfig(new FUBundleData(bean.getBundlePath())); - makeup.setMakeupIntensity(bean.getIntensity()); - makeupMap.put(bean.getKey(), makeup); - return makeup; + currentFilterIntensity = intensity; + if (mFURenderKit.getFaceBeauty() != null) { + mFURenderKit.getFaceBeauty().setFilterIntensity(currentFilterIntensity); } + + if (!currentMakeup.getControlBundle().getPath().equals(FaceUnityConfig.BUNDLE_FACE_MAKEUP)) + currentMakeup.setFilterIntensity(currentFilterIntensity); } //endregion 组合妆 + //region 子美妆 + + + /** + * 获取子妆类别列表 + * + * @return + */ + @Override + public ArrayList getMakeupCustomClass() { + return MakeupSource.buildCustomClasses(); + } + + /** + * 获取子妆列表参数 + * + * @return + */ + @Override + public LinkedHashMap> getMakeupCustomItemParams() { + return MakeupSource.buildCustomItemParams(mMakeUpColorMap); + } + + /** + * 设置子妆强度 + * + * @param key + * @param current + * @param intensity + */ + @Override + public void updateCustomItemIntensity(String key, int current, double intensity) { + if (key.equals(FACE_MAKEUP_TYPE_FOUNDATION)) { + currentMakeup.setFoundationIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_LIP_STICK)) { + currentMakeup.setLipIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_BLUSHER)) { + currentMakeup.setBlusherIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_BROW)) { + currentMakeup.setEyeBrowIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_SHADOW)) { + currentMakeup.setEyeShadowIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_LINER)) { + currentMakeup.setEyeLineIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_LASH)) { + currentMakeup.setEyeLashIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_HIGH_LIGHT)) { + currentMakeup.setHeightLightIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_SHADOW)) { + currentMakeup.setShadowIntensity(intensity); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_PUPIL)) { + currentMakeup.setPupilIntensity(intensity); + } + mCustomIntensityMap.put(key + "_" + current, intensity); + } + + /** + * 切换子妆单项 + * + * @param key 子妆类别 + * @param index 选中下标 + */ + @Override + public void onCustomBeanSelected(String key, int index) { + String itemDir = FaceUnityConfig.MAKEUP_RESOURCE_ITEM_BUNDLE_DIR; + mCustomIndexMap.put(key, index); + if (key.equals(FACE_MAKEUP_TYPE_FOUNDATION)) { + if (index == 0) { + currentMakeup.setFoundationIntensity(0.0); + } else { + currentMakeup.setFoundationBundle(new FUBundleData(itemDir + "mu_style_foundation_01.bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_FOUNDATION + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_FOUNDATION + "_" + index); + } + currentMakeup.setFoundationIntensity((intensity)); + updateCustomColor(key, index + 2); + double[] color = mMakeUpColorMap.get("color_mu_style_foundation_01").get(index + 2); + currentMakeup.setFoundationColor(buildFUColorRGBData(color)); + } + } else if (key.equals(FACE_MAKEUP_TYPE_LIP_STICK)) { + if (index == 0) { + currentMakeup.setLipIntensity(0.0); + } else { + currentMakeup.setLipBundle(new FUBundleData(itemDir + "mu_style_lip_0" + index + ".bundle")); + switch (index) { + case 1: + currentMakeup.setLipType(MakeupLipEnum.FOG); + currentMakeup.setEnableTwoLipColor(false); + currentMakeup.setLipHighLightEnable(false); + currentMakeup.setLipHighLightStrength(0.0); + break; + case 2: + currentMakeup.setLipType(MakeupLipEnum.MOIST); + currentMakeup.setEnableTwoLipColor(false); + currentMakeup.setLipHighLightEnable(false); + currentMakeup.setLipHighLightStrength(0.0); + break; + case 3: + currentMakeup.setLipType(MakeupLipEnum.WATER); + currentMakeup.setEnableTwoLipColor(false); + currentMakeup.setLipHighLightEnable(true); + currentMakeup.setLipHighLightStrength(0.8); + break; + case 4: + currentMakeup.setLipType(MakeupLipEnum.PEARL); + currentMakeup.setEnableTwoLipColor(false); + currentMakeup.setLipHighLightEnable(false); + currentMakeup.setLipHighLightStrength(0.0); + break; + case 5: + currentMakeup.setLipType(MakeupLipEnum.FOG); + currentMakeup.setEnableTwoLipColor(true); + currentMakeup.setLipHighLightEnable(false); + currentMakeup.setLipHighLightStrength(0.0); + currentMakeup.setLipColor2(new FUColorRGBData(0.0, 0.0, 0.0, 0.0)); + break; + } + + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_LIP_STICK + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_LIP_STICK + "_" + index); + } + currentMakeup.setLipIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_LIP_STICK + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_LIP_STICK + "_" + index); + } + updateCustomColor(key, colorIndex); + } + } else if (key.equals(FACE_MAKEUP_TYPE_BLUSHER)) { + if (index == 0) { + currentMakeup.setBlusherIntensity(0.0); + } else { + currentMakeup.setBlusherBundle(new FUBundleData(itemDir + "mu_style_blush_0" + index + ".bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_BLUSHER + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_BLUSHER + "_" + index); + } + currentMakeup.setBlusherIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_BLUSHER + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_BLUSHER + "_" + index); + } + updateCustomColor(key, colorIndex); + } + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_BROW)) { + if (index == 0) { + currentMakeup.setEyeBrowIntensity(0.0); + currentMakeup.setEnableBrowWarp(false); + } else { + currentMakeup.setEnableBrowWarp(false); + currentMakeup.setEyeBrowBundle(new FUBundleData(itemDir + "mu_style_eyebrow_0" + index + ".bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_EYE_BROW + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_EYE_BROW + "_" + index); + } + currentMakeup.setEyeBrowIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_EYE_BROW + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_EYE_BROW + "_" + index); + } + updateCustomColor(key, colorIndex); + } + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_SHADOW)) { + if (index == 0) { + currentMakeup.setEyeShadowIntensity(0.0); + } else { + currentMakeup.setEyeShadowBundle(new FUBundleData(itemDir + "mu_style_eyeshadow_0" + index + ".bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_EYE_SHADOW + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_EYE_SHADOW + "_" + index); + } + currentMakeup.setEyeShadowIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_EYE_SHADOW + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_EYE_SHADOW + "_" + index); + } + updateCustomColor(key, colorIndex); + } + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_LINER)) { + if (index == 0) { + currentMakeup.setEyeLineIntensity(0.0); + } else { + currentMakeup.setEyeLinerBundle(new FUBundleData(itemDir + "mu_style_eyeliner_0" + index + ".bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_EYE_LINER + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_EYE_LINER + "_" + index); + } + currentMakeup.setEyeLineIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_EYE_LINER + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_EYE_LINER + "_" + index); + } + updateCustomColor(key, colorIndex); + } + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_LASH)) { + if (index == 0) { + currentMakeup.setEyeLashIntensity(0.0); + } else { + currentMakeup.setEyeLashBundle(new FUBundleData(itemDir + "mu_style_eyelash_0" + index + ".bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_EYE_LASH + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_EYE_LASH + "_" + index); + } + currentMakeup.setEyeLashIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_EYE_LASH + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_EYE_LASH + "_" + index); + } + updateCustomColor(key, colorIndex); + } + } else if (key.equals(FACE_MAKEUP_TYPE_HIGH_LIGHT)) { + if (index == 0) { + currentMakeup.setHeightLightIntensity(0.0); + } else { + currentMakeup.setHighLightBundle(new FUBundleData(itemDir + "mu_style_highlight_0" + index + ".bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_HIGH_LIGHT + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_HIGH_LIGHT + "_" + index); + } + currentMakeup.setHeightLightIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_HIGH_LIGHT + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_HIGH_LIGHT + "_" + index); + } + updateCustomColor(key, colorIndex); + } + } else if (key.equals(FACE_MAKEUP_TYPE_SHADOW)) { + if (index == 0) { + currentMakeup.setShadowIntensity(0.0); + } else { + currentMakeup.setShadowBundle(new FUBundleData(itemDir + "mu_style_contour_01.bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_SHADOW + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_SHADOW + "_" + index); + } + currentMakeup.setShadowIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_SHADOW + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_SHADOW + "_" + index); + } + updateCustomColor(key, colorIndex); + } + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_PUPIL)) { + if (index == 0) { + currentMakeup.setPupilIntensity(0.0); + } else { + if (index == 1) { + currentMakeup.setPupilBundle(new FUBundleData(itemDir + "mu_style_eyepupil_01.bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + index); + } + currentMakeup.setPupilIntensity((intensity)); + int colorIndex = 3; + if (mCustomColorIndexMap.containsKey(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + index)) { + colorIndex = mCustomColorIndexMap.get(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + index); + } + updateCustomColor(key, colorIndex); + } else { + currentMakeup.setPupilBundle(new FUBundleData(itemDir + "mu_style_eyepupil_0" + (index + 1) + ".bundle")); + double intensity = 1.0; + if (mCustomIntensityMap.containsKey(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + index)) { + intensity = mCustomIntensityMap.get(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + index); + } + currentMakeup.setPupilIntensity((intensity)); + currentMakeup.setPupilColor(buildFUColorRGBData(new double[]{0.0, 0.0, 0.0, 0.0})); + } + + } + } + + } + + + /** + * 设置子妆颜色值 + * + * @param key 类别关键字 + * @param index 颜色下标 + */ + @Override + public void updateCustomColor(String key, int index) { + int current = mCustomIndexMap.containsKey(key) ? mCustomIndexMap.get(key) : 0; + if (key.equals(FACE_MAKEUP_TYPE_LIP_STICK)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_LIP_STICK + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_lip_01").get(index); + if (current == 3) + currentMakeup.setLipColorV2(buildFUColorRGBData(color)); + else + currentMakeup.setLipColor(buildFUColorRGBData(color)); + } else if (key.equals(FACE_MAKEUP_TYPE_BLUSHER)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_BLUSHER + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_blush_0" + current).get(index); + currentMakeup.setBlusherColor(buildFUColorRGBData(color)); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_BROW)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_BROW + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_eyebrow_01").get(index); + currentMakeup.setEyeBrowColor(buildFUColorRGBData(color)); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_SHADOW)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_SHADOW + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_eyeshadow_0" + current).get(index); + currentMakeup.setEyeShadowColor(new FUColorRGBData(color[0] * 255, color[1] * 255, color[2] * 255, color[3] * 255)); + currentMakeup.setEyeShadowColor2(new FUColorRGBData(color[4] * 255, color[5] * 255, color[6] * 255, color[7] * 255)); + currentMakeup.setEyeShadowColor3(new FUColorRGBData(color[8] * 255, color[9] * 255, color[10] * 255, color[11] * 255)); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_LINER)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_LINER + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_eyeliner_0" + current).get(index); + currentMakeup.setEyeLinerColor(buildFUColorRGBData(color)); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_LASH)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_LASH + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_eyelash_0" + current).get(index); + currentMakeup.setEyeLashColor(buildFUColorRGBData(color)); + } else if (key.equals(FACE_MAKEUP_TYPE_HIGH_LIGHT)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_HIGH_LIGHT + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_highlight_0" + current).get(index); + currentMakeup.setHighLightColor(buildFUColorRGBData(color)); + } else if (key.equals(FACE_MAKEUP_TYPE_SHADOW)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_SHADOW + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_contour_01").get(index); + currentMakeup.setShadowColor(buildFUColorRGBData(color)); + } else if (key.equals(FACE_MAKEUP_TYPE_EYE_PUPIL)) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + current, index); + double[] color = mMakeUpColorMap.get("color_mu_style_eyepupil_01").get(index); + currentMakeup.setPupilColor(buildFUColorRGBData(color)); + } + } + + + //endregion 子美妆 + + //region 其他 + + /** + * 进入自定义美妆,模型分析 + */ + @Override + public void enterCustomMakeup() { + mCustomIndexMap.clear(); + mCustomColorIndexMap.clear(); + mCustomIntensityMap.clear(); + double makeupIntensity = currentMakeup.getMakeupIntensity(); + /*粉底*/ + if (currentMakeup.getFoundationIntensity() != 0.0) { + double intensity = currentMakeup.getFoundationIntensity() * makeupIntensity; + currentMakeup.setFoundationIntensity(intensity); + double[] array = currentMakeup.getFoundationColor().toScaleColorArray(); + ArrayList list = mMakeUpColorMap.get("color_mu_style_foundation_01"); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(array, list.get(i))) { + mCustomIndexMap.put(FACE_MAKEUP_TYPE_FOUNDATION, i - 2); + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_FOUNDATION + "_" + (i - 2), intensity); + break; + } + } + + } + /*口红*/ + if (currentMakeup.getLipIntensity() != 0.0) { + double intensity = currentMakeup.getLipIntensity() * makeupIntensity; + currentMakeup.setLipIntensity(intensity); + int current = 0; + switch (currentMakeup.getLipType()) { + case MakeupLipEnum.FOG: + if (currentMakeup.getEnableTwoLipColor()) { + current = 5; + } else { + current = 1; + } + break; + case MakeupLipEnum.MOIST: + current = 3; + break; + case MakeupLipEnum.PEARL: + current = 4; + break; + case MakeupLipEnum.WATER: + current = 2; + break; + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_LIP_STICK, current); + if (current != 0) { + double[] colorArray; + if (currentMakeup.getLipType() == MakeupLipEnum.WATER) { + colorArray = currentMakeup.getLipColorV2().toScaleColorArray(); + } else { + colorArray = currentMakeup.getLipColor().toScaleColorArray(); + } + + ArrayList list = mMakeUpColorMap.get("color_mu_style_lip_01"); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(colorArray, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_LIP_STICK + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_LIP_STICK + "_" + current, intensity); + } + } + /*腮红*/ + if (currentMakeup.getBlusherIntensity() != 0.0 && currentMakeup.getBlusherBundle() != null) { + double intensity = currentMakeup.getBlusherIntensity() * makeupIntensity; + currentMakeup.setBlusherIntensity(intensity); + String path = currentMakeup.getBlusherBundle().getPath(); + int current = 0; + if (path.endsWith("mu_style_blush_01.bundle")) { + current = 1; + } else if (path.endsWith("mu_style_blush_02.bundle")) { + current = 2; + } else if (path.endsWith("mu_style_blush_03.bundle")) { + current = 3; + } else if (path.endsWith("mu_style_blush_04.bundle")) { + current = 4; + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_BLUSHER, current); + if (current != 0) { + double[] colorArray = currentMakeup.getBlusherColor().toScaleColorArray(); + ArrayList list = mMakeUpColorMap.get("color_mu_style_blush_0" + current); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(colorArray, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_BLUSHER + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_BLUSHER + "_" + current, intensity); + } + } + /*眉毛*/ + if (currentMakeup.getEyeBrowIntensity() != 0.0) { + double intensity = currentMakeup.getEyeBrowIntensity() * makeupIntensity; + currentMakeup.setEyeBrowIntensity(intensity); + int current = 0; + if (currentMakeup.getEyeBrowBundle() != null && currentMakeup.getEyeBrowBundle().getPath() != null) { + String bundlePath = currentMakeup.getEyeBrowBundle().getPath(); + int spotIndex = bundlePath.lastIndexOf("."); + String index = bundlePath.substring(spotIndex - 1, spotIndex); + current = Integer.valueOf(index); + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_EYE_BROW, current); + if (current != 0) { + double[] colorArray = currentMakeup.getEyeBrowColor().toScaleColorArray(); + ArrayList list = mMakeUpColorMap.get("color_mu_style_eyebrow_01"); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(colorArray, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_BROW + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_EYE_BROW + "_" + current, intensity); + } + } + /*眼影*/ + if (currentMakeup.getEyeShadowIntensity() != 0.0 && currentMakeup.getEyeShadowBundle() != null) { + double intensity = currentMakeup.getEyeShadowIntensity() * makeupIntensity; + currentMakeup.setEyeShadowIntensity(intensity); + String path = currentMakeup.getEyeShadowBundle().getPath(); + int current = 0; + if (path.endsWith("mu_style_eyeshadow_01.bundle")) { + current = 1; + } else if (path.endsWith("mu_style_eyeshadow_02.bundle")) { + current = 2; + } else if (path.endsWith("mu_style_eyeshadow_03.bundle")) { + current = 3; + } else if (path.endsWith("mu_style_eyeshadow_04.bundle")) { + current = 4; + } else if (path.endsWith("mu_style_eyeshadow_05.bundle")) { + current = 5; + } else if (path.endsWith("mu_style_eyeshadow_06.bundle")) { + current = 6; + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_EYE_SHADOW, current); + if (current != 0) { + double[] array = new double[12]; + double[] color1 = currentMakeup.getEyeShadowColor().toScaleColorArray(); + double[] color2 = currentMakeup.getEyeShadowColor2().toScaleColorArray(); + double[] color3 = currentMakeup.getEyeShadowColor3().toScaleColorArray(); + System.arraycopy(color1, 0, array, 0, color1.length); + System.arraycopy(color2, 0, array, 4, color2.length); + System.arraycopy(color3, 0, array, 8, color3.length); + ArrayList list = mMakeUpColorMap.get("color_mu_style_eyeshadow_0" + current); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(array, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_SHADOW + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_EYE_SHADOW + "_" + current, intensity); + } + } + /*眼线*/ + if (currentMakeup.getEyeLineIntensity() != 0.0 && currentMakeup.getEyeLinerBundle() != null) { + double intensity = currentMakeup.getEyeLineIntensity() * makeupIntensity; + currentMakeup.setEyeLineIntensity(intensity); + String path = currentMakeup.getEyeLinerBundle().getPath(); + int current = 0; + if (path.endsWith("mu_style_eyeliner_01.bundle")) { + current = 1; + } else if (path.endsWith("mu_style_eyeliner_02.bundle")) { + current = 2; + } else if (path.endsWith("mu_style_eyeliner_03.bundle")) { + current = 3; + } else if (path.endsWith("mu_style_eyeliner_04.bundle")) { + current = 4; + } else if (path.endsWith("mu_style_eyeliner_05.bundle")) { + current = 5; + } else if (path.endsWith("mu_style_eyeliner_06.bundle")) { + current = 6; + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_EYE_LINER, current); + if (current != 0) { + double[] colorArray = currentMakeup.getEyeLinerColor().toScaleColorArray(); + ArrayList list = mMakeUpColorMap.get("color_mu_style_eyeliner_0" + current); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(colorArray, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_LINER + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_EYE_LINER + "_" + current, intensity); + } + } + /* 睫毛*/ + if (currentMakeup.getEyeLashIntensity() != 0.0 && currentMakeup.getEyeLashBundle() != null) { + double intensity = currentMakeup.getEyeLashIntensity() * makeupIntensity; + currentMakeup.setEyeLashIntensity(intensity); + String path = currentMakeup.getEyeLashBundle().getPath(); + int current = 0; + if (path.endsWith("mu_style_eyelash_01.bundle")) { + current = 1; + } else if (path.endsWith("mu_style_eyelash_02.bundle")) { + current = 2; + } else if (path.endsWith("mu_style_eyelash_03.bundle")) { + current = 3; + } else if (path.endsWith("mu_style_eyelash_04.bundle")) { + current = 4; + } else if (path.endsWith("mu_style_eyelash_05.bundle")) { + current = 5; + } else if (path.endsWith("mu_style_eyelash_06.bundle")) { + current = 6; + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_EYE_LASH, current); + if (current != 0) { + double[] colorArray = currentMakeup.getEyeLashColor().toScaleColorArray(); + ArrayList list = mMakeUpColorMap.get("color_mu_style_eyelash_0" + current); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(colorArray, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_LASH + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_EYE_LASH + "_" + current, intensity); + } + } + /* 高光*/ + if (currentMakeup.getHeightLightIntensity() != 0.0 && currentMakeup.getHighLightBundle() != null) { + double intensity = currentMakeup.getHeightLightIntensity() * makeupIntensity; + currentMakeup.setHeightLightIntensity(intensity); + String path = currentMakeup.getHighLightBundle().getPath(); + int current = 0; + if (path.endsWith("mu_style_highlight_01.bundle")) { + current = 1; + } else if (path.endsWith("mu_style_highlight_02.bundle")) { + current = 2; + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_HIGH_LIGHT, current); + if (current != 0) { + double[] colorArray = currentMakeup.getHighLightColor().toScaleColorArray(); + ArrayList list = mMakeUpColorMap.get("color_mu_style_highlight_0" + current); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(colorArray, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_HIGH_LIGHT + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_HIGH_LIGHT + "_" + current, intensity); + } + } + /* 阴影*/ + if (currentMakeup.getShadowIntensity() != 0.0 && currentMakeup.getShadowBundle() != null) { + double intensity = currentMakeup.getShadowIntensity() * makeupIntensity; + currentMakeup.setShadowIntensity(intensity); + String path = currentMakeup.getShadowBundle().getPath(); + int current = 0; + if (path.endsWith("mu_style_contour_01.bundle")) { + current = 1; + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_SHADOW, current); + if (current != 0) { + double[] colorArray = currentMakeup.getShadowColor().toScaleColorArray(); + ArrayList list = mMakeUpColorMap.get("color_mu_style_contour_01"); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(colorArray, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_SHADOW + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_SHADOW + "_" + current, intensity); + } + } + /* 美瞳*/ + if (currentMakeup.getPupilIntensity() != 0.0 && currentMakeup.getPupilBundle() != null) { + double intensity = currentMakeup.getPupilIntensity() * makeupIntensity; + currentMakeup.setPupilIntensity(intensity); + String path = currentMakeup.getPupilBundle().getPath(); + int current = 0; + if (path.endsWith("mu_style_eyepupil_01.bundle")) { + current = 1; + } else if (path.endsWith("mu_style_eyepupil_03.bundle")) { + current = 2; + } else if (path.endsWith("mu_style_eyepupil_04.bundle")) { + current = 3; + } else if (path.endsWith("mu_style_eyepupil_05.bundle")) { + current = 4; + } else if (path.endsWith("mu_style_eyepupil_06.bundle")) { + current = 5; + } else if (path.endsWith("mu_style_eyepupil_07.bundle")) { + current = 6; + } else if (path.endsWith("mu_style_eyepupil_08.bundle")) { + current = 7; + } else if (path.endsWith("mu_style_eyepupil_09.bundle")) { + current = 8; + } + mCustomIndexMap.put(FACE_MAKEUP_TYPE_EYE_PUPIL, current); + if (current != 0) { + double[] colorArray = currentMakeup.getPupilColor().toScaleColorArray(); + ArrayList list = mMakeUpColorMap.get("color_mu_style_eyepupil_01"); + for (int i = 0; i < list.size(); i++) { + if (DecimalUtils.doubleArrayEquals(colorArray, list.get(i))) { + mCustomColorIndexMap.put(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + current, i); + break; + } + } + mCustomIntensityMap.put(FACE_MAKEUP_TYPE_EYE_PUPIL + "_" + current, intensity); + } + } + currentMakeup.setMakeupIntensity(1.0); + } + + /** + * 或当单项列表当前下标 + * + * @param key + * @return + */ + @Override + public int getCurrentCustomItemIndex(String key) { + if (mCustomIndexMap.containsKey(key)) { + return mCustomIndexMap.get(key); + } + return 0; + } + + /** + * 获取当前单项颜色下标 + * + * @param key + * @param current + * @return + */ + @Override + public int getCurrentCustomColorIndex(String key, int current) { + if (mCustomColorIndexMap.containsKey(key + "_" + current)) { + return mCustomColorIndexMap.get(key + "_" + current); + } + return 3; + } + + /** + * 获取当前单项强度 + * + * @param key + * @param current + * @return + */ + @Override + public double getCurrentCustomIntensity(String key, int current) { + if (mCustomIntensityMap.containsKey(key + "_" + current)) { + return mCustomIntensityMap.get(key + "_" + current); + } + return 1.0; + } + + //endregion + /** * FURenderKit加载当前特效 */ public void bindCurrentRenderer() { + mFURenderKit.setFaceBeauty(FaceBeautySource.clone(FaceBeautyDataFactory.faceBeauty)); + mFURenderKit.getFaceBeauty().setFilterName(currentFilterName); + mFURenderKit.getFaceBeauty().setFilterIntensity(currentFilterIntensity); + if (!currentMakeup.getControlBundle().getPath().equals(FaceUnityConfig.BUNDLE_FACE_MAKEUP)) + currentMakeup.setFilterIntensity(currentFilterIntensity); + FUAIKit.getInstance().setMaxFaces(4); mFURenderKit.setMakeup(currentMakeup); + + //特殊有一些需要设置图层混合模式的 04双色眼影3(第2层眼影的混合模式 == 1) 06三色眼影2(第3层眼影的混合模式 == 1) + if (currentMakeup.getEyeShadowBundle() != null && ("mu_style_eyeshadow_0" + 4).equals(currentMakeup.getEyeShadowBundle().getName())) + currentMakeup.setEyeShadowTexBlend2(1); + else if (currentMakeup.getEyeShadowBundle() != null && ("mu_style_eyeshadow_0" + 6).equals(currentMakeup.getEyeShadowBundle().getName())) + currentMakeup.setEyeShadowTexBlend3(1); + + if (FaceUnityConfig.IS_OPEN_LAND_MARK) { + ExpressionRecognition expressionRecognition = new ExpressionRecognition(new FUBundleData(FaceUnityConfig.BUNDLE_LANDMARKS)); + expressionRecognition.setLandmarksType(FUAITypeEnum.FUAITYPE_FACELANDMARKS239); + mFURenderKit.getPropContainer().addProp(expressionRecognition); + } } } \ No newline at end of file diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/data/PropDataFactory.java b/FaceUnity/src/main/java/com/yunbao/faceunity/data/PropDataFactory.java index 0997babef..2be22075a 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/data/PropDataFactory.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/data/PropDataFactory.java @@ -46,9 +46,14 @@ public class PropDataFactory extends AbstractPropDataFactory { /*回调接口*/ private final PropListener mPropListener; /*道具类型*/ - private final int propType; + private int propType; + /** + * @param listener 回调接口 + * @param type 道具类型 + * @param index 默认选中下标 + */ public PropDataFactory(PropListener listener, int type, int index) { mPropListener = listener; propType = type; @@ -89,12 +94,18 @@ public class PropDataFactory extends AbstractPropDataFactory { } + /** + * 设置效果 + */ @Override public void onItemSelected(PropBean bean) { onPropSelected(bean); mPropListener.onItemSelected(bean); } + public void setPropType(int propType) { + this.propType = propType; + } /** * 其他道具 diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/BaseBean.kt b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/BaseBean.kt index c6826505b..16310ea90 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/BaseBean.kt +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/BaseBean.kt @@ -1,5 +1,7 @@ package com.yunbao.faceunity.entity +import android.graphics.drawable.Drawable + abstract class BaseBean { abstract val key: String abstract val desRes: Int @@ -11,5 +13,7 @@ abstract class BaseBean { open fun getImageUrl():String { return ""; } - + open fun getImageDrawable(): Drawable{ + return null!! + } } \ No newline at end of file diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomBean.java b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomBean.java new file mode 100644 index 000000000..dbc4ce688 --- /dev/null +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomBean.java @@ -0,0 +1,90 @@ +package com.yunbao.faceunity.entity; + +import android.graphics.drawable.Drawable; + +import androidx.annotation.NonNull; + +import java.util.ArrayList; +/** + * + * @property nameRes Int 名称 + * @property drawable Drawable 图片资源 + * @property doubleArray ArrayList? 颜色数组 + * @constructor + */ +public class MakeupCustomBean extends BaseBean{ + private int nameRes; + private Drawable drawable; + private ArrayList doubleArray; + private int beanType; + + public MakeupCustomBean(int nameRes, Drawable drawable, ArrayList doubleArray,int beanType) { + this.nameRes = nameRes; + this.drawable = drawable; + this.doubleArray = doubleArray; + this.beanType=beanType; + } + + + public MakeupCustomBean(int nameRes, Drawable drawable,int beanType) { + this.nameRes = nameRes; + this.drawable = drawable; + this.beanType=beanType; + } + + public int getNameRes() { + return nameRes; + } + + public void setNameRes(int nameRes) { + this.nameRes = nameRes; + } + + public Drawable getDrawable() { + return drawable; + } + + public void setDrawable(Drawable drawable) { + this.drawable = drawable; + } + + public ArrayList getDoubleArray() { + return doubleArray; + } + + public void setDoubleArray(ArrayList doubleArray) { + this.doubleArray = doubleArray; + } + + @Override + public String getKey() { + return nameRes+""; + } + + @Override + public int getDesRes() { + return nameRes; + } + + @Override + public int getImageRes() { + return 0; + } + + @NonNull + @Override + public Drawable getImageDrawable() { + return drawable; + } + + @Override + public int getBeanType() { + return beanType; + } + + @NonNull + @Override + public ModelAttributeData getModelAttributeData() { + return null; + } +} diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomBean.kt b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomBean.kt deleted file mode 100644 index 8501fde77..000000000 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomBean.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.yunbao.faceunity.entity - -import android.graphics.drawable.Drawable - - -/** - * - * @property nameRes Int 名称 - * @property drawable Drawable 图片资源 - * @property doubleArray ArrayList? 颜色数组 - * @constructor - */ -data class MakeupCustomBean @JvmOverloads constructor( - val nameRes: Int, - val drawable: Drawable, - val doubleArray: ArrayList? = null -) - diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomClassBean.java b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomClassBean.java new file mode 100644 index 000000000..86fdcd44b --- /dev/null +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomClassBean.java @@ -0,0 +1,43 @@ +package com.yunbao.faceunity.entity; + +import androidx.annotation.NonNull; + +import com.yunbao.faceunity.data.FaceParam; + +public class MakeupCustomClassBean extends BaseBean{ + private int nameRes; + private String key; + private int beanType; + + public MakeupCustomClassBean(int nameRes, String key, int beanType) { + this.nameRes = nameRes; + this.key = key; + this.beanType = beanType; + } + + @Override + public String getKey() { + return key; + } + + @Override + public int getDesRes() { + return nameRes; + } + + @Override + public int getImageRes() { + return 0; + } + + @Override + public int getBeanType() { + return beanType; + } + + @NonNull + @Override + public ModelAttributeData getModelAttributeData() { + return null; + } +} diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomClassBean.kt b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomClassBean.kt deleted file mode 100644 index 343cf0511..000000000 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/MakeupCustomClassBean.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.yunbao.faceunity.entity - -/** - * 美妆子妆类别 - * @property nameRes Int 名称 - * @property key String 标识 - * @constructor - */ -data class MakeupCustomClassBean(val nameRes: Int, val key: String) \ No newline at end of file diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/PropBean.java b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/PropBean.java index 71e54142d..7e8625f06 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/PropBean.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/PropBean.java @@ -15,16 +15,19 @@ public class PropBean extends BaseBean { private int iconId; private String path; private int descId; + private int beanType; - public PropBean(int iconId, String path) { + public PropBean(int iconId, String path,int beanType) { this.iconId = iconId; this.path = path; + this.beanType=beanType; } - public PropBean(int iconId, String path, int descId) { + public PropBean(int iconId, String path, int descId,int beanType) { this.iconId = iconId; this.path = path; this.descId = descId; + this.beanType=beanType; } public int getIconId() { @@ -69,7 +72,7 @@ public class PropBean extends BaseBean { @Override public int getBeanType() { - return FaceParam.FACE_BIG_HEAD; + return beanType; } @NonNull @@ -77,4 +80,6 @@ public class PropBean extends BaseBean { public ModelAttributeData getModelAttributeData() { return null; } + + } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/net/FineStickerEntity.java b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/net/FineStickerEntity.java index 2a98657e5..fa520afc7 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/entity/net/FineStickerEntity.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/entity/net/FineStickerEntity.java @@ -137,7 +137,7 @@ public class FineStickerEntity { @NonNull @Override public String getKey() { - return tag; + return _id; } @Override diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/infe/AbstractMakeupDataFactory.java b/FaceUnity/src/main/java/com/yunbao/faceunity/infe/AbstractMakeupDataFactory.java deleted file mode 100644 index 771240a06..000000000 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/infe/AbstractMakeupDataFactory.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.yunbao.faceunity.infe; - - -import com.yunbao.faceunity.entity.MakeupCombinationBean; - -import java.util.ArrayList; - -/** - * DESC:数据构造工厂抽象类 - * Created on 2021/4/26 - */ -public abstract class AbstractMakeupDataFactory { - - /** - * 获取当前组合妆容列表 - * - * @return - */ - public abstract ArrayList getMakeupCombinations(); - - /** - * 获取当前组合妆容下标 - * - * @return - */ - public abstract int getCurrentCombinationIndex(); - - /** - * 设置组合妆容下标 - * - * @param currentCombinationIndex - */ - public abstract void setCurrentCombinationIndex(int currentCombinationIndex); - - - /** - * 组合妆容选中 - * - * @param bean MakeupCombinationBean - */ - public abstract void onMakeupCombinationSelected(MakeupCombinationBean bean); - - /** - * 设置美妆整体强度 - * - * @param intensity Double - */ - public abstract void updateCombinationIntensity(double intensity); - -} diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/infe/AbstractMakeupDataFactory.kt b/FaceUnity/src/main/java/com/yunbao/faceunity/infe/AbstractMakeupDataFactory.kt new file mode 100644 index 000000000..6fe3b0526 --- /dev/null +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/infe/AbstractMakeupDataFactory.kt @@ -0,0 +1,93 @@ +package com.yunbao.faceunity.infe + + +import com.yunbao.faceunity.entity.MakeupCombinationBean +import com.yunbao.faceunity.entity.MakeupCustomBean +import com.yunbao.faceunity.entity.MakeupCustomClassBean + + +/** + * + * DESC: + * Created on 2020/12/22 + * + */ +abstract class AbstractMakeupDataFactory { + + /* 默认组合妆容下标 */ + abstract var currentCombinationIndex: Int + + /* 美妆组合妆容配置 */ + abstract val makeupCombinations: ArrayList + + /** + * 组合妆容选中 + * @param bean MakeupCombinationBean + */ + abstract fun onMakeupCombinationSelected(bean: MakeupCombinationBean) + + /** + * 设置美妆整体强度 + * @param intensity Double + */ + abstract fun updateCombinationIntensity(intensity: Double) + + /** + * 进入自定义美妆 + */ + abstract fun enterCustomMakeup() + + /** + * 设置美妆单项强度 + * @param key String 单项key + * @param current Int 单项下标 + * @param intensity Double + */ + abstract fun updateCustomItemIntensity(key: String, current: Int, intensity: Double) + + /** + * 更换类别单项 + * @param key String + * @param index Int + */ + abstract fun onCustomBeanSelected(key: String, index: Int) + + /** + * 设置单项颜色 + * @param key String + * @param index Int + */ + abstract fun updateCustomColor(key: String, index: Int) + + + /* 美妆功能菜单 */ + abstract val makeupCustomItemParams: LinkedHashMap> + + /* 美妆子项类别 */ + + abstract val makeupCustomClass: ArrayList + + + /** + * 获取美妆单项当前下标 + * @param key String + * @return Int + */ + abstract fun getCurrentCustomItemIndex(key: String): Int + + /** + * 获取美妆当前选中项颜色下标 + * @param key String + * @param current Int + * @return Int + */ + abstract fun getCurrentCustomColorIndex(key: String, current: Int): Int + + /** + * 获取美妆当前选中项强度 + * @param key String + * @param current Int + * @return Double + */ + abstract fun getCurrentCustomIntensity(key: String, current: Int): Double +} \ No newline at end of file diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/repo/MakeupSource.java b/FaceUnity/src/main/java/com/yunbao/faceunity/repo/MakeupSource.java index 6c7b4cff3..4b4b6ca47 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/repo/MakeupSource.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/repo/MakeupSource.java @@ -288,20 +288,22 @@ public class MakeupSource { */ public static ArrayList buildCustomClasses() { ArrayList classes = new ArrayList(); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_foundation, FACE_MAKEUP_TYPE_FOUNDATION)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_lipstick, FACE_MAKEUP_TYPE_LIP_STICK)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_blusher, FACE_MAKEUP_TYPE_BLUSHER)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_eyebrow, FACE_MAKEUP_TYPE_EYE_BROW)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_eye_shadow, FACE_MAKEUP_TYPE_EYE_SHADOW)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_eye_liner, FACE_MAKEUP_TYPE_EYE_LINER)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_eyelash, FACE_MAKEUP_TYPE_EYE_LASH)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_highlight, FACE_MAKEUP_TYPE_HIGH_LIGHT)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_shadow, FACE_MAKEUP_TYPE_SHADOW)); - classes.add(new MakeupCustomClassBean(R.string.makeup_radio_contact_lens, FACE_MAKEUP_TYPE_EYE_PUPIL)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_foundation, FACE_MAKEUP_TYPE_FOUNDATION,FaceParam.FACE_MAKEUP_TYPE_FOUNDATION)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_lipstick, FACE_MAKEUP_TYPE_LIP_STICK,FaceParam.FACE_MAKEUP_TYPE_LIP_STICK)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_blusher, FACE_MAKEUP_TYPE_BLUSHER,FaceParam.FACE_MAKEUP_TYPE_BLUSHER)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_eyebrow, FACE_MAKEUP_TYPE_EYE_BROW,FaceParam.FACE_MAKEUP_TYPE_EYE_BROW)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_eye_shadow, FACE_MAKEUP_TYPE_EYE_SHADOW,FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_eye_liner, FACE_MAKEUP_TYPE_EYE_LINER,FaceParam.FACE_MAKEUP_TYPE_EYE_LINER)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_eyelash, FACE_MAKEUP_TYPE_EYE_LASH,FaceParam.FACE_MAKEUP_TYPE_EYE_LASH)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_highlight, FACE_MAKEUP_TYPE_HIGH_LIGHT,FaceParam.FACE_MAKEUP_TYPE_HIGH_LIGHT)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_shadow, FACE_MAKEUP_TYPE_SHADOW,FaceParam.FACE_MAKEUP_TYPE_SHADOW)); + classes.add(new MakeupCustomClassBean(R.string.makeup_radio_contact_lens, FACE_MAKEUP_TYPE_EYE_PUPIL,FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); return classes; } - + public static LinkedHashMap> buildCustomItemParams(){ + return buildCustomItemParams(MakeupSource.buildMakeUpColorMap()); + } /** * 美妆单项妆容配置参数 * @@ -311,12 +313,12 @@ public class MakeupSource { LinkedHashMap> mCustomItems = new LinkedHashMap<>(); /*粉底*/ ArrayList makeupItems = new ArrayList(6); - makeupItems.add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); + makeupItems.add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_FOUNDATION)); ArrayList list = colorMap.get("color_mu_style_foundation_01"); for (int i = 3; i < 8; i++) { double[] colors = list.get(i); ColorDrawable drawable = new ColorDrawable(Color.argb((int) (colors[3] * 255), (int) (colors[0] * 255), (int) (colors[1] * 255), (int) (colors[2] * 255))); - makeupItems.add(new MakeupCustomBean(0, drawable)); + makeupItems.add(new MakeupCustomBean(0, drawable,FaceParam.FACE_MAKEUP_TYPE_FOUNDATION)); } mCustomItems.put(FACE_MAKEUP_TYPE_FOUNDATION, makeupItems); @@ -324,101 +326,101 @@ public class MakeupSource { /*口红*/ mCustomItems.put(FACE_MAKEUP_TYPE_LIP_STICK, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_lip_fog, getDrawable(R.mipmap.icon_makeup_lip_fog), colorMap.get("color_mu_style_lip_01"))); - add(new MakeupCustomBean(R.string.makeup_lip_moist1, getDrawable(R.mipmap.icon_makeup_lip_moist), colorMap.get("color_mu_style_lip_01"))); - add(new MakeupCustomBean(R.string.makeup_lip_moist2, getDrawable(R.mipmap.icon_makeup_lip_water), colorMap.get("color_mu_style_lip_01"))); - add(new MakeupCustomBean(R.string.makeup_lip_pearl, getDrawable(R.mipmap.icon_makeup_lip_pearl), colorMap.get("color_mu_style_lip_01"))); - add(new MakeupCustomBean(R.string.makeup_lip_bitelip, getDrawable(R.mipmap.icon_makeup_lip_beitelip), colorMap.get("color_mu_style_lip_01"))); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_LIP_STICK)); + add(new MakeupCustomBean(R.string.makeup_lip_fog, getDrawable(R.mipmap.icon_makeup_lip_fog), colorMap.get("color_mu_style_lip_01"),FaceParam.FACE_MAKEUP_TYPE_LIP_STICK)); + add(new MakeupCustomBean(R.string.makeup_lip_moist1, getDrawable(R.mipmap.icon_makeup_lip_moist), colorMap.get("color_mu_style_lip_01"),FaceParam.FACE_MAKEUP_TYPE_LIP_STICK)); + add(new MakeupCustomBean(R.string.makeup_lip_moist2, getDrawable(R.mipmap.icon_makeup_lip_water), colorMap.get("color_mu_style_lip_01"),FaceParam.FACE_MAKEUP_TYPE_LIP_STICK)); + add(new MakeupCustomBean(R.string.makeup_lip_pearl, getDrawable(R.mipmap.icon_makeup_lip_pearl), colorMap.get("color_mu_style_lip_01"),FaceParam.FACE_MAKEUP_TYPE_LIP_STICK)); + add(new MakeupCustomBean(R.string.makeup_lip_bitelip, getDrawable(R.mipmap.icon_makeup_lip_beitelip), colorMap.get("color_mu_style_lip_01"),FaceParam.FACE_MAKEUP_TYPE_LIP_STICK)); } }); /*腮红*/ mCustomItems.put(FACE_MAKEUP_TYPE_BLUSHER, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_blusher_apple, getDrawable(R.mipmap.icon_makeup_blush_01), colorMap.get("color_mu_style_blush_01"))); - add(new MakeupCustomBean(R.string.makeup_blusher_fan, getDrawable(R.mipmap.icon_makeup_blush_02), colorMap.get("color_mu_style_blush_02"))); - add(new MakeupCustomBean(R.string.makeup_blusher_eye_corner, getDrawable(R.mipmap.icon_makeup_blush_03), colorMap.get("color_mu_style_blush_03"))); - add(new MakeupCustomBean(R.string.makeup_blusher_slight_drunk, getDrawable(R.mipmap.icon_makeup_blush_04), colorMap.get("color_mu_style_blush_04"))); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_BLUSHER)); + add(new MakeupCustomBean(R.string.makeup_blusher_apple, getDrawable(R.mipmap.icon_makeup_blush_01), colorMap.get("color_mu_style_blush_01"),FaceParam.FACE_MAKEUP_TYPE_BLUSHER)); + add(new MakeupCustomBean(R.string.makeup_blusher_fan, getDrawable(R.mipmap.icon_makeup_blush_02), colorMap.get("color_mu_style_blush_02"),FaceParam.FACE_MAKEUP_TYPE_BLUSHER)); + add(new MakeupCustomBean(R.string.makeup_blusher_eye_corner, getDrawable(R.mipmap.icon_makeup_blush_03), colorMap.get("color_mu_style_blush_03"),FaceParam.FACE_MAKEUP_TYPE_BLUSHER)); + add(new MakeupCustomBean(R.string.makeup_blusher_slight_drunk, getDrawable(R.mipmap.icon_makeup_blush_04), colorMap.get("color_mu_style_blush_04"),FaceParam.FACE_MAKEUP_TYPE_BLUSHER)); } }); /*眉毛*/ mCustomItems.put(FACE_MAKEUP_TYPE_EYE_BROW, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_eyebrow_willow, getDrawable(R.mipmap.icon_makeup_eyebrow_01), colorMap.get("color_mu_style_eyebrow_01"))); - add(new MakeupCustomBean(R.string.makeup_eyebrow_wild, getDrawable(R.mipmap.icon_makeup_eyebrow_02), colorMap.get("color_mu_style_eyebrow_01"))); - add(new MakeupCustomBean(R.string.makeup_eyebrow_classical, getDrawable(R.mipmap.icon_makeup_eyebrow_03), colorMap.get("color_mu_style_eyebrow_01"))); - add(new MakeupCustomBean(R.string.makeup_eyebrow_standard, getDrawable(R.mipmap.icon_makeup_eyebrow_04), colorMap.get("color_mu_style_eyebrow_01"))); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_EYE_BROW)); + add(new MakeupCustomBean(R.string.makeup_eyebrow_willow, getDrawable(R.mipmap.icon_makeup_eyebrow_01), colorMap.get("color_mu_style_eyebrow_01"),FaceParam.FACE_MAKEUP_TYPE_EYE_BROW)); + add(new MakeupCustomBean(R.string.makeup_eyebrow_wild, getDrawable(R.mipmap.icon_makeup_eyebrow_02), colorMap.get("color_mu_style_eyebrow_01"),FaceParam.FACE_MAKEUP_TYPE_EYE_BROW)); + add(new MakeupCustomBean(R.string.makeup_eyebrow_classical, getDrawable(R.mipmap.icon_makeup_eyebrow_03), colorMap.get("color_mu_style_eyebrow_01"),FaceParam.FACE_MAKEUP_TYPE_EYE_BROW)); + add(new MakeupCustomBean(R.string.makeup_eyebrow_standard, getDrawable(R.mipmap.icon_makeup_eyebrow_04), colorMap.get("color_mu_style_eyebrow_01"),FaceParam.FACE_MAKEUP_TYPE_EYE_BROW)); } }); /*眼影*/ mCustomItems.put(FACE_MAKEUP_TYPE_EYE_SHADOW, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_eye_shadow_single, getDrawable(R.mipmap.icon_makeup_eyeshadow_01), colorMap.get("color_mu_style_eyeshadow_01"))); - add(new MakeupCustomBean(R.string.makeup_eye_shadow_double1, getDrawable(R.mipmap.icon_makeup_eyeshadow_02), colorMap.get("color_mu_style_eyeshadow_02"))); - add(new MakeupCustomBean(R.string.makeup_eye_shadow_double2, getDrawable(R.mipmap.icon_makeup_eyeshadow_03), colorMap.get("color_mu_style_eyeshadow_03"))); - add(new MakeupCustomBean(R.string.makeup_eye_shadow_double3, getDrawable(R.mipmap.icon_makeup_eyeshadow_04), colorMap.get("color_mu_style_eyeshadow_04"))); - add(new MakeupCustomBean(R.string.makeup_eye_shadow_triple1, getDrawable(R.mipmap.icon_makeup_eyeshadow_05), colorMap.get("color_mu_style_eyeshadow_05"))); - add(new MakeupCustomBean(R.string.makeup_eye_shadow_triple2, getDrawable(R.mipmap.icon_makeup_eyeshadow_06), colorMap.get("color_mu_style_eyeshadow_06"))); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW)); + add(new MakeupCustomBean(R.string.makeup_eye_shadow_single, getDrawable(R.mipmap.icon_makeup_eyeshadow_01), colorMap.get("color_mu_style_eyeshadow_01"),FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW)); + add(new MakeupCustomBean(R.string.makeup_eye_shadow_double1, getDrawable(R.mipmap.icon_makeup_eyeshadow_02), colorMap.get("color_mu_style_eyeshadow_02"),FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW)); + add(new MakeupCustomBean(R.string.makeup_eye_shadow_double2, getDrawable(R.mipmap.icon_makeup_eyeshadow_03), colorMap.get("color_mu_style_eyeshadow_03"),FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW)); + add(new MakeupCustomBean(R.string.makeup_eye_shadow_double3, getDrawable(R.mipmap.icon_makeup_eyeshadow_04), colorMap.get("color_mu_style_eyeshadow_04"),FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW)); + add(new MakeupCustomBean(R.string.makeup_eye_shadow_triple1, getDrawable(R.mipmap.icon_makeup_eyeshadow_05), colorMap.get("color_mu_style_eyeshadow_05"),FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW)); + add(new MakeupCustomBean(R.string.makeup_eye_shadow_triple2, getDrawable(R.mipmap.icon_makeup_eyeshadow_06), colorMap.get("color_mu_style_eyeshadow_06"),FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW)); } }); /*眼线*/ mCustomItems.put(FACE_MAKEUP_TYPE_EYE_LINER, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_eye_linear_cat, getDrawable(R.mipmap.icon_makeup_eyeliner_01), colorMap.get("color_mu_style_eyeliner_01"))); - add(new MakeupCustomBean(R.string.makeup_eye_linear_drooping, getDrawable(R.mipmap.icon_makeup_eyeliner_02), colorMap.get("color_mu_style_eyeliner_02"))); - add(new MakeupCustomBean(R.string.makeup_eye_linear_pull_open, getDrawable(R.mipmap.icon_makeup_eyeliner_03), colorMap.get("color_mu_style_eyeliner_03"))); - add(new MakeupCustomBean(R.string.makeup_eye_linear_pull_close, getDrawable(R.mipmap.icon_makeup_eyeliner_04), colorMap.get("color_mu_style_eyeliner_04"))); - add(new MakeupCustomBean(R.string.makeup_eye_linear_long, getDrawable(R.mipmap.icon_makeup_eyeliner_05), colorMap.get("color_mu_style_eyeliner_05"))); - add(new MakeupCustomBean(R.string.makeup_eye_linear_circular, getDrawable(R.mipmap.icon_makeup_eyeliner_06), colorMap.get("color_mu_style_eyeliner_06"))); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_EYE_LINER)); + add(new MakeupCustomBean(R.string.makeup_eye_linear_cat, getDrawable(R.mipmap.icon_makeup_eyeliner_01), colorMap.get("color_mu_style_eyeliner_01"),FaceParam.FACE_MAKEUP_TYPE_EYE_LINER)); + add(new MakeupCustomBean(R.string.makeup_eye_linear_drooping, getDrawable(R.mipmap.icon_makeup_eyeliner_02), colorMap.get("color_mu_style_eyeliner_02"),FaceParam.FACE_MAKEUP_TYPE_EYE_LINER)); + add(new MakeupCustomBean(R.string.makeup_eye_linear_pull_open, getDrawable(R.mipmap.icon_makeup_eyeliner_03), colorMap.get("color_mu_style_eyeliner_03"),FaceParam.FACE_MAKEUP_TYPE_EYE_LINER)); + add(new MakeupCustomBean(R.string.makeup_eye_linear_pull_close, getDrawable(R.mipmap.icon_makeup_eyeliner_04), colorMap.get("color_mu_style_eyeliner_04"),FaceParam.FACE_MAKEUP_TYPE_EYE_LINER)); + add(new MakeupCustomBean(R.string.makeup_eye_linear_long, getDrawable(R.mipmap.icon_makeup_eyeliner_05), colorMap.get("color_mu_style_eyeliner_05"),FaceParam.FACE_MAKEUP_TYPE_EYE_LINER)); + add(new MakeupCustomBean(R.string.makeup_eye_linear_circular, getDrawable(R.mipmap.icon_makeup_eyeliner_06), colorMap.get("color_mu_style_eyeliner_06"),FaceParam.FACE_MAKEUP_TYPE_EYE_LINER)); } }); /*睫毛*/ mCustomItems.put(FACE_MAKEUP_TYPE_EYE_LASH, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_eyelash_natural1, getDrawable(R.mipmap.icon_makeup_eyelash_01), colorMap.get("color_mu_style_eyelash_01"))); - add(new MakeupCustomBean(R.string.makeup_eyelash_natural2, getDrawable(R.mipmap.icon_makeup_eyelash_02), colorMap.get("color_mu_style_eyelash_02"))); - add(new MakeupCustomBean(R.string.makeup_eyelash_thick1, getDrawable(R.mipmap.icon_makeup_eyelash_03), colorMap.get("color_mu_style_eyelash_03"))); - add(new MakeupCustomBean(R.string.makeup_eyelash_thick2, getDrawable(R.mipmap.icon_makeup_eyelash_04), colorMap.get("color_mu_style_eyelash_04"))); - add(new MakeupCustomBean(R.string.makeup_eyelash_exaggerate1, getDrawable(R.mipmap.icon_makeup_eyelash_05), colorMap.get("color_mu_style_eyelash_05"))); - add(new MakeupCustomBean(R.string.makeup_eyelash_exaggerate2, getDrawable(R.mipmap.icon_makeup_eyelash_06), colorMap.get("color_mu_style_eyelash_06"))); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_EYE_LASH)); + add(new MakeupCustomBean(R.string.makeup_eyelash_natural1, getDrawable(R.mipmap.icon_makeup_eyelash_01), colorMap.get("color_mu_style_eyelash_01"),FaceParam.FACE_MAKEUP_TYPE_EYE_LASH)); + add(new MakeupCustomBean(R.string.makeup_eyelash_natural2, getDrawable(R.mipmap.icon_makeup_eyelash_02), colorMap.get("color_mu_style_eyelash_02"),FaceParam.FACE_MAKEUP_TYPE_EYE_LASH)); + add(new MakeupCustomBean(R.string.makeup_eyelash_thick1, getDrawable(R.mipmap.icon_makeup_eyelash_03), colorMap.get("color_mu_style_eyelash_03"),FaceParam.FACE_MAKEUP_TYPE_EYE_LASH)); + add(new MakeupCustomBean(R.string.makeup_eyelash_thick2, getDrawable(R.mipmap.icon_makeup_eyelash_04), colorMap.get("color_mu_style_eyelash_04"),FaceParam.FACE_MAKEUP_TYPE_EYE_LASH)); + add(new MakeupCustomBean(R.string.makeup_eyelash_exaggerate1, getDrawable(R.mipmap.icon_makeup_eyelash_05), colorMap.get("color_mu_style_eyelash_05"),FaceParam.FACE_MAKEUP_TYPE_EYE_LASH)); + add(new MakeupCustomBean(R.string.makeup_eyelash_exaggerate2, getDrawable(R.mipmap.icon_makeup_eyelash_06), colorMap.get("color_mu_style_eyelash_06"),FaceParam.FACE_MAKEUP_TYPE_EYE_LASH)); } }); /*高光*/ mCustomItems.put(FACE_MAKEUP_TYPE_HIGH_LIGHT, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_highlight_one, getDrawable(R.mipmap.icon_makeup_highlight_01), colorMap.get("color_mu_style_highlight_01"))); - add(new MakeupCustomBean(R.string.makeup_highlight_two, getDrawable(R.mipmap.icon_makeup_highlight_02), colorMap.get("color_mu_style_highlight_02"))); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_HIGH_LIGHT)); + add(new MakeupCustomBean(R.string.makeup_highlight_one, getDrawable(R.mipmap.icon_makeup_highlight_01), colorMap.get("color_mu_style_highlight_01"),FaceParam.FACE_MAKEUP_TYPE_HIGH_LIGHT)); + add(new MakeupCustomBean(R.string.makeup_highlight_two, getDrawable(R.mipmap.icon_makeup_highlight_02), colorMap.get("color_mu_style_highlight_02"),FaceParam.FACE_MAKEUP_TYPE_HIGH_LIGHT)); } }); /*阴影*/ mCustomItems.put(FACE_MAKEUP_TYPE_SHADOW, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_shadow_one, getDrawable(R.mipmap.icon_makeup_contour_01), colorMap.get("color_mu_style_contour_01"))); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_SHADOW)); + add(new MakeupCustomBean(R.string.makeup_shadow_one, getDrawable(R.mipmap.icon_makeup_contour_01), colorMap.get("color_mu_style_contour_01"),FaceParam.FACE_MAKEUP_TYPE_SHADOW)); } }); /*美瞳*/ mCustomItems.put(FACE_MAKEUP_TYPE_EYE_PUPIL, new ArrayList() { { - add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none))); - add(new MakeupCustomBean(R.string.makeup_pupil_1, getDrawable(R.mipmap.icon_makeup_eyepupil_01), colorMap.get("color_mu_style_eyepupil_01"))); - add(new MakeupCustomBean(R.string.makeup_pupil_2, getDrawable(R.mipmap.icon_makeup_eyepupil_03), null)); - add(new MakeupCustomBean(R.string.makeup_pupil_3, getDrawable(R.mipmap.icon_makeup_eyepupil_04), null)); - add(new MakeupCustomBean(R.string.makeup_pupil_4, getDrawable(R.mipmap.icon_makeup_eyepupil_05), null)); - add(new MakeupCustomBean(R.string.makeup_pupil_5, getDrawable(R.mipmap.icon_makeup_eyepupil_06), null)); - add(new MakeupCustomBean(R.string.makeup_pupil_6, getDrawable(R.mipmap.icon_makeup_eyepupil_07), null)); - add(new MakeupCustomBean(R.string.makeup_pupil_7, getDrawable(R.mipmap.icon_makeup_eyepupil_08), null)); - add(new MakeupCustomBean(R.string.makeup_pupil_8, getDrawable(R.mipmap.icon_makeup_eyepupil_09), null)); + add(new MakeupCustomBean(R.string.makeup_radio_remove, getDrawable(R.mipmap.icon_control_none),FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); + add(new MakeupCustomBean(R.string.makeup_pupil_1, getDrawable(R.mipmap.icon_makeup_eyepupil_01), colorMap.get("color_mu_style_eyepupil_01"),FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); + add(new MakeupCustomBean(R.string.makeup_pupil_2, getDrawable(R.mipmap.icon_makeup_eyepupil_03), null,FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); + add(new MakeupCustomBean(R.string.makeup_pupil_3, getDrawable(R.mipmap.icon_makeup_eyepupil_04), null,FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); + add(new MakeupCustomBean(R.string.makeup_pupil_4, getDrawable(R.mipmap.icon_makeup_eyepupil_05), null,FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); + add(new MakeupCustomBean(R.string.makeup_pupil_5, getDrawable(R.mipmap.icon_makeup_eyepupil_06), null,FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); + add(new MakeupCustomBean(R.string.makeup_pupil_6, getDrawable(R.mipmap.icon_makeup_eyepupil_07), null,FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); + add(new MakeupCustomBean(R.string.makeup_pupil_7, getDrawable(R.mipmap.icon_makeup_eyepupil_08), null,FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); + add(new MakeupCustomBean(R.string.makeup_pupil_8, getDrawable(R.mipmap.icon_makeup_eyepupil_09), null,FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL)); } }); return mCustomItems; diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/repo/PropSource.java b/FaceUnity/src/main/java/com/yunbao/faceunity/repo/PropSource.java index 1d9534f91..4d126b480 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/repo/PropSource.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/repo/PropSource.java @@ -1,6 +1,7 @@ package com.yunbao.faceunity.repo; import com.yunbao.faceunity.R; +import com.yunbao.faceunity.data.FaceParam; import com.yunbao.faceunity.entity.FunctionEnum; import com.yunbao.faceunity.entity.PropBean; @@ -16,62 +17,62 @@ public class PropSource { ArrayList propBeans = new ArrayList<>(); switch (propType) { case FunctionEnum.STICKER: - propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null)); - propBeans.add(new PropBean(R.mipmap.icon_sticker_cat_sparks, "effect/normal/cat_sparks.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_sticker_fu_zh_fenshu, "effect/normal/fu_zh_fenshu.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_sticker_sdlr, "effect/normal/sdlr.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_sticker_xlong_zh_fu, "effect/normal/xlong_zh_fu.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_sticker_newy1, "effect/normal/newy1.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_sticker_redribbt, "effect/normal/redribbt.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_sticker_daisypig, "effect/normal/daisypig.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_sticker_sdlu, "effect/normal/sdlu.bundle")); + propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null, FaceParam.FACE_STICKER)); + propBeans.add(new PropBean(R.mipmap.icon_sticker_cat_sparks, "effect/normal/cat_sparks.bundle", FaceParam.FACE_STICKER)); + propBeans.add(new PropBean(R.mipmap.icon_sticker_fu_zh_fenshu, "effect/normal/fu_zh_fenshu.bundle", FaceParam.FACE_STICKER)); + propBeans.add(new PropBean(R.mipmap.icon_sticker_sdlr, "effect/normal/sdlr.bundle", FaceParam.FACE_STICKER)); + propBeans.add(new PropBean(R.mipmap.icon_sticker_xlong_zh_fu, "effect/normal/xlong_zh_fu.bundle", FaceParam.FACE_STICKER)); + propBeans.add(new PropBean(R.mipmap.icon_sticker_newy1, "effect/normal/newy1.bundle", FaceParam.FACE_STICKER)); + propBeans.add(new PropBean(R.mipmap.icon_sticker_redribbt, "effect/normal/redribbt.bundle", FaceParam.FACE_STICKER)); + propBeans.add(new PropBean(R.mipmap.icon_sticker_daisypig, "effect/normal/daisypig.bundle", FaceParam.FACE_STICKER)); + propBeans.add(new PropBean(R.mipmap.icon_sticker_sdlu, "effect/normal/sdlu.bundle", FaceParam.FACE_STICKER)); break; case FunctionEnum.AR_MASK: - propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null)); - propBeans.add(new PropBean(R.mipmap.icon_ar_bluebird, "effect/ar/bluebird.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_ar_lanhudie, "effect/ar/lanhudie.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_ar_fenhudie, "effect/ar/fenhudie.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_ar_tiger_huang, "effect/ar/tiger_huang.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_ar_tiger_bai, "effect/ar/tiger_bai.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_ar_baozi, "effect/ar/baozi.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_ar_tiger, "effect/ar/tiger.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_ar_xiongmao, "effect/ar/xiongmao.bundle")); + propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null, FaceParam.FACE_ANIM_AR_MASK)); + propBeans.add(new PropBean(R.mipmap.icon_ar_bluebird, "effect/ar/bluebird.bundle", FaceParam.FACE_ANIM_AR_MASK)); + propBeans.add(new PropBean(R.mipmap.icon_ar_lanhudie, "effect/ar/lanhudie.bundle", FaceParam.FACE_ANIM_AR_MASK)); + propBeans.add(new PropBean(R.mipmap.icon_ar_fenhudie, "effect/ar/fenhudie.bundle", FaceParam.FACE_ANIM_AR_MASK)); + propBeans.add(new PropBean(R.mipmap.icon_ar_tiger_huang, "effect/ar/tiger_huang.bundle", FaceParam.FACE_ANIM_AR_MASK)); + propBeans.add(new PropBean(R.mipmap.icon_ar_tiger_bai, "effect/ar/tiger_bai.bundle", FaceParam.FACE_ANIM_AR_MASK)); + propBeans.add(new PropBean(R.mipmap.icon_ar_baozi, "effect/ar/baozi.bundle", FaceParam.FACE_ANIM_AR_MASK)); + propBeans.add(new PropBean(R.mipmap.icon_ar_tiger, "effect/ar/tiger.bundle", FaceParam.FACE_ANIM_AR_MASK)); + propBeans.add(new PropBean(R.mipmap.icon_ar_xiongmao, "effect/ar/xiongmao.bundle", FaceParam.FACE_ANIM_AR_MASK)); break; case FunctionEnum.BIG_HEAD: - propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null)); - propBeans.add(new PropBean(R.mipmap.icon_big_head, "effect/big_head/big_head.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_big_head_husky_face, "effect/big_head/big_head_facewarp2.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_big_head_sausage_mouth, "effect/big_head/big_head_facewarp4.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_big_head_blush, "effect/big_head/big_head_facewarp5.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_big_head_dark_circles, "effect/big_head/big_head_facewarp6.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_big_head_smiling_head, "effect/big_head/big_head_smile.bundle", R.string.xiaobianzi_zh_fu)); + propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null, FaceParam.FACE_BIG_HEAD)); + propBeans.add(new PropBean(R.mipmap.icon_big_head, "effect/big_head/big_head.bundle", FaceParam.FACE_BIG_HEAD)); + propBeans.add(new PropBean(R.mipmap.icon_big_head_husky_face, "effect/big_head/big_head_facewarp2.bundle", FaceParam.FACE_BIG_HEAD)); + propBeans.add(new PropBean(R.mipmap.icon_big_head_sausage_mouth, "effect/big_head/big_head_facewarp4.bundle", FaceParam.FACE_BIG_HEAD)); + propBeans.add(new PropBean(R.mipmap.icon_big_head_blush, "effect/big_head/big_head_facewarp5.bundle", FaceParam.FACE_BIG_HEAD)); + propBeans.add(new PropBean(R.mipmap.icon_big_head_dark_circles, "effect/big_head/big_head_facewarp6.bundle", FaceParam.FACE_BIG_HEAD)); + propBeans.add(new PropBean(R.mipmap.icon_big_head_smiling_head, "effect/big_head/big_head_smile.bundle", R.string.xiaobianzi_zh_fu, FaceParam.FACE_BIG_HEAD)); break; case FunctionEnum.EXPRESSION_RECOGNITION: - propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null)); - propBeans.add(new PropBean(R.mipmap.icon_expression_future_warrior, "effect/expression/future_warrior.bundle", R.string.future_warrior)); - propBeans.add(new PropBean(R.mipmap.icon_expression_jet_mask, "effect/expression/jet_mask.bundle", R.string.jet_mask)); - propBeans.add(new PropBean(R.mipmap.icon_expression_sdx2, "effect/expression/sdx2.bundle", R.string.sdx2)); - propBeans.add(new PropBean(R.mipmap.icon_expression_luhantongkuan_ztt_fu, "effect/expression/luhantongkuan_ztt_fu.bundle", R.string.luhantongkuan_ztt_fu)); - propBeans.add(new PropBean(R.mipmap.icon_expression_qingqing_ztt_fu, "effect/expression/qingqing_ztt_fu.bundle", R.string.qingqing_ztt_fu)); - propBeans.add(new PropBean(R.mipmap.icon_expression_xiaobianzi_zh_fu, "effect/expression/xiaobianzi_zh_fu.bundle", R.string.xiaobianzi_zh_fu)); - propBeans.add(new PropBean(R.mipmap.icon_expression_xiaoxueshen_ztt_fu, "effect/expression/xiaoxueshen_ztt_fu.bundle", R.string.xiaoxueshen_ztt_fu)); + propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null,FaceParam.FACE_EXPRESSION_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_expression_future_warrior, "effect/expression/future_warrior.bundle", R.string.future_warrior,FaceParam.FACE_EXPRESSION_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_expression_jet_mask, "effect/expression/jet_mask.bundle", R.string.jet_mask,FaceParam.FACE_EXPRESSION_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_expression_sdx2, "effect/expression/sdx2.bundle", R.string.sdx2,FaceParam.FACE_EXPRESSION_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_expression_luhantongkuan_ztt_fu, "effect/expression/luhantongkuan_ztt_fu.bundle", R.string.luhantongkuan_ztt_fu,FaceParam.FACE_EXPRESSION_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_expression_qingqing_ztt_fu, "effect/expression/qingqing_ztt_fu.bundle", R.string.qingqing_ztt_fu,FaceParam.FACE_EXPRESSION_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_expression_xiaobianzi_zh_fu, "effect/expression/xiaobianzi_zh_fu.bundle", R.string.xiaobianzi_zh_fu,FaceParam.FACE_EXPRESSION_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_expression_xiaoxueshen_ztt_fu, "effect/expression/xiaoxueshen_ztt_fu.bundle", R.string.xiaoxueshen_ztt_fu,FaceParam.FACE_EXPRESSION_RECOGNITION)); break; case FunctionEnum.FACE_WARP: - propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null)); - propBeans.add(new PropBean(R.mipmap.icon_face_warp_2, "effect/facewarp/facewarp2.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_face_warp_3, "effect/facewarp/facewarp3.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_face_warp_4, "effect/facewarp/facewarp4.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_face_warp_5, "effect/facewarp/facewarp5.bundle")); - propBeans.add(new PropBean(R.mipmap.icon_face_warp_6, "effect/facewarp/facewarp6.bundle")); + propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null,FaceParam.FACE_FACE_WARP)); + propBeans.add(new PropBean(R.mipmap.icon_face_warp_2, "effect/facewarp/facewarp2.bundle",FaceParam.FACE_FACE_WARP)); + propBeans.add(new PropBean(R.mipmap.icon_face_warp_3, "effect/facewarp/facewarp3.bundle",FaceParam.FACE_FACE_WARP)); + propBeans.add(new PropBean(R.mipmap.icon_face_warp_4, "effect/facewarp/facewarp4.bundle",FaceParam.FACE_FACE_WARP)); + propBeans.add(new PropBean(R.mipmap.icon_face_warp_5, "effect/facewarp/facewarp5.bundle",FaceParam.FACE_FACE_WARP)); + propBeans.add(new PropBean(R.mipmap.icon_face_warp_6, "effect/facewarp/facewarp6.bundle",FaceParam.FACE_FACE_WARP)); break; case FunctionEnum.GESTURE_RECOGNITION: - propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null)); - propBeans.add(new PropBean(R.mipmap.icon_gesture_rain, "effect/gesture/ctrl_rain.bundle", R.string.push_hand)); - propBeans.add(new PropBean(R.mipmap.icon_gesture_snow, "effect/gesture/ctrl_snow.bundle", R.string.push_hand)); - propBeans.add(new PropBean(R.mipmap.icon_gesture_flower, "effect/gesture/ctrl_flower.bundle", R.string.push_hand)); - propBeans.add(new PropBean(R.mipmap.icon_gesture_koreaheart, "effect/gesture/ssd_thread_korheart.bundle", R.string.fu_lm_koreaheart)); - propBeans.add(new PropBean(R.mipmap.icon_gesture_six, "effect/gesture/ssd_thread_six.bundle", R.string.ssd_thread_six)); - propBeans.add(new PropBean(R.mipmap.icon_gesture_cute, "effect/gesture/ssd_thread_cute.bundle", R.string.ssd_thread_cute)); + propBeans.add(new PropBean(R.mipmap.icon_control_delete_all, null,FaceParam.FACE_GESTURE_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_gesture_rain, "effect/gesture/ctrl_rain.bundle", R.string.push_hand,FaceParam.FACE_GESTURE_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_gesture_snow, "effect/gesture/ctrl_snow.bundle", R.string.push_hand,FaceParam.FACE_GESTURE_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_gesture_flower, "effect/gesture/ctrl_flower.bundle", R.string.push_hand,FaceParam.FACE_GESTURE_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_gesture_koreaheart, "effect/gesture/ssd_thread_korheart.bundle", R.string.fu_lm_koreaheart,FaceParam.FACE_GESTURE_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_gesture_six, "effect/gesture/ssd_thread_six.bundle", R.string.ssd_thread_six,FaceParam.FACE_GESTURE_RECOGNITION)); + propBeans.add(new PropBean(R.mipmap.icon_gesture_cute, "effect/gesture/ssd_thread_cute.bundle", R.string.ssd_thread_cute,FaceParam.FACE_GESTURE_RECOGNITION)); break; } return propBeans; diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/ui/FaceUnityView.java b/FaceUnity/src/main/java/com/yunbao/faceunity/ui/FaceUnityView.java index 38313c369..01f6b99f7 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/ui/FaceUnityView.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/ui/FaceUnityView.java @@ -21,6 +21,7 @@ import com.yunbao.faceunity.data.FaceUnityDataFactory; import com.yunbao.faceunity.entity.BaseBean; import com.yunbao.faceunity.data.FineStickerDataFactory; import com.yunbao.faceunity.entity.FunctionEnum; +import com.yunbao.faceunity.entity.MakeupCustomClassBean; import com.yunbao.faceunity.entity.MenuGroupBean; import com.yunbao.faceunity.entity.net.FineStickerEntity; import com.yunbao.faceunity.entity.net.FineStickerTagEntity; @@ -29,6 +30,7 @@ import com.yunbao.faceunity.repo.BodyBeautySource; import com.yunbao.faceunity.repo.FaceBeautySource; import com.yunbao.faceunity.repo.MakeupSource; import com.yunbao.faceunity.repo.PropSource; +import com.yunbao.faceunity.seekbar.DiscreteSeekBar; import com.yunbao.faceunity.utils.net.StickerDownloadHelper; import java.util.ArrayList; @@ -48,8 +50,9 @@ public class FaceUnityView extends LinearLayout implements StickerDownloadHelper private ContainerRecyclerAdapter containerAdapter; private TabLayout tabLayout; private TextView title; - private LinearLayout menu2, diy, reset, menu2Reset; + private LinearLayout menu2, menuDiy, reset, menu2Reset; private ImageView menu2Back, back, close; + private DiscreteSeekBar seekBar; public FaceUnityView(Context context) { super(context); @@ -74,7 +77,7 @@ public class FaceUnityView extends LinearLayout implements StickerDownloadHelper LayoutInflater.from(mContext).inflate(R.layout.layout_faceunity, this); initView(); bindBottomView(); - FineStickerDataFactory.getInstance().setCallback(this); + FineStickerDataFactory.getInstance().addCallback(this); } /** @@ -100,15 +103,24 @@ public class FaceUnityView extends LinearLayout implements StickerDownloadHelper close = findViewById(R.id.menu_close); reset = findViewById(R.id.menu_reset); menu2Reset = findViewById(R.id.menu2_reset); + menuDiy = findViewById(R.id.menu_diy); + seekBar = findViewById(R.id.item_seekBar); initMenuGroup(); setContainerRecycler(new ArrayList<>()); initViewClick(); } - private void initViewClick(){ + + private void initViewClick() { menu2Back.setOnClickListener(v -> goBackMainMenu()); + menuDiy.setOnClickListener(v -> { + changeRecyclerItemCount(5); + ArrayList list = MakeupSource.buildCustomClasses(); + setTab(createTabs(list)); + }); } - private void goBackMainMenu(){ + + private void goBackMainMenu() { setContainerRecycler(new ArrayList<>()); title.setText("美顏特效選擇"); title.setVisibility(VISIBLE); @@ -159,6 +171,7 @@ public class FaceUnityView extends LinearLayout implements StickerDownloadHelper case 1: title.setText(R.string.home_function_name_makeup); title.setVisibility(VISIBLE); + menuDiy.setVisibility(VISIBLE); changeRecyclerItemCount(5); setContainerRecycler(MakeupSource.buildCombinations()); break; @@ -221,6 +234,17 @@ public class FaceUnityView extends LinearLayout implements StickerDownloadHelper return list; } + private List createTabs(ArrayList tags) { + List list = new ArrayList<>(); + for (MakeupCustomClassBean tag : tags) { + TabLayout.Tab tab; + tab = tabLayout.newTab().setText(tag.getDesRes()); + tab.setTag(tag.getBeanType()); + list.add(tab); + } + return list; + } + private void setTab(List tabs) { tabLayout.removeAllTabs(); for (TabLayout.Tab tab : tabs) { @@ -256,6 +280,46 @@ public class FaceUnityView extends LinearLayout implements StickerDownloadHelper changeRecyclerItemCount(5); setContainerRecycler(AnimojiSource.buildFilters()); break; + case FaceParam.FACE_MAKEUP_TYPE_FOUNDATION: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_FOUNDATION)); + break; + case FaceParam.FACE_MAKEUP_TYPE_LIP_STICK: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_LIP_STICK)); + break; + case FaceParam.FACE_MAKEUP_TYPE_BLUSHER: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_BLUSHER)); + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_BROW: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_EYE_BROW)); + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_SHADOW: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_EYE_SHADOW)); + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_LINER: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_EYE_LINER)); + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_LASH: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_EYE_LASH)); + break; + case FaceParam.FACE_MAKEUP_TYPE_HIGH_LIGHT: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_HIGH_LIGHT)); + break; + case FaceParam.FACE_MAKEUP_TYPE_SHADOW: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_SHADOW)); + break; + case FaceParam.FACE_MAKEUP_TYPE_EYE_PUPIL: + changeRecyclerItemCount(5); + setContainerRecycler(MakeupSource.buildCustomItemParams().get(MakeupSource.FACE_MAKEUP_TYPE_EYE_PUPIL)); + break; default: setContainerRecycler(new ArrayList<>()); } @@ -291,6 +355,7 @@ public class FaceUnityView extends LinearLayout implements StickerDownloadHelper private void setContainerRecycler(ArrayList list) { if (containerAdapter == null) { containerAdapter = new ContainerRecyclerAdapter(mContext); + containerAdapter.setSeekBar(seekBar); containerRecycler.setLayoutManager(new GridLayoutManager(mContext, 2)); containerRecycler.setAdapter(containerAdapter); } diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/utils/FaceSPUtils.java b/FaceUnity/src/main/java/com/yunbao/faceunity/utils/FaceSPUtils.java new file mode 100644 index 000000000..98e86fe30 --- /dev/null +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/utils/FaceSPUtils.java @@ -0,0 +1,29 @@ +package com.yunbao.faceunity.utils; + +import android.content.Context; +import android.content.SharedPreferences; + +import com.yunbao.common.CommonAppContext; + +public class FaceSPUtils { + private static FaceSPUtils utils; + private SharedPreferences mSharedPreferences; + private FaceSPUtils(){ + mSharedPreferences = CommonAppContext.sInstance.getSharedPreferences("FaceUnityConfig", Context.MODE_PRIVATE); + } + public static FaceSPUtils getInstance(){ + if(utils==null){ + utils=new FaceSPUtils(); + } + return utils; + } + public void saveString(String key,String value){ + mSharedPreferences.edit().putString(key,value).apply(); + } + public String getString(String key){ + return mSharedPreferences.getString(key,null); + } + public boolean saveBool(String key,boolean value){ + return mSharedPreferences.getBoolean(key,false); + } +} diff --git a/FaceUnity/src/main/java/com/yunbao/faceunity/utils/FileUtils.java b/FaceUnity/src/main/java/com/yunbao/faceunity/utils/FileUtils.java index 3e31b5564..ae38e1cf0 100644 --- a/FaceUnity/src/main/java/com/yunbao/faceunity/utils/FileUtils.java +++ b/FaceUnity/src/main/java/com/yunbao/faceunity/utils/FileUtils.java @@ -86,10 +86,7 @@ public class FileUtils { * @return */ public static File getExternalFileDir(Context context) { - File fileDir = context.getExternalFilesDir(null); - if (fileDir == null) { - fileDir = context.getFilesDir(); - } + File fileDir = context.getFilesDir(); return fileDir; } diff --git a/FaceUnity/src/main/res/layout/layout_faceunity.xml b/FaceUnity/src/main/res/layout/layout_faceunity.xml index b74d9dfc5..161b09f3d 100644 --- a/FaceUnity/src/main/res/layout/layout_faceunity.xml +++ b/FaceUnity/src/main/res/layout/layout_faceunity.xml @@ -4,168 +4,91 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@drawable/bg_live_tota2" android:orientation="vertical"> - - - - - - - - - - - - - - - - - - - - - - + - - - - - + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:layout_marginBottom="10dp"> - + + + android:layout_height="wrap_content" + android:layout_gravity="center" + android:gravity="center" + android:text="美顏特效選擇" + android:textColor="#F6F7FB" + android:textSize="17sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + + + + + + + + + + + - - + android:layout_height="wrap_content" + android:orientation="vertical" + android:visibility="gone"> + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/shayu/phonelive/AppContext.java b/app/src/main/java/com/shayu/phonelive/AppContext.java index 6a41b07c1..15fb2f802 100644 --- a/app/src/main/java/com/shayu/phonelive/AppContext.java +++ b/app/src/main/java/com/shayu/phonelive/AppContext.java @@ -120,7 +120,7 @@ public class AppContext extends CommonAppContext { public void onCreate() { super.onCreate(); //注册全局异常捕获 - //registerError(); + registerError(); sInstance = this; L.setDeBug(BuildConfig.DEBUG); AppEventsLogger.activateApp(this);