【Threejs】之如何快速创建模型和添加动作

您所在的位置:网站首页 3d模型怎么编辑动作 【Threejs】之如何快速创建模型和添加动作

【Threejs】之如何快速创建模型和添加动作

2024-04-13 09:45| 来源: 网络整理| 查看: 265

前言

在上一篇文章中,我们尝试了使用原生的方法来创建第一个基础场景,添加了简单的模型,而我们的模型也没有很多,所以我们无法完成一些复杂的场景,本次我们就来看看,对于threejs 的新手小白来说,如何快速创建模型和添加些基础的动作(大神请忽略),让我们的模型动起来,那就开始喽!

模型之间的区别

在之前我们得知在threejs项目里一般用的模型格式为 glb、gltf、fbx (当然不止这三个),那么它们的适用场景和区别是啥?

glb、gltf、fbx 不同格式之间的区别?

备注:glb是gltf的二进制文件格式,扩展名为.glb,三种模式都可以包含模型和动作

文件格式存储格式文件大小加载速度适用场景.glb二进制文件格式最小很快glb文件将所有模型数据(包括纹理、材质和动画)都封装在一个文件中,简化了模型的交换和共享 ,适用于游戏引擎和虚拟现实(VR),因为它们需要快速加载和渲染模型。.gltfJSON的文本格式小快glTF支持多个3D建模软件和引擎,使得不同软件之间可以方便地交换模型数据,文本的格式更具可读性,适合用于WebGL和WebVR等Web技术中.fbx二进制文件格式大慢支持更广泛的功能,包括动画、约束、物理属性、骨骼等,适用于复杂的动画和特效需求。 fbx 的动画和 glb 以及 gltf 的动画,有什么区别?

功能和灵活性:FBX是由Autodesk开发的专有文件格式,具有广泛的功能和灵活性。它可以存储复杂的动画数据,包括骨骼动画、蒙皮动画、形状关键帧动画、物理模拟等。FBX还支持多个动画轨道和复杂的动画层次结构,允许更精细的动画控制。

glb和glTF也支持动画,但相对于FBX来说功能较为简化。glTF主要关注于Web和实时应用的标准化,可以支持骨骼动画、形状关键帧动画和简单的属性动画,如位移和旋转。glb是glTF的二进制版本,适合于快速加载和渲染动画模型。

兼容性和跨平台性:FBX是一种广泛使用的文件格式,可以被各种3D软件和引擎所支持,如Autodesk的Maya、3ds Max、Unity和Unreal Engine等。glb和glTF也得到了很多软件和引擎的支持,但与FBX相比,兼容性可能有所限制。

文件大小和性能:glb和glTF是基于JSON格式的文本文件,可以通过压缩和优化来减小文件大小,提高加载性能。相比之下,FBX是二进制格式,文件通常较大,加载和解析速度可能稍慢一些。

总体而言,如果你需要在Web和跨平台应用中使用动画,glb和glTF是不错的选择,它们提供了基本的动画功能,易于实现和交互,且体积相比之下更小。而如果你需要更复杂和高级的动画效果,并且与广泛的3D软件和引擎进行交互,FBX可能更适合你的需求。

创建模型

我之前提过如果没有模型,可以去threejs 的 demo项目里扒,但这也只能支持我们的练习阶段,我们当然想创建自己的模型,以适应不同的场景,今天就来分享一下,我当前使用的建模方式。

Ready Player

Ready Player是一个在线的虚拟人物创建工具。它允许用户根据自己的喜好和需求创建个性化的虚拟人物。通过选择不同的面部特征、发型、服装以及其他各种元素,用户可以设计自己的独特的虚拟形象。网站地址

点击左下角创建形象:

WeChateb46c95c9004d3289d7a1855c215b7b1.jpg

选择一个性别:

WeChatdddea6280fb1f872b48442fa5156b32c.jpg

可以选择上传照片、拍一张或者从系统里选一张:

WeChat0b9d9dab25b45c9761bdf0da18b5e885.jpg

如果没有照片或者不想拍,系统也会一些默认的头像:

WeChat2a49faeaf71fdd5e6a7cf2c0c7abe70d.jpg

or

WeChatadece78dee53f4ff277f0f26b0509c50.jpg

我当前是有一张就上传一下:

WeChatc42ffae391cc2c1d18c30de37f1d5ce0.jpg

接下来我们根据自己的需要可通过左右两侧的一些选项给模特装扮,下面就是我装扮完成的模型:

WeChat326abac45173efffe36add3ec3647949.jpg

创建完成后,点击右上角去导出,可以导出png格式的图片,也可以下载glb格式

WeChat5f77e38247bdb8b46119e6204017d74d.jpg

选择这里即可下载glb格式的文件: WeChat1c82d01f5b6579e43c7b2676fd051110.jpg

网站也会保存之前创建的模型:

WeChat8436c4efb9c3fdf0644485c2a90ca44d.jpg

完成。

VRoid Studio 创建动漫形象 / 虚拟人物

VRoid Studio是一个免费的3D人物建模工具,由Pixiv所开发。它专门用于创建个性化的虚拟角色模型,创建的角色可以导出为可用于游戏、动画、虚拟现实体验等平台的格式,以实现不同形式的应用。相比Ready Player,这个工具不是在线的,需要下载桌面端使用,且形象是以动漫人物为主。下载地址

下载完成后,打开第一个界面可以选择已经创建好的,或者自己重新创建一个:

WeChat2b3b027878d98cc39432d8596d787096.jpg

选择一个性别:

WeChatdee587903e5da899cf03b58426ac75da.jpg

设置身体的各个细节的展示:

WeChatff796c2103e2b73d0583515add00167e.jpg

甚至连头发也可以分前后不同发型进行装扮:

WeChat542d084ba945fcc482ab0f57132097c8.jpg

服装更是比之前要多很多,有套装、上衣、下装、鞋子等。

WeChat41bc3d871079c3fb8f84c42ed1b8333a.jpg

通过这个软件创建的形象,版权是归属我们所有的,所以不用担心版权的问题:

导出的格式为VRM格式,这个格式在我们后面添加动作或者是threejs是不支持的,所以我们后面还需要单独处理一下,将它转成fbx

WeChat972b12514948cd98b269640b52b408df.jpg

完成。

sketchfab

如果你想要创建更多的的模型,这里推荐一个下载模型的网站,里面有很多好看的成熟的模型,包括游戏模型、建筑模型、动画模型等等。有自费的也有免费的,大家可以根据自己的需要进行下载:网站地址

上面标记价格是收费的,下面没有标价格的是免费的,大家可以尝试下载下来试试:

WeChat76a2824c72a20dc11cd3205a743b9f24.jpg

Mixamo

Mixamo是一个在线的给角色添加动画网站,由Adobe公司开发。在Mixamo上,可以浏览和选择各种3D角色模型,包括人类、动物和幻想生物等。您还可以对所选角色应用不同的动作和动画,以创建自定义的角色动画。Mixamo还提供了修改角色骨骼结构和外观的工具,以满足个性化需求。网站地址

当前支持三种导入模式:FBX、OBJ、ZIP

WeChatcb24714128211e6ca217646332f5378a.jpg

导入后,可以在左侧选择自己需要的动作,中间即可实时展示出来,如果对动作不满意,右侧可以进行微调:

WeChat6377c05ab891811a9b3f34f2b33ba6bf.jpg

如果你已经有模型本身,只是想要动作,那么导出时这里就不要选择带皮肤的

因为带皮肤的本身文件要大很多,默认fbx格式就好,至于没有皮肤的模型怎么添加到项目里,会在下一节详细说明。(如果导入的是白模,那么导出的也必定是白模,就算选择withskin也不会带有服装或者装饰)

WeChat32be606f667f7324f63ffda5b70ccabe.jpg

如何从mixmo 导出带skin的模型

要想mixamo导出的模型是带皮肤的,那么我们就需要在上传模型时将模型的贴图都上传,打成一个zip包,这样上传后就会是一个带皮肤的模型,直接可以展示出模型的皮肤,且导出时选择withskin的模式,导出的模型即是模型 + 皮肤 + 动作的 fbx,这样有一个很大的弊端,那就是导出的文件非常大,要比withoutskin的文件大很多

下面就细节一下上面的步骤:

首先你需要有一个fbx文件的模型,和一个带有贴图的文件,如下:

WeChatb66e16e45291723f712bfb96878a2c25.jpg

animationGirl.vrm.textures 这个文件就是之前下的贴图:

WeChat3c14ba9db77b9206163009eb8664ea0e.jpg

接下来选中两个文件打成zip 包,将zip 包上传到mixmo,上传后就得到是带皮肤的样子

WeChatfad3a8a671756f546990e2475c950d5c.jpg

选择好你想要的动作,导出withskin 模式的fbx, 下面是添加到项目中样子:

WeChatef75f2afae83c975a6d281061a7d648a.jpg

为什么不推荐直接使用withskin直接导出的文件,那如果需要该怎么处理

不推荐直接使用withskin直接导出的文件,因为导出的文件要比withoutskin的模式大10倍,如下图:

WeChatf778bb33232a07d43ba039a7d08b477d.jpg

如果动作复杂,文件相对会越大,所以如果你需要一个基础模型,可以下载一个TPose的模型,会小一下,其他动作的,就单导出without skin 的就可以。

WeChat954fed344bd1c292ddf2ad7c0cd72d20.jpg

WeChatfd4ed37da651a49b9a2527c279ac7efe.jpg

blender自定义模型

如果上面都不能达到你的期望,那就可以使用blender来自己创建模型,这个也是一个桌面端软件,下载地址

自定义模型

blender是一个开源的三维计算机图形软件。非常适合于三维建模、动画制作、渲染、视觉效果、视频编辑等领域。提供了一个全面的工具集,其中包括多边形建模、雕刻、纹理绘制、粒子模拟、物理模拟、角色动画等功能。您可以使用 Blender 创建静态的三维模型,也可以制作具有复杂动画效果的电影、游戏和虚拟现实项目。Blender 还提供了强大的渲染引擎,允许您以高质量渲染出真实感的图像和动画。它还支持视频编辑功能,剪辑、合成和调整视频,添加特效和转场效果。

WeChatf3d6620691fecb7bda535b2a03180873.jpg

格式转换

如果我们从网站下载下来的模型的动作或者材质不是我们想要的,也可以导入到blender 进行修改,可以把blender 支持的格式导入,导出我们需要的格式。

从VRoid Studio 或者是从Ready Player 导出的模型都不是fbx ,不能直接导入到mixamo去添加动作,这时可以通过bleder这个中转站进行格式转换,glb的格式是可以直接导入,VRM格式的需要一个插件:插件地址,装到blender之后,就可以导入VRM文件了

WeChatbb1992c5ed572ab1baef50d6bff02c38.jpg

获取贴图

在上一节,我们得知如果从mixmo 导出带skin的模型,那么我们就需要拿到模型的所有的材质贴图,当前在VRM导入时,可以获取到贴图,其他格式的文件如何获取贴图还有待调研。

选择一个VRM文件格式,右侧把“导出图像到文件夹”的这个选项勾选上: WeChata3716e5cde8e787ca8f9f472c1666f62.jpg

在导入的同时,会在导入文件的当前文件夹生成一个.vrm.textures后缀的文件: WeChatc487f1cf751d96d131419f7ca467cd33.jpg

文件夹里包含模型的所有贴图:

WeChat5697d72a3c4edccb3ed4eaf64630cd72.jpg

拆分材质

我们从VRoid Studio导出的模型,可以通过导入到blender里来转换模式,但是我们需要再导入到mixamo,所以在blender 里可以通过拆分材质,将贴图导出到一个单独的文件里,这样我们再导入到 mixamo里的模型就不是白模了,这里需要用到一个插件Cats插件下载地址:

装好后,点到CASTS的菜单,点这个小扳手 🔧

WeChatbd12953855941dbbcc59e97db7887fd8.jpg

把这个 Combine Same Materials 的选项取消:

WeChat6868ecfe7bb7197595df51bdf7089790.jpg

点击Fix Model,开始修理:

WeChatebbe91e5af85b78eff2229ac43ccd6e1.jpg

等待修理完成后,点击Export Model,会有个提示,直接继续即可:

WeChatc81ab217287ac47c0dd0c1d7fa3623f9.jpg

导出后即可再去mixamo添加动作

至此,我们已经完成了新手的模型创建,以及给模型添加一些简单动作,后续我们就使用这些模型来创建一些简单场景,看看我们创建的模型是否好用。

相关链接:

【Threejs】入门到并没放弃

【Threejs】怎么在React里用Threejs写代码?

喜欢就加个关注吧!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3