Help us understand the problem. What is going on with this article?

VCIでラグドールを作る(Lua不要)

More than 1 year has passed since last update.

概要


これの作例を書きます。

作例

image.png
まず掴むためだけのサブアイテムを作ります。何故こんなことをしたかは後述の注意をご覧ください。
image.png
人型のrootにFixed Jointを付けて先の掴む用オブジェクトをConnected Bodyに指定します。
image.png
後は各関節構造に従って順にHinge JointのConnected Bodyを指定します。関節のオブジェクト?を外に引っ張り出す必要はありませんが、この方が作業しやすかったです。なお、これらの関節部分にサブアイテムを付ける必要はありません。付けても良いですが、合わせて必要になるであろうコライダーを追加すると物理が暴れやすくなります。
image.png
image.png
仕上げに各関節の可動範囲(Hinge JointのUse LimitをONにしてLimitのMinとMaxを設定)を指定します。図のガイドはEdit Joint Angular Limitsの左のボタンを押すと表示されます。図のように全部見たければ対象を複数選択してから押せば図のように表示されます。
image.png
MinとMaxが左右で同じ値を使えない場合(設定しても反対側を向く時)はAxisの値をマイナスにすると良いかもです。

可動範囲参考値

首:-30~30
腕:-60~80
肘:0~60
手首:-30~30
足:-120~30
膝:0~140
足首:-60~45

捕捉

image.png
足と手は垂直・水平だと流石に違和感があるので少し角度を付けました。この場合、Hinge JointのAxisの値を小数点単位で調整して角度を合わせています。
image.png
左腕の例

注意


原因は良く分かっていませんが、人型のrootに直接サブアイテムとコライダーを入れて掴むと暴れてしまいました。

余談

アリシアさんのFBX(VRMではない)をVCIで取り込んでバーチャルキャスト内で表示すると、右腕が左側にめり込む謎現象が発生するので、一度VRMに変換してVRM系コンポーネントを全部削除して使っています。一度VRMを通ると関節角が正規化されるのでこの効果を期待した所、右腕の不具合?を回避できました。可動範囲の参考値もVRMの正規化が適用されていれば、別モデルでも同じ値が使えるかもしれません。
作例では表情が付いていますが、アニメーションで対応しています。

関連

ニコニ立体ちゃん(アリシア・ソリッド)
https://3d.nicovideo.jp/alicia/
Cube Room
https://poly.google.com/view/1fahMeqZOw_
生贄モデル(暴れてた子)
https://3d.nicovideo.jp/works/td33034
VCIで人型の関節を動かす
https://qiita.com/120byte/items/485e38c935ddc547bb63
VCIで人型の関節を動かす2
https://qiita.com/120byte/items/44c1f024f9133f0bf050

© Unity Technologies Japan/UCL

120byte
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away