Unity3d制作3d人体模型

2015年03月03日 10:12 0 点赞 0 评论 更新于 2025-11-21 16:35

以下是详细说明及注意事项,请参考教程。

1. 单位与比例统一

在开始建模之前,需要先设置好单位。在同一场景中使用的所有模型,其单位设置必须保持一致,并且模型之间的比例要准确,同时要与程序的导入单位相匹配。即便后续在程序中需要对模型进行缩放,也可以统一调整缩放比例。建议统一单位为米。

2. 模型规范

2.1 模型位置与轴心

所有角色模型最好站立在原点。在没有特定要求的情况下,必须以物体对象中心为轴心。

2.2 面数控制

  • 对于移动设备,每个网格模型的多边形数量控制在300 - 1500个,能达到比较好的效果。
  • 对于桌面平台,理论上面数范围在1500 - 4000个。如果游戏中任意时刻屏幕上会出现大量角色,就需要降低每个角色的面数。例如,《半条命2》中每个角色使用2500 - 5000个三角面。
  • 正常情况下,单个物体的面数应控制在1000个以下,整个屏幕的面数应控制在7500个以下,所有物体的三角面总数不超过20000个。

2.3 模型文件优化

仔细整理和检查模型文件,进行最大程度的优化。删除看不到的地方的不必要面,合并断开的顶点,移除孤立的顶点,并注意模型的命名规范。在给模型绑定之前,必须进行一次重置变换。

2.4 物体复制

可以复制的物体尽量进行复制。例如,一个1000面的物体,在烘焙好之后复制出100个,其消耗的资源基本和一个物体消耗的资源相同。

3. 材质贴图规范

3.1 支持的材质类型

目前使用Unity3D软件作为仿真开发平台,该软件对模型的材质有特殊要求。在3ds Max中,只有Standard(标准材质)和Multi/Sub - Object(多维/子物体材质)被Unity3D软件支持。需要注意的是,Multi/Sub - Object(多维/子物体材质)中的子材质必须为Standard(标准材质)才能被支持。

3.2 支持的贴图类型

Unity3D目前只支持Bitmap贴图类型,其他贴图类型均不支持。只支持Diffuse Color(漫反射)和Self - Illumination(自发光,用于导出lightmap)贴图通道。在烘焙lightmap后,需要将Self - Illumination(不透明)贴图通道channel设置为烘焙后的新channel,并将生成的lightmap指向Self - Illumination。

4. 贴图文件格式和尺寸

原始贴图不带通道的使用jpg格式,带通道的使用32位tga或者png格式。贴图尺寸最大不要超过2048,且贴图文件尺寸须为2的N次方(8、16、32、64、128、256、512、1024),最大贴图尺寸不能超过1024x1024。在特殊情况下,尺寸可在这些范围内进行调整。

5. 贴图材质应用规则

5.1 命名规则

  • 贴图不能使用中文命名,且不能有重名。
  • 材质球命名与物体名称一致,材质球的父子层级命名也必须一致。
  • 同种贴图必须使用一个材质球。
  • 除需要用双面材质表现的物体外,其他物体不能使用双面材质。
  • 材质的ID和物体的ID号必须一致。
  • 若使用CompleteMap烘焙,烘焙完毕后会自动产生一个shell材质,必须将shell材质变为Standard标准材质,并且通道要一致,否则无法正确导出贴图。
  • 带Alpha通道的贴图存储为tga或者png格式,命名时必须加_al以作区分。
  • 模型需要通过通道处理时,要制作带有通道的纹理。在制作树的通道纹理时,最好将透明部分改为树的主色,这样在渲染时可以使有效边缘部分的颜色正确。通道纹理在程序渲染时占用的资源比同尺寸的普通纹理要多,通道纹理命名应以_al结尾。

6. 模型烘焙及导出

6.1 烘焙方式

6.1.1 LightMap烘焙贴方式

这种烘焙贴图渲染出来的贴图只带有阴影信息,不包含基本纹理,适用于制作纹理较清晰的模型文件(如地形)。其原理是将模型的基本纹理贴图和LightMap阴影贴图进行叠加。优点是最终模型纹理比较清晰,且可以使用重复纹理贴图,节约纹理资源;烘焙后的模型可以直接导出FBX文件,无需修改贴图通道。缺点是LightingMap贴图不带有高光信息。

6.1.2 CompleteMap烘焙方式

这种烘焙贴图方式渲染出来的贴图本身带有基本纹理和光影信息,但缺点是没有细节纹理,且在近处时纹理比较模糊。

6.2 烘焙贴图设置

  • CompleteMap烘焙方式设置:贴图通道和物体uv坐标通道必须为1通道,烘焙贴图文件存储为tga格式,背景要改为与贴图近似的颜色。
  • LightingMap烘焙设置:贴图通道和物体uv坐标通道必须为3通道,烘焙时灯光的阴影方式为adv.raytraced高级光线跟踪阴影,背景色要改为白色,以避免出现黑边。
  • 主要物件的贴图uv必须手动展开。

7. 模型绑定及动画

7.1 骨骼类型

骨骼必须为IK、CAT、BIP三类,Unity不支持虚拟体动画,单个物体的骨骼数量不超过60个。

7.2 动画帧率与帧数

一般情况下,动画帧率为每秒10帧,一个动画尽量控制在1秒内完成。

7.3 角色蒙皮与动作调节

角色蒙皮、动作调节规范详见(动画规范流程表)。

7.4 动画导出

分开导出2个文件,一个是没有动作的模型、骨骼文件,模型需要带有蒙皮信息;另一个是调节好动画后导出的只有骨骼的FBX文件。

8. 模型导出

8.1 材质球设置

将烘焙材质改为标准材质球,通道为1,自发光100%。

8.2 命名一致性

所有物体名、材质球名、贴图名保持一致。

8.3 模型清理

合并顶点,清除场景,删除无用的物件。

8.4 材质球清理

清除多余的材质球(不重要的贴图要缩小)。

8.5 导出FBX

按要求导出FBX(检查是否需要打组导出),导出FBX后,重新导入max中查看动画是否正确。

8.6 文件检查

根据验收表格对照文件是否正确。

9. 文件备份提交标准

9.1 源文件备份

最终确认后的max文件,分别将角色模型、场景模型、道具模型带贴图存放到服务器相应的“项目名/model/char”“项目名/model/scene”“项目名/model/prop”文件夹中。动画文件存放到anim文件夹中。

9.2 导出文件存放

导出给程序的obj、fbx等格式文件,统一存放到export文件夹下的子文件夹anim、model、prop中。

10. 项目命名要求

10.1 项目名称统一

项目进入策划时,各部门统一为项目命名,服务器建立项目名称文件夹,制作人员在本机制作时也建立对应名称的项目文件夹。

10.2 角色模型命名

角色模型命名为项目名_角色名字。在max文件中,如果需要分开模型各部位,应在该命名基础上加上_部位,如角色头部命名为:项目名_角色名_head ,材质球和贴图的命名也保持一致。

10.3 场景、道具命名

场景、道具命名为项目名_场景名称。在max文件中,对应的物体命名为项目名_场景名物体名。如果同类物体较多,命名为项目名_场景名_物体名_01、项目名_场景名_物体名_02……以此类推。材质球和贴图的命名与物体名字对应,同类物体使用同一个材质球和同一张贴图。

10.4 带通道贴图命名

带通道的贴图要加_al后缀。

10.5 特效贴图命名

特效贴图以特效名称命名,贴图加入_vfx后缀。

作者信息

boke

boke

共发布了 3994 篇文章