制作模型
几乎所有常见 3D 建模软件都可以为 PlayCanvas 制作美术和动画资源,例如 Blender、SketchUp、Autodesk 3D Studio Max 或 Autodesk Maya。
PlayCanvas 通过开放的 glTF 二进制(GLB)格式最完整地导入内容。通常,只要建模软件支持 GLB,PlayCanvas 就能使用其输出。
GLB 导入支持以下 glTF 功能,便于快速构建场景:
- 节点层级。
- 标准材质。
- 已正式批准的材质扩展。
- 动画骨架和蒙皮数据。
- 变形目标。
- 相机。
- Draco 压缩模型。
- 点状光源支持。
因此,面向 PlayCanvas 制作内容时,无需特殊的美术工具插件,也没有必须遵循的专用制作流程。

模型由 Loïc Norgeot 制作,蚊子扫描由 Geoffrey Marchal 制作,发布于 Sketchfab,采用 CC BY 4.0 许可。
PlayCanvas 也支持导入常用交换格式 FBX,但 FBX 材质的导入保真度不如 glTF,导入后可能需要调整。
为获得最佳体验和兼容性,建议尽可能使用 GLB。
可考虑以下建模和动画软件:
- 免费:Blender*、Wings3D、Voidworld、SketchUp、Sculptris、Daz Studio*。
- 较低价格的付费软件:3D-Coat、NVIL、Hexagon。
- 较高价格的付费软件:ZBrush、Autodesk 3D Studio Max*、Autodesk Maya*、Luxology Modo*。
* 此软件也支持制作动画。
制作纹理可考虑:
- 免费:Blender、Pixexix Free、xNormal、MaPZone、GIMP、Krita desktop、MyPaint。
- 付费:Substance Designer(以及 Substance Painter 和 Bitmap2Material)、Photoshop、Quixel NDO 和 DDO、CrazyBump、Pixexix Pro、Clip Studio Paint/Manga Studio、SERIF DrawPlus/PhotoPlus。
上述许多建模软件也支持纹理绘制。更多工具可参考此外部 Wiki,但其中部分信息可能已经过时。
网格制作的一般注意事项
无论使用何种建模软件,为 PlayCanvas 制作 3D 场景时都需要注意:
- 网格最多支持绑定到 256 根骨骼。
- NURBS 网格在转换为 PlayCanvas 原生格式时,会转换为三角形网格。
Blender

Blender 是优秀的免费 3D 建模工具,非常适合为 PlayCanvas 制作 3D 资源。
Blender 支持导出 GLB、FBX 和 COLLADA,但内置导出器有一些限制。
贴图类型
从 Blender 2.71 起,材质的漫反射和法线贴图都会导出到 FBX。其他类型的贴图如果在导出中丢失,需要在 PlayCanvas 编辑器的材质编辑器中重新配置。
嵌入纹理
嵌入纹理可以简化导入。
Blender 的 COLLADA 导出器无法将纹理嵌入导出的模型文件。
Blender 2.71 改进了 FBX 导出模块,支持直接嵌入多张纹理。先确保对象在 Blender 中正确渲染;导出 FBX 时,将 Path Mode 设为 Copy,并勾选 Embed Textures。
也可以使用 Autodesk FBX Converter 将 Blender 导出文件转换为包含嵌入媒体的版本。打开文件,勾选 Embedded Media 后重新保存即可。
Blender 2.71 的 FBX 导出似乎存在未设置自发光却生成自发光数据的问题,这并非 PlayCanvas 引擎问题。可在 Blender 的 Properties Editor 中,进入 Material 标签页,将材质 Diffuse 颜色设为 0;也可在 PlayCanvas 编辑器中降低自发光。
动画
对于 Blender 2.71:
使用默认 FBX 导出设置即可导出 blend 文件中的动画,并兼容 PlayCanvas 资源导入流程。同一模型的多个动画需要分别上传多个 FBX 文件,每个文件一个动画。为节省内存,可在导出前从 blend 文件删除模型和纹理,在 FBX 导出器中仅导出骨架,或在项目控制台的资源页面中删除重复的 model 目标资源;资源页面下拉菜单中选择 target 即可查看目标资源。
学习 Blender
网上有大量 Blender 学习资料,我们推荐:
Autodesk 3D Studio Max
Max 材质
应使用 Max 的 Standard 材质,或引用的子材质均为 Standard 的 Multi/Sub-Object 材质。下图高亮区域展示了导出到 PlayCanvas 时会保留的设置:

支持的贴图槽
PlayCanvas 导出时会识别部分 3DS Max 材质贴图类型。贴图可以采用 3DS Max 支持的任意格式,但非 Web 图像格式会在导出时转换为 JPEG、GIF 或 PNG。
Diffuse Color(漫反射颜色)
将 Bitmap 贴图指定到此槽,会在 PlayCanvas 材质中启用漫反射贴图,覆盖通过拾色器设置的漫反射颜色。如果贴图包含 alpha 通道,会在运行时作为逐像素 alpha 使用。
也可以将 RGB Multiply 贴图指定到 Diffuse Color 槽,以启用光照贴图:Map 1 为漫反射贴图,Map 2 为光照贴图。
Specular Color(高光颜色)
将 Bitmap 贴图指定到此槽,会启用高光贴图,覆盖通过拾色器设置的高光颜色。这可以遮蔽表面部分区域的高光,或让不同区域产生不同颜色的高光。如果贴图包含 alpha 通道,会用于设置逐像素光泽指数。
Specular Level(高光强度)
将 Bitmap 贴图指定到此槽,会启用材质高光颜色的逐像素衰减,覆盖材质原本设置的高光强度。
Glossiness(光泽度)
将 Bitmap 贴图指定到此槽,会启用逐像素光泽度,覆盖材质原本设置的光泽度。
Self-Illumination(自发光)
将 Bitmap 贴图指定到此槽,会启用自发光贴图。自发光贴图可以使用完整 RGB,而非只能使用灰度,最终会叠加到表面光照结果上。黑色像素不会增加亮度,其他颜色则会使像素更亮。
Opacity(不透明度)
将 Bitmap 贴图指定到此槽,会启用不透明度贴图。黑色完全透明,白色完全不透明,灰色对应中间 alpha 值。
如果材质具有不透明度贴图,它会覆盖漫反射贴图的 alpha 通道。使用独立不透明度贴图的效率较低,因为运行时需要两张纹理而非一张,默认着色器也需要更多运算。但如果性能不是主要限制,这种方式仍受支持。
Bump(凹凸)
将 Normal Bump 贴图指定到此槽,会启用法线贴图。Bump 槽的 Amount 默认是 30,但 PlayCanvas 实际忽略该值,按 100 处理。因此建议在 Max 中也设为 100,使离线渲染更接近实时结果。
法线贴图有不同的制作方式,主要区别在于绿色分量的方向。例如,3DS Max 默认期望砖墙法线贴图如下:

注意凸起区域下边缘较亮。PlayCanvas 期望绿色分量,也就是各法线的 Y 分量反转。在 Photoshop 中打开文件,选择绿色通道并按 Ctrl+I 反相后,得到:

此时 PlayCanvas 中的光照就会保持一致。
如果法线贴图包含 alpha 通道,会按视差贴图处理,将 alpha 通道解释为高度图。高度图中较亮区域视为比较暗区域更高。
Reflection(反射)
将 Bitmap 贴图指定到此槽,会在 PlayCanvas 材质中启用球面映射。图像大致如下:

球面映射是开销较低、真实感也较弱的反射映射方式,但在许多场景中足以产生令人满意的光泽。
Autodesk Maya
Maya 材质
应使用 Maya 的标准材质类型 lambert、blinn 和 phong。下图高亮区域展示了导出到 PlayCanvas 时会保留的材质设置:
