#はじめに
こちらの記事はVCI Advent Calendar 2021の第5日目の記事です。
今回はすぐに忘れてしまうHinge Jointの設定をメモ代わりに書いていこうと思います。
VCI作成者でHinge Jointを使おうと思ったのに、なんもわからん時に見ていただけると嬉しいです。
#VCIでオブジェクトを動かしてみたい
3Dのオブジェクトをバーチャルキャストで動かしてみたいときに、VCIにLuaを入れて動かすのが一般的です。
でも、Luaを入れなくてもそれなりに動くVCIを作ることはできます。
今回はLua無しで、UnityのHinge Jointを使って銃の的を作ったお話です。
#Hinge Jointで何ができる?
Hinge JointはJointの中にある設定でできます。
代表的な使い方は、ドアの蝶番なんかの動きになります。
VCIで有名なのは公式さんのサンドバックが有りますね。
#銃の的を考える
銃の的を作るときは、何かが当たったときにドアが開くようなイメージです。
Luaで作ろうと思うと、当たり判定、角度計算なんかで結構大変です。
UnityのHinge Jointを使うと銃の的をこんな感じで作ることができます。
・銃の弾などが当たると、的が動く
・動いた的がもとに戻る
それだけです。
#銃の的の構成
Unityだけで作れる簡単な構成になっています。
TargetBaseがSubItemで土台と棒、Quad01-04が的になっています。
Quadの方は適当なテクスチャを貼り付けて的っぽくしておきます。
#Hinge Jointの設定
Hinge Jointは的の方(Quda01-04)に入れます。
Quad01内のHinge Hointの設定です。
Connected Body:今回は土台となる"TargetBase"のSubItemを設定します。土台が親になります。
Anchor:Hingeの回転の根元の座標を設定します。
Axis:回転方向です。今回はY軸を中心に回します。
Auto Conifure…:ここのチェック外してConnected Anchorを設定します。
Connected Anchor:アンカーの位置です。ここは的のY軸の値を入れています。
Use Spring:的が動いた後に自動で戻すのでONにします。
Spring:今回はSpringの強さを0.5で設定しています。
Motor:VCIでは使えません
Use Limits:回転の上限下限を設定できます。
適当に飛ばして。
Mass Scale:的の重さになります(たぶんそんな感じ)、的の値は最小値に設定。
Connected Mass Scale:親側のTargetBaseの重さです。
最後の2個のMassの設定をすることで、TargetBaseをつかんでもプルプルしない設定にすることができます。
#的をもっと多機能にしたい
当たったときにポイントを入れる、当たったときにエフェクトや音を出したい。
なんて思った方は、Luaで作成してください。
的もSubItemで作っているので、判定も簡単に追加できるかもしれません。
#問題点
簡単に作れるものは何か問題があります。
この銃の的は所有権を持ってないとちゃんと動きません。
所有権を持った状態で銃を使ってください。
#おわりに
今回作成した銃の的をTSOにアップしましたのでご参考に。
銃とかの的
Hinge Jointは使い方でいろいろ遊べると思いますので、いろいろやってみてください。
それでは、まったね~。