如果要改变动画播放速度,可以直接在时间线状态的播放时间中输入具体的值(  )。 A正确 B错误


作为刚接触three.js的小萌新励志将自巳开荒历程记录下来,希望对后来人有所帮助
网上有很多demo,文档却不多每次都是,照搬别人的数据没问题换成自己的模型/动画总会報错! (╯‵□′)╯︵┻━┻
多次踩坑后,总结出三种常用格式的加载方法
three.js有官方的fbx插件,可以直接将模型加载至网页并且支持动画数據,代码量也是最少的
但是,该格式存在很大弊端:插件对文件格式的规范很严格换言之,插件支持性不太好从网上下载的fbx动画,┿有八九会加载失败

  

  

  

  

  

1、如果遇到报错 “URIError: URI malformed”,说明fbx文件格式不符合插件要求可能是fbx版本过低导致的。 (1)导入3dmax再重新导出成fbx文件,将低版本转换为最新版本经实践,虽然在3dmax和blender中动画显示正常但是载入网页后模型变得支离破碎。可能是坐标丢失目前还在寻找原因及解决办法。
fbx低版本转高版本后坐标丢失
(2)用官方提供的插件将fbx文件转换成json动画数据。
(3)根据 提供的方法可通过FBX_Converter_2013将低版本fbx转换成可支持的fbx文件,亲测可用
three.js自带了加载json的方法,所以不需要额外引用插件

  

  

  

  

下面给出两种数据类型的区别:

  

说到json格式动画,一把辛酸泪(╥﹏╥)从动画制作到maya导出,再到网页载入无不有坑。
1、由于不了解three.js的数据需求动画制作方用maya插件advancedSkeleton进行绑骨,导致动画可以展示数据却導出不来,只能自掏腰包重做
??制作动画时,切记要做成能导出fbx格式的
2、用maya做动画,虽然官方有提供maya转three.js的插件不过导出数据时,還是碰到了不少问题

当然,以上两个bug最直接有效的解决办法是在做动画时就让设计师删除隐藏网格并导出可用的fbx文件。 ?? 里 “代码Φ如何加载动态模型” 有具体讲解
obj格式文件不支持动画数据存储,只用于静态模型
首先需要引入OBJLoader.js插件,如果纹理贴图是tga或dds格式的则還需要另外引入TGALoader.js或DDSLoader.js(纹理贴图问题同样适用于其他模型格式)。

  

自己总结了两种加载方法

  

obj静态模型 - 外部载入纹理

  

一开始打算用obj+mtl方法加载obj模型,但由于项目是tga格式贴图参考大佬的代码,却怎么都显示不了纹理最后放弃转而琢磨出第一种方法来。
后来偶然看到THREE.Loader.Handlers.add(/\.tga$/i, new THREE.TGALoader());这句代码經实践,果然能载入某些不常用格式的纹理材质


1、fbx文件1.2、动画解决方案中新增加了fbx低版本转高版本的方法
楼主大大你的坐标丟失的问题,目前解决了吗遇到同样的问题了

我要回帖

 

随机推荐