目录

  • 课程知识
    • 模型与动画
      • 基本概念
        • 主流的三维建模软件
        • 动画剪辑可能包括:
    • Mecanim动画系统
      • Animator 组件
      • 使用动画控制器
      • 设计状态机控制器
      • 动画控制器基础编程
      • 动画控制器事件
    • 动画剪辑(Animation Clip)
      • 外部源动画
      • 编辑动画
      • 动画原理与资源属性
      • 导出动画编辑
      • 动画剪辑事件
    • 类人动画与动画中级知识
      • 配置 Avatar
      • 动画直接播放
      • 动画覆盖控制器
      • 混合树
    • 面向对象的编程 - 设计模式:对象的行为
      • 定义 listener 接口回调
      • 使用消息订阅/发布模式
        • 明星与粉丝
        • 订阅/发布模式
        • 设计模式与游戏的持续改进
      • C# 事件-代理机制
  • 智能巡逻兵
    • 视频
    • 代码简述见[README.md](https://gitee.com/zhangxy389/Game-unity/blob/master/soldier/README.md)

课程知识

模型与动画

基本概念

  • 模型(Model)

    • 物体对象的组合,Unity 映射为游戏对象树
    • 每个物体包含一个网格(Mesh)与蒙皮设置
    • 包含使用的纹理、材质以及一个或多个动画剪辑
    • 模型由 3D 设计人员使用 3D Max 等创建
  • 动画剪辑(Animation Clip)
    • 物体或骨骼的位置等属性在关键帧的时间序列
    • 通过插值算法计算每帧的物体的位置或属性
  • 模型的显示
    • Mesh 表面网格
    • MeshRender 网格渲染器

三维模型是用三维建模软件建造的立体模型,也是构成 Unity 3D 场景的基础元素。 Unity 3D 几乎支持所有主流格式的三维模型,如 FBX 文件和 OBJ 文件等。 开发者可以将三维建模软件导出的模型文件添加到项目资源文件夹中,Unity 3D 会将其显示在 Assets 面板中。

主流的三维建模软件
  • Autodesk 3D Studio Max
  • Autodesk Maya
  • Cinema 4D
动画剪辑可能包括:
  • 在动作捕捉工作室中捕捉的人形动画
  • 美术师在外部 3D 应用程序(如 Autodesk® 3ds Max® 或 Autodesk® Maya®)中从头开始创建的动画
  • 来自第三方库(例如 Unity 的 Asset Store)的动画集
  • 从导入的单个时间轴剪切的多个剪辑。

Mecanim动画系统

Unity 有一个丰富而复杂的动画系统(有时称为“Mecanim”)。该系统具有以下功能:

  • 为 Unity 的所有元素(包括对象、角色和属性)提供简单工作流程和动画设置。
  • 支持导入的动画剪辑以及 Unity 内创建的动画
  • 人形动画重定向 - 能够将动画从一个角色模型应用到另一角色模型。
  • 对齐动画剪辑的简化工作流程。
  • 方便预览动画剪辑以及它们之间的过渡和交互。因此,动画师与工程师之间的工作更加独立,使动画师能够在挂入游戏代码之前为动画构建原型并进行预览。
  • 提供可视化编程工具来管理动画之间的复杂交互。
  • 以不同逻辑对不同身体部位进行动画化。
  • 分层和遮罩功能

Animator 组件

Animator 组件用于将动画分配给场景中的游戏对象。Animator 组件需要引用 Animator Controller,后者定义要使用哪些动画剪辑,并控制何时以及如何在动画剪辑之间进行混合和过渡。

如果游戏对象是具有Avatar定义的人形角色,还应在此组件中分配Avatar,如下所示:

  • 有动画的模型,编辑器会自动添加该组件
  • 用户也可以在模型根对象手动添加该组件

使用动画控制器

Mecanim使用状态机管理运动