だいたい5倍速い!FastSpringBoneのご紹介!!
こんにちは。プログラマーのnotargsです。 実はちょっと前に、揺れものを高速化する「FastSpringBone」をリリースしていました!\な、なんだってー!/
どうやって使うの?
config.jsonに下記の項目を追加してください。
1 2 3 4 5 |
{ "humanoid": { "use_fast_spring_bone": true } } |
動作速度の比較
試しに、アリシアソリッドちゃんを100人並べて動作速度を見てみます。
こちらが従来のVRMSpringBoneで、処理におよそ5.4ミリ秒かかっています。
こちらが新しいFastSpringBoneです。なんと1/5の時間の1.142ミリ秒で処理が終わっています!
どうやっているの?
Unity2018から追加された「JobSystem」という仕組みを使っています。 髪の毛束ごとに並列で演算することで、メインスレッドの負荷を下げつつ高速化しました。
注意点
FastSpringBoneを有効化すると、下記のモデルについて、揺れものがプルプルするなど、多少挙動が変わってしまいます。
- VRM Export時にPose Freezeされていないモデル
- VRMSpringBoneのRootBonesが入れ子状に設定されてしまっているモデル
該当する方はお手数ですが、下記の対応を行ってください。
VRM Export時にPose Freezeされていないモデルの場合
VRM Export時にPose Freezeを行ってください。
VRMSpringBoneのRootBonesが入れ子状に設定されてしまっているモデルの場合
RootBonesが入れ子になってしまっているモデルは想定されていないため、揺らしたい房の根本のBoneのみをRootBoneとして設定する形に修正してください。
- Tag