You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blender海洋修改器动画导出glTF后在react-three/fiber不显示

核心原因

Ocean Modifier属于Blender原生程序式修改器,动画逻辑是修改器根据时间参数实时计算顶点位置,不会自动生成glTF可识别的顶点动画数据。直接在单帧应用修改器只会固化当前帧的网格形态,你给时间属性打的关键帧仅在Blender内部生效,导出时不会被带入glTF文件,所以不管是在线查看器还是three.js生态都读不到对应动画。

操作步骤
  • 先保留海洋修改器不要应用,在时间轴上设置好你需要的动画总时长,确认海洋修改器的时间参数已经按需求打好关键帧,拖动时间轴能在Blender视口里看到正常的海面动态效果。
  • 选中海面平面对象,打开右侧属性面板的「对象数据属性」(绿色三角形图标),在形状键栏点击+号添加一个Basis基础形,作为形变动画的基准状态。
  • 顶部菜单栏依次点击对象 > 动画 > 烘焙几何到形变键,在弹出的配置窗口调整参数:
    • 帧范围:手动填入你动画的起始帧、结束帧
    • 步长:填1就是逐帧烘焙,动画最流畅;如果要压缩体积可以适当调大,数值每加1就会少烘焙一帧
    • 勾选仅选中对象、可视化变换、应用到形变键
    • 取消勾选其他无关选项,点击确认等待计算完成。计算结束后形状键列表会生成对应每一帧的形变关键帧,此时就算删掉海洋修改器,拖动时间轴也能看到正常的海面动画。
  • 导出glTF时,在导出设置面板找到几何数据分类,确认勾选形变键、形状键动画,不要勾选全局的「应用修改器」选项,否则会把动画覆盖成单帧静态网格,正常导出即可。
补充说明
  • 烘焙得到的是逐帧顶点形变动画,模型面数、烘焙帧步长直接决定导出文件体积,可以根据项目需求适当降低平面细分、增大步长来平衡效果和体积。
  • 如果需要做无缝循环动画,烘焙前先调整海洋修改器的参数,保证动画首帧、尾帧的海面形态一致,避免播放时出现跳变。
  • 在react-three/fiber中加载该文件时,和普通带形变动画的glTF模型逻辑完全一致,直接用useAnimations控制器绑定播放即可,不需要额外引入特殊依赖。

内容的提问来源于stack exchange,提问作者George Makroglou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:03:24