关于 fal-regenerate-3d
fal-regenerate-3d 是用于构建静态 Three.js 角色选择体验的技能,可生成 3D 资源。它提供角色、伙伴、材质和视频背景的端到端流程,并支持在浏览器中创建额外角色。
主要功能
- 01生成绑定骨骼并带动画的角色 GLB
- 02创建伙伴生物 GLB
- 03生成角色专属 PBR 地板贴图
- 04添加生物群系主题循环视频背景
- 05将资源打包到静态 Three.js 页面
- 06在浏览器中实时创建角色
适用场景
- 01构建多角色 3D 网页体验
- 02制作配套的角色与伙伴资源
- 03让访客在浏览器中生成并添加角色
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fal-ai-community/ skills --skill fal-regenerate-3d安装后在 Claude Code 中输入/fal-regenerate-3d确认已加载。
详细介绍
fal-regenerate-3d 技能
运行时: 资源生成步骤通过 genmedia CLI(FLUX.2 / GPT-Image-2 / Meshy v6 / Seedance / 等)运行。最终交付物是一个静态 HTML 页面,使用 Three.js,生成的资源会打包到页面中。命令语法请参阅
genmedia技能;如果尚未安装,请运行一次genmedia init。
使用 fal.ai 模型打造精致的多角色 3D 网页体验的端到端方案。 本方案正是 fal-roster.vercel.app 背后的实现:一款赛博朋克风格的角色选择器,包含 10 名独特的行动人员,每位都有配套的伙伴生物、主题环境地板纹理、动态背景和色彩调色板。
构建内容
每个角色都包含:
- 一个风格化 3D 角色 GLB(已绑定骨骼并加入动画,动画已烘焙到文件中)
- 一个伙伴生物 GLB(小型静态模型,主题与角色匹配)
- 一个专属 PBR 地板(生成了 basecolor / normal / roughness / metalness 全套贴图)
- 一个循环播放的视频背景,主题与生物群系相符
- 一个驱动整个 UI 的三色色彩调色板(CSS 自定义属性)
- 一张用于角色列表卡片的裁剪肖像图
所有内容都打包到一个带有 Three.js 场景的静态 HTML 页面中。压缩后,GLB 文件总计约 25–35 MB。
流水线
1. GPT-Image-2 → 1024x1536 character full-body T-pose (per character)
2. Meshy v6 → image-to-3d, enable_rigging=true, animation_action_id={chosen}
→ animated GLB (idle, dance, alert, etc.)
3. GPT-Image-2/edit → companion creature image, color-locked to character palette
4. Meshy v6 → image-to-3d, enable_rigging=false → static creature GLB
5. PATINA → fal-ai/patina/material/extract on the character image,
returns basecolor + normal + roughness + metalness for the floor
6. Seedance 2.0 → fal-ai/bytedance/seedance-2.0/fast/image-to-video, 8s loop
7. gltf-transform CLI → resize 1024 → webp q80 → draco
(typically 95–96% size reduction, ~400–800 KB final)
8. Three.js scene → MeshStandardMaterial floor with alphaMap circular cutout,
mirrored reflection (refl.y = root.y, scale.y = -1),
breathing animation on companions,
per-character palette via CSS custom properties (--c1/--c2/--c3),
per-character floor texture swap on character click,
transition lines + radial flash on swap
创建专属角色流程
持有 FAL 密钥的访客可以直接在浏览器中实时生成自己的角色和伙伴:
flux-2 klein 9b (text-to-image)
└─ character full-body image
├─ Meshy v6 (rigged + animated) → character GLB
└─ flux-2 klein 9b/edit → companion image
└─ Meshy v6 (no rig) → companion GLB
费用:每次生成约 2–3 美元(调用 fal 4 次)。生成在后台运行,点击 Generate 后弹窗关闭,用户可以在生成期间继续使用体验。CREATE YOUR OWN 卡片会变为加载状态,之后显示为新的角色卡片,并带有 ↻ re-create 按钮。
使用的 fal 关键端点
| 步骤 | 端点 |
|---|---|
| 角色图像(精选) | openai/gpt-image-2 |
| 角色图像(实时生成) | fal-ai/flux-2/klein/9b |
| 伙伴图像 | fal-ai/gpt-image-2/edit 或 fal-ai/flux-2/klein/9b/edit |
| 3D 角色/伙伴 | fal-ai/meshy/v6/image-to-3d |
| 专属角色地板 PBR | fal-ai/patina/material/extract |
| 背景视频 | fal-ai/bytedance/seedance-2.0/fast/image-to-video |
| Logo / 图标清理 | fal-ai/bria/background/remove |
Meshy 动画 ID
精选舞蹈 / 待机动作 ID(完整列表见 https://docs.meshy.ai/en/api/animation-library):
| ID | 动画 |
|---|---|
| 0 | 待机(默认) |
| 2 | 警戒 |
| 36 | 困惑(挠头) |
| 48 | 照镜子 |
| 64 | 通宵舞蹈 |
| 405 | 欢快舞蹈,伴随摆手动作 |
| 591 | 嘻哈舞蹈 |
| 64–83 | 各种流行舞蹈变体 |
Three.js 场景说明
- 地板:使用
PlaneGeometry(7, 7, 220, 220),通过径向渐变alphaMap裁切成圆盘。高细分度可实现真实的displacementMap(使用 basecolor 作为高度图)。 - 倒影:克隆根对象,设置
scale.y = -1、BackSide、depthWrite = false、renderOrder = -1。对于原点位于脚部的角色,设置refl.position.y = root.position.y可显示镜面倒影;地板的transparent = true; opacity ≈ 0.5可让倒影透出来。 - 呼吸效果:每帧执行
scale.setScalar(base * (1 + sin(t*1.3)*0.025)),并让伙伴沿 Y 轴轻微上下浮动。倒影会同步浮动,保持镜像效果一致。 - 调色板切换:使用
:root.style.setProperty('--c1', hex)等设置颜色。每个 UI 元素(迷你趋势图、脉冲效果、条形、模型标签、边缘地图圆点)都从var(--c1)/var(--c2)获取颜色。 - 地板切换:使用
texLoader.load()从assets/floor/{charId}/加载 4 张 PBR 贴图,释放旧贴图,并将floorMat.color设回白色(因为 basecolor 已经采用角色主题色)。 - 过渡效果:点击角色时,9 条对角线扫过视口(
@keyframes tfx-sweep),并伴随径向闪光;背景视频在两个<video>元素之间交叉淡入淡出;角色 GLB 滑出,新角色滑入。
参考实现
- 在线体验:https://fal-roster.vercel.app
- 源代码:https://github.com/lovisdotio/fal-roster
- 技能仓库:https://github.com/lovisdotio/skills-fal-ai
成本参考(精选构建)
一个完整角色的成本:
| 步骤 | 估算成本 |
|---|---|
| 1 GPT-Image-2(角色) | $0.04 |
| 1 Meshy v6 骨骼绑定 + 动画 | $0.80 |
| 1 GPT-Image-2/edit(伙伴) | $0.04 |
| 1 Meshy v6 静态(伙伴) | $0.20 |
| 1 PATINA 地面(4 张贴图) | $0.04 |
| 1 Seedance fast(背景视频) | $0.08 |
| 每个角色的总成本 | ~$1.20 |
| 10 个角色 | ~$12 |
运行时支持良好的并行处理。最初的 10 个角色集合在每个阶段有 9 个并发任务的情况下,约 10 分钟便生成完成。