Unity模型导入相关知识 |
您所在的位置:网站首页 › unity3d虚拟仿真教程 › Unity模型导入相关知识 |
文章目录
常见的模型格式模型导入参数设置Model页签Scene设置Meshes设置Geometry设置
Rig页签Animation Type:动画类型Avatar化身信息设置
Animation页签基础信息设置动画剪辑属性基本设置预览窗口
Materials页签
常见的模型格式
Unity支持很多模型格式,比如:.fbx .dae .3ds .dxf .obj等等。其中最常见也是官方推荐使用的格式是 .fbx,使用FBX模型格式的优势: 1)减少不必要数据,提升导入效率。 2)不需要再每台计算机上安装建模软件的授权副本。 3)对Unity版本无要求,避免了模型因为Unity版本不同而导致错误。 从建模软件导出FBX格式的人物模型注意坐标轴规范: 人物面朝向为Z轴正方向,Y轴正方向为头顶方向,X轴正方向为人物右侧。 具体参考: https://docs.unity.cn/cn/2019.4/Manual/CreatingDCCAssets.html 模型导入参数设置官方文档:https://docs.unity.cn/cn/current/Manual/FBXImporter-Model.html#CameraImportProperties Model页签该页签主要是用于设置:模型比例设置,是否使导入模型中的摄像机和光源,网格压缩方式等等相关信息。修改模型中存储的各种元素和属性,最终会影响在Unity中使用模型时的一些表现。 Scene设置
Keep Quads:保留四边形 启用后,Unity不会将4个顶点的多边形转为三角形,当使用曲面细分着色器时可以启用此选项,因为四边形的曲面周色漆比多边形的效率更高。 Unity 可以导入任意类型的多边形(三角形到 N 边形)。顶点数量超过四个的多边形将始终转换为三角形,无论此设置如何。 如果一个网格有四边形和三角形(或者转换为三角形的 N 边形),那么 Unity 会创建两个子网格来分离四边形和三角形。每个子网格要么只包含三角形,要么只包含四边形。 提示:如果要从 3ds Max 将四边形导入 Unity,必须将其导出为可编辑多边形。 Weld Vertices:合并顶点 合并在空间中共享相同位置的顶点,前提是这些顶点总体上共享相同的属性(UV,法线,切线等等) 开启后相当于会通过减少网格的总数量来优化网格的顶点计数。 默认情况下开启此选项,除非有意保留这些重复顶点,之后想通过代码操作单个顶点和三角形数据。 Index Format: 定义网格索引缓冲区的大小,一般都选择16bits,Auto会默认选择16bits,只有在必要时使用32bit。 Legacy Blend Shape Normals: 启用后会基于Smoothing Angle值来计算法线。 Normals:法线计算方式 Import:从文件中导入法线,如果文件中不包含法线信息,将使用Calculate模式计算法线。 Calculate:根据Normals Mode、Smoothness Source和Smoothing Angle属性来计算法线。 None:不计算法线。如果网格既没有法线贴图,也不受实时照明的影响,请使用此选项。 Blend Shape Normals: 定义如何为混合形状计算法线,只有当Legacy Blend Shape Normals禁用时出现。此值应与 Normals 属性的值匹配。 Normals Mode: 计算法线的模式,只有当上方的Normals设置为Import和Calculate才会出现。 Unweighted Legacy:旧版的法线计算方法(在 2017.1 版本之前)。在某些情况下,旧版给出的结果与当前实现给出的结果略有不同。对于在将项目迁移到最新版本的 Unity 之前导入的所有 FBX 预制件,这是默认设置。 Unweighted:法线不加权。 Area Weighted:法线按照图面面积加权。 Angle Weighted:法线按照每个图面上的顶角加权。 Area and Angle Weighted:法线按照每个图面上的图面面积和顶角加权。这是默认选项。 Smoothness Source: 设置如何确定平滑行为(哪些边应该是平滑的,哪些应该是粗糙的)。 仅当禁用 Legacy Blend Shape Normals 时,此属性才可见。 Prefer Smoothing Groups:尽可能使用模型文件中的平滑组。 From Smoothing Groups:仅使用模型文件中的平滑组。 From Angle:使用Smoothing Angle值来确定哪些边应该是平滑的。 None:不拆分硬边的任何顶点。 Smoothing Angle: 控制是否为硬边拆分顶点。 通常,值越大,产生的顶点越少,仅当Normals设置为Calculate时才可用。 注意:此设置仅用于非常光滑的或者非常复杂的模型,否则,最好在3D建模软件中手动平滑然后导入,始终建议建模的时候就做好,更加准确。 Tangents: 定义如何导入或计算顶点切线,仅当Normals设置为Calculate或Import时,此属性才可用。 Import:如果 Normals 设置为 Import,则从 FBX 文件中导入顶点切线。如果网格没有切线,那么将无法使用法线贴图着色器。 Calculate Legacy:使用旧版算法计算切线。 Calculate MikkTSpace :使用 MikkTSpace 计算切线。如果 Normals 设置为 Calculate,则这是默认选项。 Calculate Legacy - Split Tangent:使用旧版算法计算切线,并在 UV 图表上进行拆分。如果网格上的接缝破坏了法线贴图光照,请使用此属性。此属性通常仅适用于角色。 None:不导入顶点切线。网格没有切线,因此将无法使用法线贴图着色器。 Swap UVs: 在网格中交换 UV 通道。如果漫射纹理使用光照贴图中的 UV,请使用此选项。Unity 最多支持八个 UV 通道,但并不是所有的 3D 建模应用程序都会导出两个以上的通道。 Generate Lightmap UVs:为光照贴图创建第二个UV通道。 Rig页签该页签主要是用于设置,如何将骨骼映射到导入模型中的网格,以便能够将其动画化。对于人形角色模型,需要分配或创建Avatar(替身信息),对于非人形角色模型,需要在骨骼中确定根骨骼。该页签的设置影响到动画的正常播放。 1)None:不存在动画,主要用于一些环境静态模型。 2)Legacy:旧版动画类型,与Unity3.x及更早版本一样导入和使用动画,一般不使用。 Generation:选择动画导入方法。 Don’t Import:不导入 Store in Root (New):导入动画并将其存储在模型的根节点中。这是默认设置。 3)Generic:通用模型,非人形模型。需要设置骨骼根节点。使用通用动画系统。 Root Node:选择用于此Avatar的根节点的骨骼(仅当将 Avatar Definition 设置为 Create From This Model 时此设置才可用。) 4)Humanoid: 骨架为人形(有两条腿、两条手臂和一个头)。需要使用Avatar化身系统,绑定人主要关节的映射关系。使用人形动画系统。Unity 通常会检测骨架并将其正确映射到 Avatar。有些情况下,可能需要更改 Avatar 定义 (Avatar Definition) 并手动对映射进行配置 (Configure)。 Avatar Definition:选择获取Avatar定义的位置 No Avatar:没有化身系统信息 Create From This Model:根据此模型创建Avatar化身信息 Copy from Other Avatar:指向另一个模型上设置的Avatar化身信息 Source:复制另一个具有相同骨架的 Avatar 以导入其动画剪辑。 Configure…:打开Avatar化身配置,人形动画使用Create From This Model时才有。 Skin Weights:设置影响单个顶点的最大骨骼数量 Standard(4 Bones):使用最多4个骨骼来产生影响。默认值,处于对性能考虑,建议使用此设置 Custom:设置自定义的最大骨骼数,选择后会出现下方的两个选项 Max Bones/Vertex:定义每个顶点的最大骨骼数(以影响给定顶点)。可为每个顶点设置 1 到 32 个骨骼,但是用来影响顶点的骨骼数量越多,性能成本就越高。 Max Bone Weight:设置考虑骨骼权重的最低阈值。权重计算将忽略小于此值的任何值,并且 Unity 会将高于此值的骨骼权重放大为总计 1.0。 Strip Bones:仅将骨骼添加到已指定蒙皮权重的SkinnedMeshRenderers。 Optimize Game Objects: 在Avatar化身系统和Animator动画组件中删除和存储所导入角色的游戏对象骨骼层级信息。如果启用会出现下方的Extra Transforms to Expose选项。角色将使用Unity动画系统的内部骨架,可以提高动画角色的性能。仅Avatar Definition为Create From This Model才可勾选。 Extra Transforms to Expose: 要暴露的骨骼层级,在下方打钩将暴露该骨骼层级信息,可通过名称搜索对应骨骼信息。勾选表示 希望 Unity 在计算中包含这个变换(骨架的骨骼)。 Toggle All:全选或者反选;Collapse All:全部折叠;Expand All:全部展开 Avatar化身信息设置
![]() 可以在这里预览在不同姿势的旋转变化,用来观察之前的关联映射关系是否合理。主要起到预览作用 Per-Muscle Settings:肌肉设置![]() 用于设置各骨骼在旋转时的范围限制。因为如果不设置限制,在一些极限角度时(人物动作)会非常奇怪,我们可以在这里单独设置限制范围。 Additional Settings:高级设置![]() 其中Translation DoF比较重要,如果启用,将启用人形角色的移动动画。如果禁用,Unity仅使用旋转对骨骼进行动画化。 但是启用后,会提升性能消耗,因为动画需要执行额外步骤来重定向人形动画,除非动画包含角色某些骨骼的动画式移动才会启用(比如君麻吕的椿之舞?)。一般情况下禁用即可。 Animation页签当我们选中包含动画剪辑(AnimationClip)的模型时,该页签将显示动画设置相关的内容。动画剪辑是Unity动画的最小构成元素,代表一个单独的动作。当美术同学做好动画导出时建议将模型和动画文件分别导出为: 1.包含网格信息不包含动作信息模型 2.不包含网格信息包含动作信息的动作(模型)文件 动作文件使用[email protected]的方式命名,参考: Import Constraints:从此资源导入约束 启用后,Unity会自动添加相应的约束组件将其关联到正确的游戏对象。 Import Animation:从此资源导入动画 如果禁用,下面的都没有,并且不会导入任何动画。 Bake Animations:通过反向动力学(IK)或模拟创建的动画以便推进运动关键帧,仅用于Maya、3Dmax和Cinema4D文件 Anim.Compression:导入动画时使用的压缩类型 Off:禁用动画压缩,在导入时Unity不会减少关键帧数量,效果最好性能较低,文件较大,运行时内存占用也大。通常不建议使用。 Keyframe Reduction:减少冗余关键帧,仅适用于Generic通用动画类型。 Keyframe Reduction and Compression:减少关键帧并在文件中存储动画时压缩关键帧,会影响文件大小,但是内存大小和Keyframe Reduction相同,仅适用于Legacy旧版动画类型。 Optimal:让Unity决定如何压缩,仅适用Generic通用和Humanoid人形动画类型 Rotation Error:设置旋转曲线压缩容错度(百分比),原始旋转值和减小值之间的最小角度。 Position Error:设置位置曲线压缩容错度(百分比) Scale Error:设置缩放曲线压缩容错度(百分比) 上面的 Animation Compression Errors 用来确定 Unity 是否可以删除位置曲线或缩放曲线上的关键点作为动画压缩策略。如果原始值和消减值之间的差值小于原始值乘以容错度百分比,则 Unity 会删除关键帧。 这些内容仅在Keyframe Reduction或Optimal压缩时可用 Animated Custom Properties:导入你指定为自定义用户属性的任何FBX属性。 Clips:动画剪辑选择列表 可以从列表中选择一个剪辑以显示特定于剪辑的属性。在剪辑预览面板中播放所选剪辑。使用添加 (+) 按钮为此文件创建新剪辑。使用删除 (-) 按钮删除所选的剪辑定义。 动画剪辑属性基本设置
结束拖动时,四种姿态属性的循环评价会记录在右侧,我们可以通过一组勾选栏来选择是否需要循环播放动画,以及是否需要对应属烘焙进姿态变化中,让根节点保持不变。 LoopTime:这个动画切片在被应用时,是否要循环播放。 LoopPose:是否在循环播放的过程中,对单次切片开头和结尾时的姿态进行循环处理。 Bake Into Pose:将角色对应属性的变换植入到身体(Pose)的运动中,让根节点对应属性的运动不发生改变。 注意!!!即使姿态属性评价为红色。也可以勾选Bake Into Pose ,但此时动画播放完后,身体姿态会与根节点出现很大的偏移,进行状态机混合时就会出现身体姿态的突变 勾选Bake Into Pose,将消除根节点对应的运动属性,在切片播放时,角色对应的旋转/位移,将不会被植入到Unity中(apply root motion勾选)。 通常需要某个姿态属性循环(恒定)的切片,我们应保证剪辑时评价为绿色,并勾选LoopPose/Bake Into Pose。 Cycle Offset:应是一个0到1之间的数值,否则无效,可以设定循环时起始播放位置的偏移。 Base Upon:对应属性的改变要以什么为参照(通常保持默认即可) —original 引用FBX文件中原先的位置,方位坐标,并以此为参照。通常对Y轴启用,对Rotation启用可能导致人物初始朝向不是Z轴正方向,对XZ平面启用可能导致人物不在原点位置。 —Body Orientation 按身体的朝向变化为参照,通常对Rotation启用。 —Center Of Mass 按身体重心位置为参照,选定时,身体重心位置会被至于原点,通常不对Y轴启用,而对XY平面启用。 —feet 按脚底的Y轴高度为参照(Y轴高度的另一个参照) Rotation Offset:可以设定旋转的初始偏移。 Y Offset:可以设定Y轴高度的初始偏移。 Mirror:左右镜像翻转动画(仅Humanoid )。 Additive Reference Pose:启用后可以设置附加动画层基础参考姿势的帧。在时间轴中可以看到蓝色标记。 附加动画层:在动画控制器(状态机)中可以添加新的动画层 Pose Frame:当启用参考姿势帧时,该项就是选择的具体是哪一帧。 D:曲线、事件、遮罩等其他属性参数设置 Curves:曲线可以配合Animator作为参数。曲线中的值X轴代表标准化时间(0~1)代表动画的开始和结尾,Y轴的值可以根据需求自己设置,有几个默认曲线也可以选择。 Events:为动画剪辑添加一个事件,当动画播放到事件处时会自动找对象脚本中的同名函数。 Mask:动画遮罩 主要作用是当播放该动画时,可以指定哪一部分或者哪些骨骼排除在外不受动作影响。 Humanoid(人形动画的快捷设置) 我们分别可以控制头、左右臂、左右手、左右腿、根等,点击他们让他们变成红色,就代表做该动作时不影响该部位。 Transform(明确指定哪些骨骼关节点不受影响) Motion:当导入的动画剪辑包含根运动时,我们可以在这里手动设置特定骨骼关节点作为我们的根运动节点。 Import Messages:如果在动画导入过程中出现任何问题,动画导入检视面板 (Animations Import Inspector) 顶部会显示警告,你可以将 Generate Retargeting Quality Report 选中,Unity会帮我们生成更多的有关重定向问题的具体信息。 只有看到警告动画不正确时才启用,可以帮助我们排查问题。 预览窗口可以从project窗口拖入模型进行动作预览。 可以使用此选项卡更改 Unity 在导入模型时处理材质和纹理的方式。 入没有指定任何材质的模型时,它使用 Unity 漫反射材质。如果模型有材质,Unity 会将这些材质导入为子资源。 参考链接: https://zhuanlan.zhihu.com/p/105029905 https://docs.unity.cn/cn/current/Manual/models.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |