庭子 v01.40 で使用した踊れるスカートのボーン設定を説明します。
コンセプトはタイトに体に追従する膝丈スカートです。踊っているアバターのスカートを観察すると、スカートから足がはみ出るのを目立たせないよう、ミニスカートにしたり、お椀型スカートにしてスカート布と足の間の空間を広めに取ったりしています。今回の庭子では膝丈くらいの少し長めで足に追従するスカートを目指してみました。
庭子アバターらしく半透明大好きですので、素体ボディも縮小せずに突き抜け破綻しない(90%破綻無し目標)設定を目指しました。まだ納得いっていない部分もあるので、引き続き模索していく予定です。将来アップデートする可能性ありますがv01.40での設定をここに記しておきます。
多くのスカートボーンはhipボーンの子ボーンとして構築しているようです。庭子ではキレイにダンスするアバター目指しているので、少し工夫してみました。左右の足は大きく開くこと前提、それにタイトにスカートが追従して欲しい。なのでupperleg.Lにskirt.ROOT.Lを置きスカートボーンの左半分(4組)を、upperleg.Rにskirt.ROOT.Rを置きスカートボーンの右半分(4組)を子ボーンとして設定しました。
これで基本的にスカートの左半分はupperleg.Lに追従し、右半分はupperleg.Rに追従します。それぞれのスカートボーンは下記の4本構成です。
(左側FRONTを例として)
skirt.ROOT.L(変形なし)→skirt.FRONT.001.L→skirt.FRONT.002.L→skirt.FREONT.END.L(変形なし)
スカートボーンの上の方(001のついているスカートボーン:skirt.*.001.L/R)は長めにしています。スカートが少し固い印象になりますが、突き抜け破綻なく制御するために、スカートボーン段数をあまり増やしたくなくてこうなりました。2段目ボーン(skirt.*.002.L/R)でスカートのフワッと感を出しました。将来、もう一段くらい分割したい(001, 002, 003くらい)とは思っています。
ウェイトは手塗りで下図のようにぬりました。xミラーしてますので、8本塗れば終わりです。それなりにぬればほとんど問題無いでしょう。
次にUnity側設定です。
upperleg.L/Rの両方にコライダーを入れ、skirt.ROOT.L/R両方にPhysBone設定します。
upperleg.L/Rのコライダー設定は下記の通り。カプセル型を選択しました。
skirt.ROOT.L/RのPhysBone設定は下記。Max Angleを15度と小さめにして突き抜け破綻しないよう制御しやすくしました。コライダーにはupperlegを設定します。
PhysBone、コライダーの動作はこんな感じです。