今天突然想搞个整容效果模拟的小程序,结果折腾得够呛,给你们唠唠全过程。
一、从想当然开始
我寻思这玩意儿应该挺简单,打开电脑就新建了个小程序项目。拉了几个滑块组件过来,眼睛大小鼻子高度,以为调个数值就能联动3D模型变形。结果刚点保存预览,手机直接黑屏了——微信开发者工具弹红字报错堆得像山一样高。
二、硬着头皮改模型
蹲在路由器旁边刷了仨小时教程,发现模型绑定骨骼根本不是那么回事。捏着鼻子下了个免费人脸模型,用Blender软件拆骨头。手指头戳着键盘调权重,屏幕里那张脸跟面瘫似的:拉嘴角右眼闭,调眉毛左脸塌。凌晨两点半厨房找泡面时,我满脑子都是模型顶点在飘。
代码直接打成死结:- 滑块数值和骨骼位移死活对不上
- 切换模型时旧数据卡在缓存里下不去
- iOS端下巴拉伸参数居然要乘以0.87
三、土办法上线
急眼了,把3D方案整个删了。直接拿现成的人脸照片做图层,用CSS瞎搞变形。双眼皮就用白色线条叠上去,鼻子高度是张阴影PNG图跟着滑动。凌晨四点测试时,滑动条拉满的脸活像被卡车轧过的橡皮泥,但好歹能跑起来了。

最绝的是数据校验——用户把眼睛大小调到-100%的时候,我写的保护逻辑直接崩了。页面突然跳出个独眼巨人,鼻孔还顶着屏幕外面,吓得我泡面汤泼进键盘缝里。
四、变成脱发模拟器
本来想加个发际线调节功能,调着调着发现数值超过60%就秃顶。测试版发到朋友群才三分钟,手机滴滴响个不停:有人把亲友照片P成ET,有人把下巴拉到穿透脖子,还有个哥们把参数全调负数生成个后脑勺长五官的怪物。
现在这玩意儿还在我手机里占着200M空间。每次打开看见那个默认人脸,都想起那晚泡面汤渗进键盘的焦糊味。建议想整容的先去试我这小程序,保准看完立刻打消念头。

