女儿 3 岁生日,我花 48 小时给她手搓了一个‘平行世界’
前两天,想着快到我女儿的 3 岁生日了。
因为最近这段时间,我正沉浸式地使用 AI,便想着:能不能用 AI 给她制作一个特别的生日礼物?
她平常很喜欢看动画片,《小猪佩奇》和《宝贝赳赳》是她的最爱。所以我希望能把这两个动画角色融入进来,特别是小猪佩奇。最好能把猪爸爸、猪妈妈、乔治和赳赳一起放进画面里。
最开始,我想制作一个视频,在她生日当天播放。
但跟 AI 聊过之后,发现这个难度挺大。
一个难题是,很难确保动画形象的一致性;另一个问题是,目前各个平台基本上只能生成 5s 左右的视频。如果想制作一个几分钟的完整视频,需要生成很多个零碎片段,再费时费力地剪辑到一起。
权衡之后,我决定制作一个在线网页作为礼物。
我希望在这个网页的互动过程中,可以融入我女儿的 3D 形象。我找了一张她戴墨镜的照片作为素材——这样生成的 3D 形象既保留了她的神韵,又可以在一定程度上保护隐私。
这份礼物,我是希望能让她亲手操作和互动的。到时候,应该会给她平板让她自己玩耍,所以网站需要做好 Responsive(响应式)适配。
另外,我不希望这个网站的玩法是简单的“一次通关”,而是可以反复体验。哪怕其中某个章节——比如刚刚开始的部分——是专门庆祝生日的,后续的内容也可以让她持续玩下去。
在动手制作的过程中,我碰到的第一个问题就是:怎么生成她的 3D 形象,然后让这个 3D 形象动起来?
创建 3D 模型
跟 AI 聊完之后,我梳理出了大致的流程:
首先,用真人照片生成卡通风格的图片;然后,以此图片为基础生成 3D 模型;最后,将各个动作添加到 3D 模型中。
在前两步,我一开始尝试了 Lovart。后来因为 Lovart 每天赠送的一百积分用完了,我就切换到了其他几个工具(Gemini 网页版 + Tripo3d.ai),把它们结合起来使用,最终得到了满意的 3D 模型。
具体的尝试过程,其实经过了好几个波折。我把中间的探索展示给大家看看。
我先在 Lovart.ai 上传了一张她的真实照片,指令是让 AI 帮我把它转成一张“睁着眼、呈现 A-pose”的图片。
在 Lovart 里,可以先生成图片,然后直接转成 3D 模型。它其实是调用了两个不同的大模型来完成这两个步骤:
- Nano Banana Pro:负责将真人图片转成卡通风格的图片
- Tripo:负责将图片里的人物转成 3D 模型
第一次尝试
生成的图片看起来确实挺可爱的。

但是,转出来的 3D 模型就有点让人一言难尽了。

第二次尝试
这一次,我调整了策略,生成另外一张图片。要求嘴巴不要张开,最重要的是,衣服上、帽子上面的那个图案不要有。第一次尝试里那个后脑勺的图案,看着确实有点吓人。

再次生成 3D 模型,看起来正常多了。不过脸上那个腮红还是略显突兀,像留了道疤痕似的。

第三次尝试
有了前面的经验,这次只需要把脸上那个腮红去掉就行,其他的部位、姿势都已经探索得差不多了。
因为尝试了多次,Lovart 里的积分也耗尽了。所以这一次,我是在 Gemini 的网页版里,使用 Nano Banana Pro 来生成图片的。

同理,因为积分用完了,我就去了 Tripo 的官网生成 3D 模型。从效果上看,这一次基本上可以直接拿来用了。
Tripo 官网第一次注册会送三百个积分,每次生成一个 3D 模型大概需要三十五积分。而且 Tripo 在导出的时候可以选择多种格式,而在 Lovart 上使用 Tripo 的话只能导出为 glb 格式。

将动作添加到 3D 模型
这里用到的工具是 Mixamo.com
Mixamo 是 Adobe 旗下的一个免费网站。我们可以上传自己的 3D 模型,然后为它指定相关的动作。不过要注意,它只支持上传 FBX 格式的文件,导出的也是 FBX 格式。
所以,我们需要先在 Tripo 上将模型导出成 FBX 格式,再上传到 Mixamo。
举个例子,我们需要给小人准备几个基础动作:一个静止状态的动画(Idle),一个跑步的动画(Run),一个跳跃的动画(Jump),还有一个是结束时的 Wave 或者 Dance 动画。
下面这些,就是我通过这个 3D 模型制作出来的动作效果。
静止待机动画(Idle)

跑步动画(Run)

跳跃动画(Jump)

跳舞动画(Dance)

将动画合成到一个 3D 模型
这里需要用到一个新的软件:Blender。这是一个开源、免费的软件。
最开始,我跟 AI 聊下来的方案是:把所有的动作都 Copy 一份,然后复制到第一个导出来的静止动画模型上。但是后来尝试了几种方案,都没能成功。
最后,我其实只是用 Blender 把 FBX 格式转换成了 GLB 格式,然后在代码层面上,把各个动作“写”到了那个静止模型的小人身上。
下面是在 Local(本地)跑起来后的整体效果:

整个过程,比我预想的要复杂不少。
原本预计在她生日时完成,然后直接交付给她玩。但现在看来,光是折腾这个 3D 模型,就已经花了我大概两天的时间。
后面还有不少工作要做,比如找找其他素材,再通过代码把它们整合进去。
今天先分享 3D 模型这一块是怎么搞定的。后面的部分,我会一步一步完成,然后再一步一步与大家分享。