9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VRChatでPhysBonesを使って銃のスライドをスライドする

Last updated at Posted at 2022-04-24

やりたいこと

表題の通りです。
参考動画、前半のやり方です。

①用意するもの

・銃の3Dモデル(スライド部分にボーンが入っているもの)

今回はこちらのモデルをお借りしました。

・親子関係のオブジェクト
画像では分かりやすいように立方体と球で表示していますが、自分がわかればなんでもいいです。
同じように立方体と球を目印とつかう場合はコライダーを抜くのを忘れずに。
スクリーンショット 2022-04-25 003607.png

②位置合わせ

親子オブジェクトを銃オブジェクトに入れます。
この時の親子オブジェクトの向きは非常に重要です。しっかりとスライドに沿った向きで、また、親オブジェクトが前、子オブジェクトが後ろに来るように配置してください。
この親子オブジェクトを配置した場所が、握って引く判定部分になるのでスライドに重なるか、ちょっと上ぐらいがおすすめ。
image.png

③PhysBoneの設定

親子オブジェクトの親にPhysBoneを追加してください。
設定は画像の通りに。
スクリーンショット 2022-04-25 022221_LI.jpg
Forces……Pullを1に設定することで初期位置に戻る力を強く、Springを0にして余計な動きをしないように、Immobileは1にして動かしても余計な力が働かないように。
Limits……ボーンの可動域の設定。Angleに設定して0度にすることで動かないように。
Collision……手で掴む判定の大きさ。お好みで。
Max Stretch……ボーンの伸びる距離=銃のスライドの稼働距離

④Constraintの設定

銃のスライダーのボーンにPosition Constraintを追加。
設定は画像の通りに。
もし、この設定をした後に、親子オブジェクトを動かしたりしたくなった場合は、必ずIs Activeのチェックを外してから移動させること。移動させた後にActivateを押しなおすのを忘れずに。
image.png

以上です。あとはこの設定をした銃をアバターの手に持たせて、もう片方の手でスライダーを握ればスライドアクションができるはずです。

Q&A的な

Q,スライドの可動域を調整したい
A,PhysBoneのMax Stretchの値を弄ってください。

Q,スライドの方向以外に引っ張ってもスライドされる
A,多分仕様です、あきらめてください。

Q,銃を持った方の手を握りこむと、スライドが引けなくなる
A,どうもPhysBone一つにつき握れる手はひとつらしいです。銃を持った方の手は握りこまないようにするか、判定を小さくしたり少し移動させたりしてみてください。

Q,VRCでうまく動かないけどどこが駄目なんだろう
A,ExMenuのアバターセッティングからPhysBoneを可視化できるデバックモードがあります。そっちで見るとボーンを掴めてるか、引っ張った時にどんな挙動をしてるかが確認できます。

おわり

一方向に移動する系のギミックは軒並み同じ方法で実装できると思います。電気の紐とか、棚の引き出しとか。
そのうちもっといい方法が出てくるといいね。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?