导入3D模型时相关参数设置/Model标签页/Rig标签页/Avatar相关参数/Animation标签页/Materia标签页

导入3D模型

即:最好使用的模型是**.fbx格式** ,坐标轴面朝向是Z轴正方向 ,头顶为Y轴正方向 ,右侧为X轴正方向的模型。

导入模型基本流程

如下四个标签页都是 Unity FBX/模型导入设置(Import Settings)的内置功能,属于原生 Inspector 界面的一部分。

Model标签页

场景相关设置

当发现模型的大小比例不对的时候可以来这里调整

是否优化空根结点相关

一般动画与骨骼网格是分开两个模型的,需要相同的根结点来匹配播放动画,即使那个结点可能是空的。当发现动画有问题的时候,可以来这里查看修改

Unity 的默认行为(优化):

  • 导入 FBX 时,会自动 剥离/优化掉 模型中的空根节点

  • 目的是减少场景中的无用对象,提升性能

勾选 Preserve Hierarchy 后:

  • 强制保留所有空根节点,保持原始层级结构

其他次重要的参数

网格相关设置

Mesh Compression可以压缩模型的大小, 但是可能会丢失一些细节

Read/Write Enabled开启会使得内存占用增加,不过CPU中可保留一些网格数据

其他次重要设置

几何体相关设置

Rig标签页

就是主要用于把骨骼映射到导入模型的网格,以使其可以动画化

骨骼动画种类

类型 作用 特点 限制/要求 适用场景 性能/现状
None 不导入任何动画和骨骼数据 纯模型导入,无动画系统开销 无动画功能 静态模型(建筑、道具、场景物件) 最优,无骨骼计算开销
Legacy Unity 4.x 之前的旧版动画系统 使用 Animation 组件播放,非 Mecanim 已过时,不支持新功能 维护老项目,特殊兼容性需求 已过时,新项目不建议使用
Generic 支持任意骨骼结构的动画 使用 Animator 组件,支持 Mecanim(混合树、状态机) 不支持人形重定向(不同骨架间复用动画) 非人类角色、自定义骨骼结构(四足动物、机械、怪物) 良好
Humanoid 专为人形角色优化 动画重定向------不同人形模型可共用动画 骨骼必须符合 Unity 的 Humanoid 骨骼映射(Avatar) 人类角色、需要动画复用(换皮角色共用动作库) 良好,有 Avatar 映射开销

Avatar系统定义

1. No Avatar(无 Avatar)

项目 说明
作用 不创建或使用任何 Avatar 化身系统
结果 模型无法播放 Humanoid 动画,相当于没有骨骼映射
适用场景 临时禁用、或后续手动指定
注意 选此选项后模型无法正常播放人形动画

2. Create From This Model(从此模型创建)

项目 说明
作用 根据当前模型的骨骼结构,自动生成 Avatar
过程 Unity 自动识别骨骼节点 → 映射到 Humanoid 标准骨骼(头、躯干、四肢等)
Configure... 按钮 打开 Avatar 配置界面,手动校正自动映射错误的骨骼(如左右手反了、手指缺失等)
适用场景 新模型首次导入,需要创建独立的 Avatar 定义
特点 每个模型有自己的 Avatar 文件,可独立调整

3. Copy From Other Avatar(从其他 Avatar 复制)

项目 说明
作用 复用已存在的 Avatar 定义,不创建新的
Source 字段 指定要复制的源 Avatar(必须是相同骨骼结构)
原理 两个模型共享同一套骨骼映射配置
适用场景 同骨架模型复用(如换皮角色、NPC 变体)
优势 避免重复配置,确保骨骼映射完全一致
注意 骨骼结构必须完全相同,否则动画会错乱

Source(Copy From Other Avatar的联用)

项目 说明
出现条件 仅当选择 Copy From Other Avatar 时显示
作用 指定要复制的目标 Avatar 资源
设置方式 拖拽已配置好的 Avatar 文件到字段中
典型用法 基础角色创建 Avatar → 其他皮肤复制该 Avatar

Avatar面板参数

Mapping设置:

主要用来设置各个关节映射到哪一个骨骼

Mapping最下面还有两个小功能面板

自动映射小tips

Unity 按照 预设的命名关键词 自动识别骨骼:

身体部位 Unity 识别的命名关键词(不区分大小写)
Hips(臀部/根骨骼) hip, pelvis, root
Spine(脊柱) spine, back
Chest(胸部) chest, torso, body
Neck(颈部) neck
Head(头部) head
Left Arm(左臂) left arm, arm.l, l_arm, arm_left
Right Arm(右臂) right arm, arm.r, r_arm, arm_right
Left Hand(左手) left hand, hand.l, l_hand
Right Hand(右手) right hand, hand.r, r_hand
Left Leg(左腿) left leg, leg.l, l_leg, thigh.l
Right Leg(右腿) right leg, leg.r, r_leg, thigh.r
Left Foot(左脚) left foot, foot.l, l_foot, ankle.l
Right Foot(右脚) right foot, foot.r, r_foot, ankle.r

除了命名,Unity 还会分析 骨骼的层级关系

复制代码
Hips(根节点)
  ├── Left Leg → Left Foot(左腿链)
  ├── Right Leg → Right Foot(右腿链)
  ├── Spine → Chest → Neck → Head(躯干链)
  └── Left Arm → Left Hand(左臂链)
      └── Left Thumb/Index/Middle...(手指)

手动校准骨骼映射

复制代码
1. 点击 Mapping → Automap(先让 Unity 自动尝试)
         ↓
2. 检查绿色/红色标记:
   - 绿色 = 已正确映射
   - 红色 = 缺失或错误
         ↓
3. 从 Hierarchy 拖拽骨骼到对应槽位
         ↓
4. 点击 Pose → Enforce T-Pose(强制 T 姿势,确保绑定正确)
         ↓
5. 点击 Apply → Done

Muscles & Settings设置:

一般是用来预览骨骼影响运动的肌肉对不对

高级设置

还有Translation DoF开启后可以让骨骼伸长(就像触手,橡皮筋那种感觉)

一般推荐禁用Translation DoF

特性 说明
动画方式 仅使用旋转驱动骨骼
原理 像真实人体一样,关节通过旋转产生运动
性能 更好,重定向计算更简单
适用场景 绝大多数角色动画(走路、攻击、待机等)

Animation标签页

导出含有动画的模型的时候,把它分为只包含网格信息的模型只包含动作的模型分别导出

导出规则详细参考:

如何导入外部创建的模型资源

使用多个模型文件来导入动画

如下是模型有动画和无动画时的页面

动画的压缩

一般来说,如果不是对动画要求特别高,那就都会要压缩这个动画的,根据动画的类型(是Humanoid还是Generic)来选择对应的压缩类型

多个动画文件共存时的剪辑

如果导出的这个模型文件中在包含有多个动画,可以去添加剪辑片段标定它的Start帧和End帧来把对应的片段剪辑出来

点击【+】号后选择这个片段,然后拉下面的小滑块即可剪辑出该片段

循环时间

动画类型 Loop Time Loop Pose 原因
待机 Idle 长时间循环,必须无缝
走路 Walk 循环播放,脚步要衔接
跑步 Run 同上
攻击 Attack 一次性动作,不循环
受击 Hit 一次性反馈
死亡 Die 播放一次后保持

如果这里亮绿灯了,那就说明循环的首尾能够是一样的

(亮红灯的时候只是首尾可能位置什么的不一样,不一定代表动画有问题,具体看预览窗口动画看起来怎么样就好了)

Root Transform Rotation(根变换旋转)设置

Root Transform Rotation 决定:动画中的旋转是否应用到角色身上。

换句话说:我们是否需要骨骼带动物体旋转

  • 勾选 = 假转(骨骼动,角色不动,骨骼自顾自,不驱动角色)

如下角色骨骼在旋转,而角色没有旋转

  • 不勾选 = 真转(骨骼动画驱动角色转向)

如下没有勾选物体时,转向骨骼的碰撞体也在旋转,角色根节点空物体也在旋转

Root Transform Position (Y)(根垂直位置/Y轴方向)

与上文内容类似------看我们是否需要骨骼运动带动物体的竖直方向运动。

|-----------|----------------------------------------|--------------------|
| ✅ 勾选 | 垂直位移内化到骨骼动画,不驱动角色上下移动 | 原地跳跃(角色不实际升高)、待机动画 |
| ❌ 不勾选 | 垂直位移作为 Root Motion动画驱动角色上下移动 | 真实跳跃、下落、爬楼梯 |

Root Transform Position (XZ)(根水平位置/XZ平面)

与上文内容类似------看我们是否需要骨骼运动带动物体的xz平面的运动。

|-----------|----------------------------------------|----------------|
| ✅ 勾选 | 水平位移内化到骨骼动画,角色原地踏步 | 攻击动作、待机动画、原地技能 |
| ❌ 不勾选 | 水平位移作为 Root Motion动画驱动角色实际移动 | 走路、跑步、冲刺、闪避 |

曲线

该功能用处不大,了解即可。

然后它一般是配合动画状态机使用的

可以看出,在动画状态机中添加一个名字和曲线名一样的变量名,那这个变量就会随着这个曲线的变换而变换了

动画事件

可以在任意帧添加一个事件,然后下面是它的函数名以及相关参数(不设置那就是没有参数)

它会去当前动画的状态机所挂在的物体上的脚本中去寻找这个函数名并执行

就是动画状态机所在的物体上的脚本中找

【找不到的话会报错】

遮罩

用于禁用这个动画中一些骨骼的动画

应该很容易看出来是什么效果了

对于非人形的 那就只能用Transform

在这里打勾的就是可以动得 ,没有勾的就是不能动的

其他面板内容

预览窗口

这个可以让我们选择其他人形的模型进来看它的动作

不过更常用的 还是手动拖进来

Materia材质纹理页签


Material Creation Mode:是设置Unity如何生成或导入材质

  • **None:**就是不使用模型中任何材质,用Unity默认的反射材质
  • **Standard:**导入的时候用Unity默认规则生成材质(一般用这个)
  • **Import via MaterialDescription:**导入的时候用FBX中嵌入的材质描述来生成材质(这个更加准确且支持更加广泛的材质类型)


**Location:**定义如何访问材质与纹理

  • Use Embedded Materials:将导入的材质保持着导入的资源中
  • Use External Materials(Lagacy):将导入的材质提取为外部资源(比较古老的项目才会使用这个选项)

**Extract Textures/Materials:**当选择Use Embedded Materials后会出现的内容。它们可以提取出嵌在模型中的材质与纹理(没有就是灰色的)

  • Naming:定义材质的命名规则
  • By Base Texture Name:用导入材质的漫反射纹理名称来命名材质,如果没有漫反射纹理或者没有分配给材质,那就会用导入的材质的名称
  • From Model's Material:使用模型文件的名称与导入材质的名称相结合来命名文件

**Search:**定义在使用Nameing选项定义的名称中查找现有材质位置的规则

  • Local Materials Folder:在本地Materials材质子文件夹中(模型文件所在的同一文件夹)中的所有材质
  • Recursive-Up:在所有父文件夹(一直上溯到Assets)中所有Materials子文件夹中查找现有材质
  • Project-Wide:在所有Unity项目文件夹中查找现有材质
相关推荐
不是AI4 小时前
【Unity开发】一、在安卓设备上运行Unity项目
android·unity·游戏引擎
淡海水21 小时前
【节点】[EyeSurfaceTypeDebug节点]原理解析与实际应用
unity·游戏引擎·debug·shadergraph·图形·surface·eye
淡海水1 天前
【节点】[IrisLimbalRing节点]原理解析与实际应用
unity·游戏引擎·iris·shadergraph·图形·ring·limbal
在路上看风景1 天前
33. RenderTarget
unity
在路上看风景1 天前
34. GPU偏爱2的幂次
unity
Zik----1 天前
Unity的基础使用
unity·游戏引擎
在路上看风景2 天前
1.11 资源划分策略
unity
红黑色的圣西罗2 天前
Unity减少Draw和SetPassCall的手段简述
unity·游戏引擎
淡海水2 天前
【节点】[CorneaRefraction节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·cornea·refraction