·来源于唐老狮的视频教学,仅作记录和感悟记录,方便日后复习或者查找
一、Unity中使用的模型与导入流程
1.使用的模型
即:最好使用的模型是.fbx格式,坐标轴面朝向是Z轴正方向,头顶为Y轴正方向,右侧为X轴正方向的模型。
更多导入细节可以去官方手册查看:
2.导入流程
做好后导出为.fbx模型,然后导入Unity文件夹中,然后在Unity中对其进行基础设置
二、Unity中的模型设置
1.Model 模型页签
2.Rig 操纵骨骼页签
3.Animation 动画页签
4.Materials 材质纹理页签
三、Model 模型页签
1.作用
2.相关参数
2.1.场景相关设置
模型大小比例相关
当发现模型的大小比例不对的时候可以来这里调整
是否优化空根结点相关
一般动画与骨骼网格是分开两个模型的,需要相同的根结点来匹配播放动画,即使那个结点可能是空的。当发现动画有问题的时候,可以来这里查看修改
其他参数
一般来说不会需要导入其他建模软件中的摄像机和灯光的
2.2.网格相关设置
内存占用相关
Mesh Compression可以压缩模型的大小, 但是可能会丢失一些细节
Read/Write Enabled开启会使得内存占用增加,不过CPU中可保留一些网格数据
其他设置
2.3.几何体相关设置
合并优化顶点相关
其他设置
四、Rig 操作(骨骼)页签
1.作用
就是主要用于把骨骼映射到导入模型的网格,以使其可以动画化
2.相关参数
动画类型
None:
Humanoid:
人形的模型一般用这种类型
可以自己生成一个Avatar,或者复制别人的Avatar,或者不用Avatar
Generic:
非人形模型使用
Legacy:
很古老的动画才会使用这种类型
3.Avatar系统是什么
就是把一个标准人形的动作通过Avatar系统复用到其他的人形模型上
只要保证它们之间的关节对应关系是一致的即可
4.Avatar系统相关设置
Mapping设置:
主要用来设置各个关节映射到哪一个骨骼
显然有很多重要的关节点都可以配置
用的最多的应该是Automap让他自己映射了
一般保持强制TPose就好了
Muscles & Settings设置:
一般是用来预览骨骼影响运动的肌肉对不对
还有Translation DoF开启后可以让骨骼伸长(就像触手,橡皮筋那种感觉)
总之动起来是这么个感觉
然后要是修改了什么也是要记得应用修改的
五、Animation 动画页签
1.作用
导出含有动画的模型的时候,把它分为只包含网格信息的模型和只包含动作的模型分别导出
导出规则详细参考:
2.四大部分
如果这个模型文件没有动画的的话是这样的
有动画文件则是这样的
2.1.基础信息设置
基础设置
一般来说,如果不是对动画要求特别高,那就都会要压缩这个动画的,根据动画的类型(是Humanoid还是Generic)来选择对应的压缩类型
动画剪辑列表
如果导出的这个模型文件中在包含有多个动画,可以去添加剪辑片段并标定它的Start帧和End帧来把对应的片段剪辑出来
点击【+】号后选择这个片段,然后拉下面的小滑块即可剪辑出该片段
2.2.动画剪辑属性基本设置
动画名称
修改后要应用才算保存了
时间轴
具体调整这个剪辑片段的播放范围
循环时间
如果这里亮绿灯了,那就说明循环的首尾能够是一样的
(亮红灯的时候只是首尾可能位置什么的不一样,不一定代表动画有问题,具体看预览窗口动画看起来怎么样就好了)
根位置角度相关
Bake Into Pose 勾选了之后会取消动画的自带旋转;不勾线就会有动画带动根物体旋转
Based Upon(atStart) 是根旋转的基础:
- Original:保持源文件中的原始旋转
- Root Node Rotation:使用根节点的旋转(仅适用Generic通用动画类型
- Body Orientation:保持上半身朝前(仅适用于Humanoid人形动画类型
Offset是旋转的偏移值
根垂直位置
Bake Into Pose 勾选之后会取消动画自带的竖直方向的位移
Based Upon是垂直位移的基点
- Original:保持源文件中的垂直位置
- Root Node Position:使用垂直根位置(仅适用Generic通用动画类型
- Center Of Mass:保持质心与根位置对其(仅适用Humanoid人人形动画类型)Feet:保持双脚与根变换位置对齐(仅适用Humanoid人形动画类型)
- Feet:保持双脚与根变换位置对产(仅适用Humanoid人形动画类型)【一般也都是选这个】
Offset是在Y方向上的偏移值
根水平位置
Bake Into Pose勾选之后会取消动画自带的水平位移(比如走路动画勾选后就只会原地踏步了)
Based Upon是水平位移的基点
- Original:保持源文件中的水平位置
- Root Node Position:使用水平根位置(仅适用Generic通用动画类型)
- Center Of Mass:保持与根位置对其(仅适用Humanoid人形动画类型)【一般选这个了】
其他参数
Mirror一般不会用的
Pose Frame的蓝色滑块
总而言之,具体要什么样的效果在调整这些参数的时候在预览窗口中看就好了,绝对好那就是好参数了
2.3.动画剪辑属性其他设置
2.3.1.曲线
然后它一般是配合动画状态机使用的
可以看出,在动画状态机中添加一个名字和曲线名一样的变量名,那这个变量就会随着这个曲线的变换而变换了
2.3.2.事件
可以在任意帧添加一个事件,然后下面是它的函数名以及相关参数(不设置那就是没有参数)
它会去当前动画的状态机所挂在的物体上的脚本中去寻找这个函数名并执行
就是动画状态机所在的物体上的脚本中找
【找不到的话会报错】
2.3.3.遮罩
用于禁用这个动画中一些骨骼的动画
应该很容易看出来是什么效果了
对于非人形的那就只能用Transform了
在这里打勾的就是可以懂得 ,没有勾的就是不能动的
2.3.4.Motion
2.3.5.导入信息
2.4.预览窗口
这个可以让我们选择其他人形的模型进来看它的动作
不过更常用的 还是手动拖进来
六、材质纹理页签
Material Creation Mode:是设置Unity如何生成或导入材质
- None:就是不使用模型中任何材质,用Unity默认的反射材质
- Standard:导入的时候用Unity默认规则生成材质(一般用这个)
- Import via MaterialDescription:导入的时候用FBX中嵌入的材质描述来生成材质(这个更加准确且支持更加广泛的材质类型)
sRGB Albedo Colors:是否在伽马空间中使用反射率颜色
- 如果项目使用的是线性颜色控件,那就禁用掉这个选项。如果选择是则Import vai MaterialDescription不可用
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项目文件夹中查找现有材质
应该左边是建模软件中给它设置的材质的名称,右边就是对应在Unity中生成的材质
重新映射的材质,找到了之后会自动关联(没找到也可以手动关联)
总结:
①Unity支持多种模型格式导入,但是最好使用.fbx模型,同时要调整好坐标轴
②模型导入之后可以在模型页签中调整模型的大小比例与是否导入空结点【场景设置】、网格设置(进行压缩优化)【网格设置】、以及是否进行顶点合并优化【几何设置】
③Rig操纵(骨骼)页签主要用于把骨骼信息映射到网格上以使得动画正常运行,并且可以使用Avatar系统来对人形的模型的动画进行复用。
④动画页签中我们也可以设置动画的压缩,并且可以把一整个动画剪辑成很多个片段,然后每个片段又可以分别调整它们的动画运动是否影响根运动等设置,并且可以给动画添加帧事件与使用遮罩以及曲线,还可以在预览窗口中直接看模型的运动情况(人形的可以直接拖进去)
⑤材质页签则主要可以设置模型的材质导入Unity中的规则,包括如何导入模型的材质与如何查找模型的材质并关联
⑥模型页签负责了模型的形态,骨骼页签和动画页签负责了模型的动作,材质页签则负责了模型的皮肤颜色。它们四个共同组成一个完整的可动模型