官方消息
原动骨插件最终将被全部移除,将全部自动转为新动骨
关于自动转换 #
将带动骨的模型拖入场景,选择模型后点击上方“VRChat SDK-Utilities-Convert DynamicBones to PhysBones”
注意:毕竟只是自动转换,Dynamic Bones和PhysBones并不相同,肯定会有不完美的地方 (指很多bug)
添加PhysBones #
在想要“动”的骨骼(例如头发,裙子等)上添加组件“VRC Phys Bone”即可
添加组件后可以看到模型上有白线,就是“静止位置”
以下所述内容建议亲自尝试,毕竟文字表述没有自己上手实验所带来的视觉反馈强
一、Transforms #
Root Transform #
动骨的根位置,若不添加则为组件所在位置
Ignore Transforms #
如果动骨所在位置下方有子骨骼,但部分子骨骼不想让它跟着此动骨动,可将其拖到此处
例如:尾巴在裙子骨骼下,不想尾巴”动”的效果和裙子一样可拖入此处
Endpoint Position #
动骨结束位置,一般不需要设置。(在骨骼末端创建额外的骨骼)
需要设置的情况:例如裙子很长但只有一个骨骼,可修改此项使动骨达到裙子末端一般只需要动“Y轴”,而且是个正值,具体如下:
一般裙子骨骼如下(不需要设置) | 只有一个骨骼(可能需要设置) |
---|---|
父级“Hips”下子集“Skirt_A1_L”还有子集 | 父级“Hips”下子集“Skirt1”无子集 |
Multi Child Type #
当前骨骼多子骨骼情况下,父级骨骼位置,一般“忽略”即可
-
忽略:不添加骨骼
-
First:子骨骼中第一个骨骼作为父骨骼的终点
-
Average:所有子骨骼的起点的平均位置作为父骨骼的重点
二、Forces #
Integration Type #
选择简单模式或高级模式,此部分数值可以在播放
模式调整测试效果
关于后面的C
:数值将根据设定的曲线改变
简单(Simplified) | 高级(Advanced) |
---|---|
较稳定,容易配置,对外部冲击和力量反应较小 | 不稳定,但允许更复杂的配置,对外部冲击和力量反应敏感 |
Pull(拉力) | |
将动骨拉回“静止位置”的力量,数值越大,力量越大(裙子越不容易动) | |
Spring(弹性) | Momentum |
动骨回到“静止位置”的摇晃程度 | 同Spring ,具体效果请自行尝试 |
硬度(Stiffness) | |
使动骨保持在“静止位置”的强度,值越大越强 | |
Immobile | |
动骨对骨骼的影响程度。值为1时不影响骨骼,即骨骼一直在“静止位置”,只有碰撞和抓取时才生效 | |
重力(Gravity) | |
重力对骨骼影响,小于0则反重力(裙子上飘) | |
Gravity Falloff(重力衰减) | |
只有在上一项“重力”不为0时可用,控制重力对动骨“静止位置”的影响,值为1时不影响 |
参考参数 #
来源: https://youtu.be/PTTnWUkswkU
三、Limits(限制) #
此部分为动骨移动范围的限制,可以用于防穿模,比碰撞更高效
当添加限制时,在场景里有一个可视化图形用于辅助,此部分数值调整可在场景
看到效果
若为无(None)
则没有限制
1)角度(Angle) #
骨骼移动范围为圆锥型
-
Max Angle:最大角度
-
Rotation:调节限制的范围,具体自己调节即可知晓
-
Pitch(俯仰):Y-Z轴平面调整
-
Roll(旋转):X-Z轴平面调整
-
Yaw(偏移):X-Y轴平面调整
2)Hinge(合页) #
骨骼移动范围为一个平面
-
Max Angle:最大角度
-
Rotation:参考 角度 (Angle)的介绍
3)Polar #
在上一个类型“Hinge(合页)”的基础上多一个轴可移动,不过此类型占用性能过大,官方建议尽量避免使用
-
Max Pitch:可移动角度,类似“Hinge(合页)”的“Max Angle”
-
Max Yaw:新轴的范围
-
Rotation:参考 角度 (Angle)的介绍
四、Collision(碰撞) #
-
半径(Radius):碰撞球的半径
-
Allow Collision:勾选则允许其他玩家碰撞(触碰)此骨骼
-
碰撞器(Colliders):如添加其他骨骼碰撞,则会显示于此,如将腿部碰撞拖入裙子动骨此处。大小为数量
添加碰撞 #
添加碰撞在相应骨骼下创建空物体后添加组件“VRC Phys Bone Collider” (例如腿部骨骼添加空物体“腿部碰撞”)
-
Root Transform:碰撞所在位置,不添加则为组件所在位置
-
Shape Type:类型,可以选“球体”、“胶囊”或“平面”
-
Insider Bounds:勾选则相应动骨只能在此范围内运动
推荐使用**Insider Bounds(内碰撞)**添加,更好的控制动骨移动范围,防止穿模 个人见解:小范围移动用外碰撞,大范围移动用内碰撞
碰撞添加至动骨 #
直接将此空物体拖入动骨的碰撞器即可(例如腿部碰撞拖入裙子动骨)
作用 #
防穿模,播放模式下可看到效果(例如裙子被腿部碰撞撑起来)
五、Grab & Pose(抓取和定位) #
-
Allow Grabbing:允许其他玩家抓取此骨骼
-
Allow Posing:允许其他玩家抓取后将其定位
-
Grab Movement:控制抓取的骨骼如何移动。数值为”0″将通过“Forces”设置参数移动,数值为“1”则立即移动
-
Max Stretch:骨骼被抓取时可以被拉伸的最大长度
六、Options #
参数(Parameter) #
此处设置一个字符串可创建一些参数(将填入数值替换下方{parameter})用于实现一些效果
-
{parameter}_IsGrabbed:Bool类型,骨骼是否被抓住
-
{parameter}_Angle:Float类型,取值0.0~1.0,骨骼被扭转的角度,如果被扭转180度即和原骨骼方向相反则为1.0
-
{parameter}_Stretch:Float类型,取值0.0~1.0,骨骼被拉伸的长度与最大长度的百分比,如最大长度为10,当被拉到5时,此参数为0.5
例如在“参数(Parameter)”后填入“Hello”,想要使用这些参数则使用“Hello_IsGrabbed”、“Hello_Angle”和“Hello__Stretch”
Is Animated #
允许骨骼变换被动画控制,骨骼的“静止位置”将允许被动画改变
七、Gizmos #
-
Show Gizmos:显示动骨和限制
-
Bone Opacity:骨骼不透明度,值为0透明(看不见),值为1不透明(最清晰)
-
Limit Opacity:限制不透明度,同上
八、注意事项 #
一个动骨插件最大可实现256个变化,如果骨骼过多,请分开加动骨组件,不要直接在根骨骼添加组件 (不会真有人这么加吧,不会吧)