布娃娃编辑器
概述
布娃娃编辑器用于生产模型、骨骼动画模型的布娃娃资源。布娃娃可为动画角色的每根骨骼创建独立的碰撞,也可用于实现符合人体或动物关节约束的动态模拟效果以及物理动画效果。
编号 | 名称 | 描述 |
---|---|---|
1 | 顶部工具栏(Top Toolbar) | 提供了删除、保存、模拟布娃娃,以及打开动画播放窗口的功能。 |
2. | 树形视图(Tree View)面板 | 用于显示动画角色完整的骨骼树结构; 提供单选、多选、框选、全选等方便编辑的选择功能; 提供用于创建、删除刚体/关节的菜单功能。 |
3 | 场景(Scene)面板 | 用于显示骨骼动画模型,观察模拟效果; 提供对刚体/关节等位移、旋转、缩放等编辑功能; 提供方便编辑调试布娃娃效果的辅助功能。 |
4 | 刚体信息(Rigidbody Detail) 面板 | 提供包括编辑设置刚体/关节等对象属性的编辑功能。 |
5 | 资源浏览器(Asset Browser)面板 | 显示当前动画角色可播放动作列表。 |
6 | 动画播放控制面板(Animation playback control panel ) | 提供动作播放控制功能。 |
可进行布娃娃编辑的文件类型
后缀名 | 描述 |
---|---|
.xmod | 模型资源文件。 |
.actor | 骨骼动画资源文件。 |
编辑保存的布娃娃文件类型
保存布娃娃编辑后,编辑器会输出以下两种格式的布娃娃资源。
后缀名 | 描述 |
---|---|
.rdl | XML格式的刚体配置文件。 布娃娃预设、每根骨骼使用的碰撞预设等信息保存在此文件中。 |
.rlx | XML格式的刚体配置文件。 所有刚体、关节的属性保存在此文件中。 |
顶部工具栏
名称 | 描述 |
---|---|
删除(Delete) | 删除当前已保存的布娃娃资源。 |
另存为(Save As) | 将当前编辑的布娃娃存储为另外一个由用户指定名称的布娃娃配置。 |
保存(Save) | 保存当前布娃娃编辑。 |
模拟(Simulate) | 开始或结束布娃娃模拟。 |
动作播放(Action Play) | 打开或关闭动画播放控制面板。 |
重置摄像机位置(Reset Camera) | 摄像机回到初始位置。 |
树形视图面板
树形视图(Tree View)面板中不同颜色的树节点代表不同的树节点类型。
节点名称 | 描述 |
---|---|
Bip01 Pelvis | 骨骼(Bone)节点。 骨骼节点的名称与骨骼动画中骨骼的名称相同。 创建了刚体的骨骼节点用蓝色标记(后面称这类树节点为刚体节点),否则使用白色标记。 |
capsule | 碰撞体(Collider)节点。 碰撞体节点包含了几何形状信息和物理材质信息。 碰撞体节点用黄色标记。 |
joint | 关节(Joint)节点。 关节节点用于约束两个刚体之间的相对运动。 关节节点用绿色标记。 |
joint(Control) | 控制关节(Joint Control)节点。 控制关节节点是一种特殊的关节节点。一般用于约束刚体与相应动画骨骼的相对可移动范围。 控制关节节点用红色标记。 |
面板操作
操作 | 描述 |
---|---|
鼠标左键单击 | 左键单击选中树节点。 同时树节点代表的刚体/关节/碰撞体(Collider)对象会在场景(Scene)面板中被选中。 刚体信息(Ridgidbody Detail)面板中的属性会刷新为与对象类型匹配的属性。 |
鼠标右键单击 | 右键单击树节点可打开操作菜单。 选中不同类型和数量的树节点,打开菜单的内容也不相同。 |
按住Ctrl | 按住Ctrl键可多选树节点。 注意:刚体节点和关节节点不能同时被选中。 |
按住Shift | 按住Shift键可全选两次选择的树节点之间所有类型与首次选择的树节点类型匹配的树节点。 |
Ctrl + A | 选中某个树节点后按Ctrl + A,可全选该树节点下所有同类型子节点(包括最初所选中的节点)。 |
Delete | 删除当前选中的刚体、碰撞体、关节。 |
右键菜单项
右击骨骼节点打开快捷菜单。
菜单项 | 描述 |
---|---|
新建刚体(Create Rigid Body) | 为当前骨骼节点创建刚体。 |
新建当前骨骼及子骨骼刚体(Create Bone And Child Bone Rigid Body) | 创建当前选中的骨骼节点及其所有子骨骼节点的刚体。 创建过刚体的骨骼节点会被跳过。 |
删除子骨骼刚体(Clear Sub Bone Rigid Body) | 清空当前骨骼节点下所有子节点的刚体。 |
右击刚体节点打开快捷菜单。
菜单项 | 描述 |
---|---|
添加碰撞体(Add Collider) | 为刚体添加新的碰撞体。 |
新建当前骨骼及子骨骼刚体(Create Bone And Child Bone Rigid Body) | 为当前选中骨骼及其子骨骼创建刚体。 创建过刚体的骨骼节点会被跳过。 |
删除当前骨骼刚体(Delete Current Bone Rigid Body) | 删除当前选中骨骼节点的刚体。 |
删除子骨骼刚体(Clear Sub Bone Rigid Body) | 清空当前骨骼节点下所有子节点的刚体。 |
删除所有(Delete All) | 删除当前骨骼节点及其子节点的刚体。 |
复制(Copy) | 复制当前刚体节点的属性,包括刚体及其所有碰撞体属性。 注意:单选刚体节点时会出现该选项。 |
取消复制(Undo Copy) | 取消复制刚体节点的属性。 |
粘贴(Paste) | 将之前复制的刚体属性,粘贴到当前选中的刚体节点上。 注意:已复制过刚体节点时会出现该选项。 |
创建指定骨骼关节(Create Specified Bone Joint) | 为两个选中的刚体节点创建关节。 注意:选中两个刚体节点时会出现该选项。 |
删除选中的刚体/碰撞体(Delete Selected Rigid Body/Collider) | 删除所有选中的刚体或者碰撞体节点。 注意:选中多个刚体节点时会出现该选项。 |
右击碰撞体节点打开快捷菜单。
菜单项 | 描述 |
---|---|
删除碰撞体(Delete Collider) | 删除选中的碰撞体节点。 |
右击关节节点打开快捷菜单。
菜单项 | 描述 |
---|---|
删除关节(Delete Joint) | 删除所有选中的关节节点。 |
复制(Copy) | 复制当前关节节点的属性。 |
取消复制(Undo Copy) | 取消复制关节节点的属性。 |
粘贴(Paste) | 将之前复制的关节属性,粘贴到当前选中的关节节点上。 |
场景面板
面板操作
操作 | 描述 |
---|---|
鼠标点击骨骼或关节 | 鼠标左键点击刚体/关节位置,可以选中刚体/关节对象。 被选中的刚体/关节位置上会出现编辑坐标轴,同时树形视图(Tree View)面板上会选中相应的树节点,刚体信息(Rigidbody Detail)面板中的属性也会刷新为与选中对象类型匹配的属性。 |
鼠标左键单击场景空白部分 | 鼠标左键点击场景空白部分,会清空当前所有已选中的刚体/关节/坐标轴。 树形视图(Tree View)面板也会清空选择,刚体信息(Rigidbody Detail)面板会恢复默认。 |
点击并拖动坐标轴 | 根据当前坐标轴编辑模式的不同,拖动坐标轴可修改当前选中刚体/关节的位置/旋转/缩放。 |
按住Ctrl | 按住Ctrl可多选刚体/关节。 注意:刚体和关节一次只能选择一种。 |
按住Shift | 当选中刚体/关节并拖动坐标轴修改其位置/旋转/缩放时,按住Shift键,可让每次修改的位置/旋转/缩放值更加精确。 |
F | 像鼠标指向位置发射一个动态刚体小球。 |
Delete | 删除当前选中的刚体、碰撞体、关节。 |
切换坐标轴编辑模式
快捷键 | 描述 |
---|---|
1 | 拖动坐标轴,修改选中碰撞体的位置。 |
2 | 拖动坐标轴,修改选中碰撞体的旋转。 |
3 | 拖动坐标轴,修改选中碰撞体的缩放。 |
4 | 切换本地/世界空间编辑。 |
5 | 在场景空白处左击并按住,上下拖动,改变模型在场景中的高度。 |
6 | 在场景空白处左击并按住,左右拖动,改变模型旋转。 |
修改场景内摄像机移动速度
操作 | 描述 |
---|---|
拖动滑块 | 拖动滑块可调整摄像机在场景内的移动速度。 |
属性编辑面板
编辑设置
属性名 | 描述 |
---|---|
显示模型(Show Model) | 用于开关显示模型。 |
显示骨架(Show Skeleton) | 用于开关显示角色骨架。 |
显示参与模拟的几何体(Show Simulate) | 用于开关显示所有参与模拟的几何体信息。 |
显示参与查询的的几何体(Show Scene Query) | 用于开关显示所有参与场景碰撞查询的几何体信息。 |
物理动画(Physics Animation) | 用于开关当前动画角色的物理动画功能。 |
简易物理动画(Easy Physics Animation) | 用于开关当前动画角色的简单物理动画功能。 物理动画可能由于约束与动画不完全匹配,导致物理动画效果错误。 简易物理动画(Easy Physics Animation) == true 时,可以使物理动画暂时忽略约束的限制,得到较好的动画效果。 |
播放模型动画(Play Model Anim) | 用于开关模型动画播放。 仅在编辑对象为模型,且模型带有模型动画时生效。 |
其余编辑设置面板中的属性在操作说明中做详细解释。
资源浏览器面板
动作播放列表
操作 | 描述 |
---|---|
双击列表 | 可切换动画角色当前播放的动作。 |
动画播放控制器
在动画播放控制器中拖动红色游标,将动画角色当前播放的动作切换到指定帧。
按钮 | 描述 |
---|---|
将角色动作跳转到第0帧。 | |
将角色动作退回到上一帧。 | |
倒序播放动作。 | |
暂停播放动作。 | |
正序播放动作。 | |
将角色动作推进到下一帧。 | |
将角色动作跳转到最后一帧。 | |
循环播放动作。 | |
单次播放动作。 |
编辑操作说明
打开编辑器
在组件编辑器的项目(Project)面板中找到需要创建布娃娃的骨骼动画资源文件(.actor),双击该文件可打开组合体编辑器,点击组合体编辑器右上方的按钮打开布娃娃编辑器。
布娃娃编辑器:
或者可以通过在资源预览窗口中找到已有的布娃娃文件(.rdl和.rlx),双击该文件后选择一个.actor文件即可打开布娃娃编辑器。
新建布娃娃
若当前布娃娃编辑器中有选中的刚体或者关节,先点击场景(Scene)面板中的空白部分,清空选择。
在刚体信息(Rigidbody Detail)面板中,找到重建布娃娃(Rebuild Ragdoll)选项,根据需要对相关属性进行设置,点击创建(Create)按钮重新创建布娃娃。
属性名 | 描述 |
---|---|
碰撞体类型(Collider Type) | 用于定义新建布娃娃的刚体所使用的碰撞体类型。例如该属性设置为胶囊几何体(Capsule Geometry)时,布娃娃所有刚体的碰撞都会用胶囊体来创建。 |
蒙皮权重(Skin Weight) | 在创建每个骨骼的刚体时,会搜集与骨骼相关的蒙皮顶点信息,蒙皮权重定义了这些顶点与骨骼混合权重的阈值,混合权重大于这个阈值的顶点才会参与刚体的创建。 |
重新创建(Rebuild) | 此按钮操作会完全删除当前已有的布娃娃,并为动画角色全身骨骼重新创建刚体。 |
删除布娃娃
点击工具栏中的删除(Delete)按钮即可删除布娃娃。
注意: 该操作会完全删除当前编辑的布娃娃,包括场景内动画角色的布娃娃和位于硬盘上的布娃娃资源文件。
新建刚体
选中骨骼,为其创建刚体。在树形视图(Tree View)面板中,选中单个骨骼或同时选中多个骨骼,右击打开快捷菜单,选择创建刚体(Create Rigid Body)。
单选:
多选:
为骨骼链条上所有的骨骼创建刚体。在树形视图(Tree View)面板中,选择一个骨骼,右击打开快捷菜单,选择新建当前骨骼及子骨骼刚体(Create Skeleton And Child Skeleton Rigid Body)即可为选中的骨骼和其子骨骼创建刚体。
在弹出的窗口中,按需设置,然后点击OK按钮完成刚体创建。
属性名 | 描述 |
---|---|
碰撞体类型(Collider Type) | 该选项定义新建布娃娃的刚体所使用的碰撞体类型。 |
蒙皮权重(Skin Weight) | 在创建骨骼的刚体时,会搜集与骨骼相关的蒙皮顶点信息,蒙皮权重定义了这些顶点与骨骼混合权重的阈值,混合权重大于这个阈值的顶点才会参与刚体的创建。 |
生成关节(Generate Joint) | 是否自动生成关节。 如果生成关节(Generate Joint) == true,并且已经为当前骨骼的父骨骼创建了刚体,那么会在两个刚体之间自动生成关节。 |
从指定蒙皮网格体创建碰撞(Create From Skin Mesh) | 从指定蒙皮网格体创建碰撞(Create From Skin Mesh)是一个与当前选中骨骼相关的蒙皮列表,用于选择通过哪个蒙皮来创建刚体。 当选中列表中的某一项时,场景(Scene)面板中动画角色相对应的蒙皮就会亮起。通过选择合适的蒙皮来创建刚体。 ![]() 上图左侧为选中蒙皮sk_hermes_male_clothes的效果,右侧为选中蒙皮sk_hermes_male_pants的效果。 |
删除刚体
方法一
通过Delete快捷键删除刚体。在树形视图(Tree View)面板,选中需要删除的刚体,按Delete键删除选中的刚体。
方法二
通过树形视图(Tree View)面板删除刚体。在树形视图(Tree View)面板中选择所要删除的单个骨骼节点,右击打开快捷菜单。
菜单项 | 描述 |
---|---|
删除当前骨骼刚体(Delete Current Bone Rigid Body) | 删除当前选中骨骼节点的刚体。 |
删除子骨骼刚体(Clear Sub Bone Rigid Body) | 清空当前骨骼节点下所有子节点的刚体。 |
删除所有(Delete All) | 删除当前骨骼节点及其子节点的刚体。 |
在树形视图(Tree View)面板中,同时选择所要删除的多个骨骼节点,右击打开快捷菜单选择删除选中的刚体/碰撞体(Delete Selected Rigid Body/Collider)。
添加碰撞体
在树形视图(Tree View)面板中,选中一个骨骼或刚体,右击打开快捷菜单选择添加碰撞体(Add Collider),在弹出的窗口进行参数设置,点击OK按钮完成添加。
添加完成:
删除碰撞体
方法一
通过Delete快捷键删除关节。在树形视图(Tree View)面板或场景(Scene)面板中,选中想要删除碰撞体,按Delete键完成删除。
方法二
通过树形视图(Tree View)面板删除刚体。在树形视图(Tree View)面板中,选中想要删除碰撞体,右击打开快捷菜单,选择删除碰撞体(Delete Collider)。
注意:如果一个刚体仅有一个碰撞体,当这个碰撞体被删除的同时,刚体也会被删除。
新建关节
在树形视图(Tree View)面板中,选中两个需要创建关节的刚体,右击打开快捷菜单,选择创建指定骨骼关节(Create Specified Bone Joint)。
删除关节
方法一
通过Delete快捷键删除关节。在树形视图(Tree View)面板中或者场景(Scene)面板,选择想要删除的关节,按Delete键删除选中的关节。
方法二
通过树形视图(Tree View)面板删除关节。在树形视图(Tree View)面板中,选择想要删除的关节,右击打开快捷菜单,选择删除关节(Delete Joint)删除选中的关节。
编辑刚体属性
在树形视图(Tree View)面板中,选中要进行编辑的刚体。在刚体信息(Rigidbody Detail)面板中可编辑刚体相关属性。
通用刚体属性
属性 | 说明 |
---|---|
刚体类型(Rigid Type) | 刚体类型。 |
名称(Name) | 刚体名称。 布娃娃编辑中,刚体名称与其相对应的动画骨骼名称相同。 |
启用模拟(Enable Simulate) | 指定该刚体是否参与物理模拟。 如果启用模拟(Enable Simulate)== false,刚体不会参与物理模拟。具体表现为与其他参与模拟物体无碰撞,模型位置也不会受到物理的控制。 该设置项并不影响刚体受场景碰撞查询检测。 |
启用控制关节(Enable Control Constraint) | 刚体控制关节开关。 当启用控制关节(Enable Control Constraint) == true,会创建一个特殊的关节与刚体链接。控制关节的位置会始终和骨骼的动画位置保持一致。这个关节的用法完全由用户自行设定,例如:可以在物理动画中,用于约束刚体与动画骨骼之间的相对运动范围,以此解决在一些运动幅度较大的动作中刚体摆动幅度过大的问题。或者通过控制关节,将角色固定在世界空间的某个位置上。 |
其他刚体属性(刚体属性、动态刚体属性)的详细介绍可参考刚体编辑器中的编辑刚体属性部分。
编辑碰撞体属性
在场景(Scene)面板和树形视图(Tree View)面板中,选中要进行编辑的碰撞体。在刚体信息(Rigidbody Detail)面板中可编辑碰撞体相关属性。
有关碰撞体属性的介绍可参考刚体编辑器中的编辑碰撞体属性部分。
编辑关节属性
在树形视图(Tree View)面板中选中需要编辑的关节,在刚体信息(Rigidbody Detail)面板中可编辑其相关属性。
通用属性
属性 | 说明 |
---|---|
关节名称(Joint Name) | 当前选中关节的名称。 |
父骨骼名称(Parent Bone Name) | 当前选中关节父骨骼的名称。 |
子骨骼名称(Child Bone Name) | 当前选中关节子骨骼的名称。 |
禁用碰撞(Disable Collision) | 禁用父子骨骼之间的碰撞。 |
投影
属性 | 说明 |
---|---|
开启投影矫正(Enable Projection Correction) | 投影矫正会将超出线性或者旋转约束的刚体,强制拉回约束范围内。投影是保证关节约束效果稳定的一种非常好用的方法,虽然可能会带来一些不太“物理”的模拟结果。 |
线性公差值(Linear Tolerance) | 当刚体超出约束的距离大于该公差值,投影就会生效。 注意:过小的公差值设置会出现抖动的情况。 |
角度公差值(Angular Tolerance) | 当刚体超出约束的角度大于该公差值,投影就会生效。 注意:角度投影仅适用于两个或三个角度锁定的情况。 |
线性限制
属性 | 说明 |
---|---|
线性运动(X/Y/Z)(Linear Motion (X/Y/Z)) | 用于限制关节子骨骼刚体相对于父骨骼刚体X/Y/Z轴的线性运动。
|
限制范围(Limit Extent) | 指定了子骨骼刚体相对于父骨骼刚体的最大可运动距离。 |
约束激活比例(Active Ratio) | 该值的取值范围为[0,1],值越大关节的约束激活的速度越快,被约束的刚体就越不容易超出约束的范围,同时带来的性能消耗也就越大。 |
断裂阈值(Break Threshold) | 该值决定关节受多大的外力影响后会断裂。 |
弹跳阈值(Bounce Threshold) | 该值定义了导致反弹的最小冲击速度。 |
恢复力(Restitution) | 该值决定刚体达到约束位置后回弹的速度大小。比如值为0时,刚体达到约束位置后就会停止,而该值为1时,刚体会以达到约束位置时的速度回弹。 |
软约束刚度(Stiffness) | 当该值大于0时,关节将开启软约束特性。软约束允许子骨骼刚体超出约束设定的可运动范围。刚体位置超出约束范围后,关节将会产生反方向的力将刚体拉回约束范围内。软约束刚度(Stiffness)的值越大,拉回刚体的作用力就越强。 |
软约束阻尼(Damping) | 当该值大于0时,关节将开启软约束特性。软约束允许子骨骼刚体超出约束设定的可运动范围。刚体超出范围后,关节将会产生反方向的力将刚体拉回约束范围内。软约束阻尼(Damping)的值越大,刚体被拉回约束范围时的阻尼就越大,刚体被拉回约束范围内的速度就越慢。 |
旋转限制
属性 | 说明 |
---|---|
旋转运动(X/Y/Z)(Rotate Motion (X/Y/Z)) | 用于限制关节子骨骼刚体相对于父骨骼刚体X/Y/Z轴的旋转运动。
|
旋转角度限制(X/Y/Z)(Limit Angle(X/Y/Z)) | 指定了子骨骼刚体相对于父骨骼刚体的最大可旋转角度。 |
断裂阈值(Break Threshold) | 该值决定关节受多大的扭矩影响后会断裂。 |
摆动限制
属性 | 说明 |
---|---|
约束激活比例(Active Ratio) | 该值的取值范围为[0,1],值越大关节的约束激活的速度越快,被约束的刚体就越不容易超出约束的范围,同时带来的性能消耗也就越大。 |
弹跳阈值(Bounce Threshold) | 该值定义了导致反弹的最小冲击速度。 |
恢复力(Restitution) | 该值决定刚体达到约束角度后回弹的速度大小。比如值为0时,刚体达到约束角度后就会停止,而该值为1时,刚体会以达到约束角度时的速度回弹。 |
软约束刚度(Stiffness) | 当该值大于0时,关节将开启软约束特性。软约束允许子骨骼刚体超出约束设定的可旋转角度。刚体旋转超出约束范围后,关节将会产生反方向的扭矩将刚体拉回约束范围内。软约束刚度(Stiffness)的值越大,拉回刚体的扭矩就越强。 |
软约束阻尼(Damping) | 当该值大于0时,关节将开启软约束特性。软约束允许子骨骼刚体超出约束设定的可旋转角度。刚体旋转超出约束范围后,关节将会产生反方向的扭矩将刚体拉回约束范围内。软约束阻尼(Damping)的值越大,刚体被拉回约束范围时的阻尼就越大,刚体被拉回约束范围内的速度就越慢。 |
转动限制
属性 | 说明 |
---|---|
约束激活比例(Active Ratio) | 该值的取值范围为[0,1],值越大关节的约束激活的速度越快,被约束的刚体就越不容易超出约束的范围,同时带来的性能消耗也就越大。 |
弹跳阈值(Bounce Threshold) | 该值定义了导致反弹的最小冲击速度。 |
恢复力系数(Restitution) | 该值决定刚体达到约束角度后回弹的速度大小。例如值为0时,刚体达到约束角度后就会停止,而当该值为1时,刚体会以达到约束角度时的速度回弹。 |
软约束刚度(Stiffness) | 当该值大于0时,关节将开启软约束特性。软约束允许子骨骼刚体超出约束设定的可旋转角度。刚体旋转超出约束范围后,关节将会产生反方向的扭矩将刚体拉回约束范围内。软约束刚度(Stiffness)的值越大,拉回刚体的扭矩就越强。 |
软约束阻尼(Damping) | 当该值大于0时,关节将开启软约束特性。软约束允许子骨骼刚体超出约束设定的可旋转角度。刚体旋转超出约束范围后,关节将会产生反方向的扭矩将刚体拉回约束范围内。软约束阻尼(Damping)的值越大,刚体被拉回约束范围时的阻尼就越大,刚体被拉回约束范围内的速度就越慢。 |
线性驱动
属性 | 说明 |
---|---|
线性驱动类型(Linear Drive Type) | 在指定的轴方向上产生一个驱动力,让子骨骼刚体到达指定的目标位置,或者在达到目标速度后做匀速运动。
|
目标位置(Target Pos) | 根据线性驱动类型(Linear Drive Type),设置指定轴方向上的驱动目标位置。 |
目标速度(Target Velocity) | 根据线性驱动类型(Linear Drive Type),设置指定轴方向上的驱动目标速度。 |
位置驱动强度(Pos Drive Strength) | 根据线性驱动类型(Linear Drive Type),设置指定轴方向上将刚体驱动到目标位置的强度。 |
速度驱动强度(Velocity Drive Strength) | 根据线性驱动类型(Linear Drive Type),设置指定轴方向上将刚体驱动到目标速度的强度。 当目标速度(Target Velocity)设置为0时,速度驱动强度(Velocity Drive Strength)可被看作是线性驱动的阻尼。 |
最大驱动力(Max Drive Force) | 限制关节能够产生的最大线性驱动力。 |
旋转驱动
属性 | 说明 |
---|---|
旋转轴(Rotate Axis) | 切换指定驱动目标参数的坐标轴。
|
目标角度(Target Angle) | 根据旋转轴(Rotate Axis),设置指定轴方向上的驱动目标角度。 |
目标速度(Target Velocity) | 根据旋转轴(Rotate Axis),设置指定轴方向上的驱动目标速度。 |
旋转驱动类型(Rotate Drive Type) | 根据关节的旋转限制设置,选择对应的驱动类型,以达到旋转驱动效果。
|
最大驱动力(Max Drive Force) | 限制关节能够产生的最大旋转扭矩。 |
动画驱动
动画驱动参数设置仅在角色布娃娃开启物理动画功能时生效。
属性 | 说明 |
---|---|
动画驱动刚度(Anim Drive Stiffness) | 物理动画播放时,关节驱动刚体到达骨骼动画位置的强度。 |
动画驱动阻尼(Anim Drive Damping) | 物理动画播放时,关节驱动刚体到达骨骼动画位置的阻尼。 |
受父骨骼支配(Parent Dominates) | 当勾选此选项时,所有关节父骨骼质量及惯性,相对于子骨骼是无限大的。 与此同时,也很难再通过关节的子刚体,影响其父刚体位置。 |
父骨骼质量缩放系数(Parent Mass Scale Coefficient) | 缩放关节父刚体的质量。 合理的缩放系数可提升物理动画效果。 |
父骨骼惯性缩放系数(Parent Inertia Scale Coefficient) | 缩放关节父刚体的惯性。 合理的缩放系数可提升物理动画效果。 |
子骨骼质量缩放系数(Child Mass Scale Coefficient) | 缩放关节子刚体的质量。 |
子骨骼惯性缩放系数(Child Inertia Scale Coefficient) | 缩放关节子刚体的惯性。 |
保存/另存为布娃娃编辑
功能 | 说明 |
---|---|
另存为(Save As) | 将当前编辑的布娃娃,存为另外一个由用户指定名字的布娃娃配置。 |
保存(Save) | 保存当前布娃娃编辑。 |
模拟
功能 | 说明 |
---|---|
模拟(Simulate) | 点击按钮开始或者结束模拟。 根据开始模拟时场景中选中刚体/关节的数量,分为以下几种模拟方式:
|
布娃娃预设
针对不同的角色动作的物理动画实现,可能需要不同的布娃娃配置(比如角色死亡、攀爬、游泳、驾驶载具等)。布娃娃预设为布娃娃提供了创建和切换不同布娃娃配置的功能。
Property | Description |
---|---|
当前预设(Current Preset) | 用于在布娃娃编辑器中,切换布娃娃预设配置。 |
添加新预设(Add New Preset) | 创建并添加一个新的布娃娃预设。 |
移除当前预设(Remove Cur Preset) | 移除当前预设(Current Preset) 选择的布娃娃预设类型。 |
选中刚体(Select Rigids) | 选中当前预设(Current Preset)中所有的刚体。 |
选中关节(Select Joints) | 选中当前预设(Current Preset)中包含的所有关节。 |
选中控制关节(Select Control Joints) | 选中当前预设(Current Preset)中包含的所有控制关节。 |
添加新布娃娃预设
在场景(Scene)面板中点击空白处,然后在刚体信息(Rigidbody Detail)面板中,点击添加新预设(Add New Preset) 的创建(Create)按钮,在弹出的窗口中输入布娃娃的预设名称,点击OK按钮完成添加,当前编辑的布娃娃会自动切换到新的布娃娃预设下。
Property | Description |
---|---|
预设名称(Preset Name) | 新建的布娃娃预设名称。 |
添加完新的预设之后,工具栏中会出现两个新的功能按钮:添加至布娃娃预设(Add To Ragdoll Preset)和从布娃娃预设中移除(Remove From Ragdoll Preset),并且此时树形视图(Tree View)面板中的树节点都会变成灰色。
Button | Description |
---|---|
添加至布娃娃预设(Add To Ragdoll Preset) | 将当前选中的刚体/关节添加至当前的布娃娃预设中。 默认预设(Default),默认包含布娃娃所有的骨骼和关节。 |
从布娃娃预设中移除(Remove From Ragdoll Preset) | 将当前选中的刚体/关节从当前的布娃娃预设中移除。 |
向预设中添加刚体和关节。在场景(Scene)面板或者树形视图(Tree View)面板中,选中刚体/关节,点击添加至布娃娃预设(Add To Ragdoll Profile) ,将选中的刚体/关节添加至当前的布娃娃预设中。
被添加到布娃娃预设中的刚体/关节,在树形视图(Tree View)面板中,相应的树节点颜色会亮起。
注意: 在当前预设中编辑不在预设内的刚体/关节属性,相当于修改默认预设(Default) 中刚体/关节的属性配置。
布娃娃编辑流程
通过下面的流程可得到一个效果稳定的布娃娃。
新建布娃娃并删除多余刚体
新建布娃娃后,每一根骨骼都会被创建刚体。在刚体信息(Rigidbody Detail)面板的 编辑设置(Edit Settings)下勾选显示骨架(Show Skeleton)可显示角色的整个骨架。取消勾选显示模型(Show Model)后可清楚看到整个骨架。
根据删除刚体部分,将不需要的刚体进行删除(例如角色手指骨骼的刚体)。
删除完成:
调整碰撞体及关节位置
调整碰撞体的位置和大小直至其适合蒙皮。在树形视图(Tree View)面板中选中所要修改的碰撞体,然后在刚体信息(Rigidbody Detail)面板的几何体(Geometry)和位置(Locations)中调整碰撞体的大小和位置,也可以通过场景(Scene)面板中的切换坐标轴编辑模式按钮来调整碰撞体的大小和位置。若觉得碰撞体原有的几何体不适合蒙皮,可参照删除碰撞体将原有的碰撞体删除,然后再根据添加碰撞体添加一个包含其他几何体形状的碰撞体。
调整关节使其对齐动画骨骼的位置。在场景(Scene)面板或者树形视图(Tree View)面板中选中需要调整的关节,通过场景(Scene)面板中的切换坐标轴编辑模式按钮调整其位置。
将刚体调整到适合蒙皮的位置和大小。
调节完毕后, 点击模拟(Simulate)按钮进行一次模拟,如果角色正常掉落在地面上就可进入下一步设置。如果布娃娃表现错误(如在空中飞舞),则应该检查是否有两个刚体相互陷入的情况。
正常掉落:
出现空中飞舞:
出现刚体相互陷入,模拟表现错误,如下图:
出现相互之间有碰撞且相互陷入的骨骼是模拟表现错误的主要原因。
根据上图可以看出,骨骼1和骨骼2的刚体相互陷入,但这两个骨骼被一个关节所连接在一起,该关节默认屏蔽两根骨骼之间的碰撞。然而,骨骼1的刚体同时还与骨骼3、骨骼4的刚体相互陷入,并且骨骼1与它们之前没有关节将其连接在一起,所以骨骼1和骨骼3、骨骼4之前存在碰撞。这就导致了模拟表现错误。
重要的刚体属性
选中刚体,在刚体信息(Rigidbody Detail)面板的刚体属性(RigidBody Property)选项下编辑下方属性。
属性 | 说明 |
---|---|
质量(Mass) | 从骨骼树末端的刚体开始,依次设置刚体质量。 要求一个关节的子刚体的质量,必须小于父刚体的质量,这样可以使关节效果稳定。 父子刚体之间的质量比可设定在2~10倍左右。 |
最小位置迭代次数(Minimum Position Iterations) | 取值32左右会有一个较好的效果。 可以通过不断的模拟调试来测试出合适的值。 该值越大模拟消耗越大。 |
最小速度迭代次数(Minimum Velocity Iterations) | 取值32左右会有一个较好的效果。 可以通过不断的模拟调试来测试出合适的值。 该值越大模拟消耗越大。 |
重要的关节属性
选中关节,在刚体信息(Rigidbody Detail)面板中编辑下方属性。
属性 | 说明 |
---|---|
旋转限制(Rotation Limit) | 正确设置每个关节的旋转限制是必须的。 |
投影(Projection) | 启用关节投影可以极大的提高关节的稳定性。 |
注意:
- 编辑的同时,可不断通过对单个关节进行模拟,来查看约束效果。
- 可以先编辑角色身体一侧的关节约束,然后通过树形视图(Tree View)面板的右键菜单提供的复制粘贴功能,将身体一侧关节的编辑,复制到身体的另一侧。
调节物理动画效果
选中关节,在刚体信息(Rigidbody Detail)面板的动画驱动(Animation Drive)选项下编辑下方属性。
属性 | 说明 |
---|---|
动画驱动刚度(Anim Drive Stiffness) | 这两个属性是物理动画的基础属性值,初始值可分别设置为10000和1000。 |
动画驱动阻尼(Anim Drive Damping) | |
父骨骼支配(Parent Dominates) | 这三个属性都可以用于解决物理动画与动画数据的位置差异问题。区别是开启父骨骼支配(Parent Dominates)后,相当于是将父骨骼质量缩放系数(Parent Mass Scale Coefficient)和父骨骼惯性缩放系数(Parent Inertia Scale Coefficient)设置为0(0相当于无穷大的值)。 |
父骨骼质量缩放系数(Parent Mass Scale Coefficient) | |
父骨骼惯性缩放系数(Parent Inertia Scale Coefficient) |