PhysBones

前言

官方消息:原动骨插件最终将被全部移除,将全部自动转为新动骨

自动转换

将带动骨的模型拖入场景,选择模型后点击上方“VRChat SDK-Utilities-Convert DynamicBones to PhysBones”

注意:毕竟只是自动转换,Dynamic Bones和PhysBones并不相同,肯定会有不完美的地方 (指很多bug)

正文

添加PhysBones

在想要“动”的骨骼(例如头发,裙子等)上添加组件“VRC Phys Bone”即可

添加组件后可以看到模型上有白线,就是“静止位置”

以下所述内容建议亲自尝试,毕竟文字表述没有自己上手实验所带来的视觉反馈强

一、Transforms

image.png

Root Transform

动骨的根位置,若不添加则为组件所在位置

Ignore Transforms

如果动骨所在位置下方有子骨骼,但部分子骨骼不想让它跟着此动骨动,可将其拖到此处

例如:尾巴在裙子骨骼下,不想尾巴”动”的效果和裙子一样可拖入此处

Endpoint Position

动骨结束位置,一般不需要设置。(在骨骼末端创建额外的骨骼)

需要设置的情况:例如裙子很长但只有一个骨骼,可修改此项使动骨达到裙子末端一般只需要动“Y轴”,而且是个正值,具体如下:

一般裙子骨骼如下(不需要设置) 只有一个骨骼(可能需要设置)
父级“Hips”下子集“Skirt_A1_L”还有子集 父级“Hips”下子集“Skirt1”无子集
   

Multi Child Type

当前骨骼多子骨骼情况下,父级骨骼位置,一般“忽略”即可

二、Forces

Integration Type

选择简单模式或高级模式,此部分数值可以在播放模式调整测试效果

关于后面的C:数值将根据设定的曲线改变

简单(Simplified) 高级(Advanced)

image.png

image.png

较稳定,容易配置,对外部冲击和力量反应较小 不稳定,但允许更复杂的配置,对外部冲击和力量反应敏感
Pull(拉力)
将动骨拉回“静止位置”的力量,数值越大,力量越大(裙子越不容易动)
Spring(弹性) Momentum
动骨回到“静止位置”的摇晃程度 Spring,具体效果请自行尝试
  硬度(Stiffness)
  使动骨保持在“静止位置”的强度,值越大越强
Immobile
动骨对骨骼的影响程度。值为1时不影响骨骼,即骨骼一直在“静止位置”,只有碰撞和抓取时才生效
重力(Gravity)
重力对骨骼影响,小于0则反重力(裙子上飘)
Gravity Falloff(重力衰减)
只有在上一项“重力”不为0时可用,控制重力对动骨“静止位置”的影响,值为1时不影响

参考参数

image.png

来源:https://youtu.be/PTTnWUkswkU

三、Limits(限制)

此部分为动骨移动范围的限制,可以用于防穿模,比碰撞更高效

当添加限制时,在场景里有一个可视化图形用于辅助,此部分数值调整可在场景看到效果

若为无(None)则没有限制

1)角度(Angle)

image.png

骨骼移动范围为圆锥型

image.png

2)Hinge(合页)

image.png

骨骼移动范围为一个平面

image.png

3)Polar

image.png

在上一个类型“Hinge(合页)”的基础上多一个轴可移动,不过此类型占用性能过大,官方建议尽量避免使用

image.png

四、Collision(碰撞)

image.png

添加碰撞

添加碰撞在相应骨骼下创建空物体后添加组件“VRC Phys Bone Collider” (例如腿部骨骼添加空物体“腿部碰撞”)

image.png

推荐使用**Insider Bounds(内碰撞)**添加,更好的控制动骨移动范围,防止穿模

个人见解:小范围移动用外碰撞,大范围移动用内碰撞

碰撞添加至动骨

直接将此空物体拖入动骨的碰撞器即可(例如腿部碰撞拖入裙子动骨)

作用

防穿模,播放模式下可看到效果(例如裙子被腿部碰撞撑起来)

五、Grab & Pose(抓取和定位)

image.png

六、Options

image.png

参数(Parameter)

此处设置一个字符串可创建一些参数(将填入数值替换下方{parameter})用于实现一些效果

例如在“参数(Parameter)”后填入“Hello”,想要使用这些参数则使用“Hello_IsGrabbed”、“Hello_Angle”和“Hello__Stretch”

Is Animated

允许骨骼变换被动画控制,骨骼的“静止位置”将允许被动画改变

七、Gizmos

image.png

八、注意事项

一个动骨插件最大可实现256个变化,如果骨骼过多,请分开加动骨组件,不要直接在根骨骼添加组件 (不会真有人这么加吧,不会吧)


Revision #2
Created 3 April 2024 07:34:52 by 可可脂
Updated 3 April 2024 09:31:29 by 可可脂