美术流程探索-人物

LiFasT
LiFasT
Published on 2025-06-17 / 18 Visits
0
0

游戏开发、动漫影视都离不开人物,本期文章围绕游戏开发中的人物,详细介绍游戏人物从设计到应用的全流程,并使用一个小案例讲解各个阶段的操作。

本篇文章采用的是Blender+Unity的搭配,Blender为4.4版本,Unity为6版本,都是发布时比较新的版本。

流程

  1. 建模(Modeling) —— 在Blender里创建人物3D模型

  2. 拓扑和细化(Retopology & Details) —— 优化模型结构,保证动画时变形合理

  3. UV展开(UV Unwrapping) —— 展开模型表面,方便贴图

  4. 贴图绘制(Texturing) —— 制作人物皮肤、衣服等贴图

  5. 骨骼绑定(Rigging) —— 给模型绑定骨骼系统

  6. 权重绘制(Weight Painting) —— 调整骨骼对模型顶点的影响权重

  7. 动画制作(Animation) —— 制作走路、跑步、攻击等动作

  8. 导出模型和动画(Export) —— 导出FBX或其他格式到Unity

  9. Unity导入和配置(Import & Setup) —— 在Unity里导入模型,配置Animator

  10. 动画控制(Animation Controller) —— 使用Animator Controller制作动画状态机,控制人物动画播放

  11. 代码交互(Optional) —— 用脚本控制动画切换、人物行为等

建模

  • 创建人物模型:用Blender的建模工具从头建模,或者用扫描数据、现成模型基础上修改。

  • 人物形体:确定比例、整体形状,先做低多边形版本,方便后续优化。

  • 参考资料:准备好人物概念图正侧面,方便对齐。

常用工具:顶点编辑、挤出、环切、雕刻等。

拓扑和细化

  • 优化拓扑:保证模型面数均匀且流线合理,特别是关节部位(如肩膀、膝盖)要有良好拓扑,方便弯曲变形。

  • 添加细节:如果需要高精度细节,可以用雕刻后生成法线贴图在低模上表现。

UV展开

  • 拆分UV:将3D表面展开成2D平面,方便贴图绘制。

  • 缝合点放置:选择合理缝合点,避免贴图拉伸、接缝明显。

  • UV布局:安排好UV在贴图空间中的位置,提高贴图利用率。

贴图绘制

  • 基础贴图:颜色贴图(Albedo)、法线贴图(Normal Map)、金属度、粗糙度等PBR贴图。

  • 绘制方式:可以用Blender自带画笔绘制,也可以用Substance Painter、Photoshop等软件。

  • 分区贴图:比如身体和衣服分开不同材质贴图。

骨骼绑定

  • 创建骨骼(Armature):在Blender中为人物模型添加骨架(骨骼链),包含主骨骼(脊椎、四肢、头部等)。

  • 骨骼层级:骨骼按层级关系绑定,比如手指骨骼从手腕骨骼挂下去。

  • 命名规范:骨骼命名要清晰方便识别,有助于后续导出和Unity识别。

  • 设置IK约束:便于后续动画制作时使用。

权重绘制

  • 顶点权重:调整每个骨骼对模型顶点的影响比例,确保骨骼移动时模型表面合理变形。

  • 常用技巧:关节部位权重渐变平滑,避免硬折叠。

  • 测试变形:用骨骼控制测试模型弯曲,调整权重达到自然效果。

动画制作(Animation)

  • 制作动作:用Blender的动作编辑器(Action Editor)制作动画剪辑,如站立、走路、跑步、跳跃等。

  • 关键帧:在时间轴上设置关键帧,定义骨骼位置和旋转。

  • 循环动画:走路等动作设置为循环,保证平滑过渡。

  • 动作命名:给每个动画动作起名字,方便导入后在Unity调用。

导出模型和动画(Export)

  • 导出格式:通常用FBX格式(.fbx),包含模型、骨骼和动画。

  • 导出设置:确保勾选“动画”、“骨骼”、“网格”等选项,选择合适的单位和轴方向(Unity默认Y轴为上)。

  • 版本兼容:用Unity支持的FBX版本,避免导入问题。

Unity导入和配置(Import & Setup)

  • 导入模型:将FBX文件拖入Unity项目Assets目录。

  • 模型设置:在Inspector里调整模型导入参数,如缩放、轴向。

  • Rig类型选择:设置Rig为“Humanoid”(人形)或“Generic”(通用骨骼)。一般游戏人物选Humanoid,方便动画复用和IK。

  • Avatar生成:Humanoid模式下生成Avatar,可以在配置里调整骨骼映射。

动画控制(Animator Controller)

  • 创建Animator Controller:控制动画状态和切换。

  • 添加动画状态:导入的动画动作放入不同状态。

  • 设置过渡条件:用参数(如速度、是否跳跃)控制状态之间的切换。

  • 挂载Animator:将Animator组件挂在人物模型上,绑定Animator Controller。

代码交互(Optional)

  • 动画触发:通过代码控制参数,触发动画播放。

  • 角色控制:结合动画和角色控制器(CharacterController或自定义),实现人物移动、攻击等。

  • IK支持:可用Unity内置或第三方IK系统,使动画更自然。


Comment