リジッドボディとコライダーの組み合わせ - shinchan-dot/VRCAviation-memo GitHub Wiki
乗り物にはたいていリジッドボディが入っている。
乗り物以外でも、重力で落ちる物には入っている。
重力で落ちなくても、アバターが持てる物には入っている。
リジッドボディが入っている物にコライダーを追加する方法は3つあって、それぞれ長所短所がある。
いずれの方法も、コライダーに乗ったアバターは動きに付いてこない。
付いてこさせるためにはかなりの工夫が必要らしい。
いずれの方法も、乗せる物と乗せられる物のオーナーが違うと暴れる。
1.
リジッドボディを持つオブジェクトの子に、コライダーを持つオブジェクトを入れる。
こうすると、子オブジェクトに乗ったアバターがコライダーの端で吹き飛ばされるという問題がある。
別の物: 乗せられる
乗せた物が動きに: 追従する
アバター: 乗れる
乗ったアバターが動きに: 追従しない
その他: アバターが端で吹き飛ぶ
用途: Sacc機体に、物を乗せて運べる床を追加するとか。レイヤーがSacc機体と同じWalkthroughならアバター吹き飛びは問題にならない。
2.
リジッドボディを持つオブジェクトの子に、コライダーとリジッドボディを持つオブジェクトを入れる。子のリジッドボディはisKinematicにする。
こうすると子オブジェクトに乗ったアバターが吹き飛ばされない。
ただし、子オブジェクトに乗せた別の物が動きに取り残される。
また、親と子のコライダーを離しておかないと動きがおかしくなる。
さらに、子が他のコライダー(リジッドボディが入っていない物?)をすり抜ける。
別の物: 乗せられる
乗せた物が動きに: 追従しない
アバター: 乗れる
乗ったアバターが動きに: 追従しない
その他: 親子のコライダーを離す必要あり、他のリジッドボディ無しコライダーと衝突しない
用途: Sacc機体に、アバターが乗れる床を追加するとか。
3.
リジッドボディを持つオブジェクトの子に、コライダー無しのオブジェクトを入れ、子の分のコライダーは親のコンポーネントとして追加する。
こうすると子オブジェクトに乗ったアバターが吹き飛ばされない。(リジッドボディに対してコライダーを持つ「オブジェクト」が1つなら吹き飛ばないってこと?)
ただし、子のコライダーを単独で回転させることができない。
別の物: 乗せられる
乗せた物が動きに: 追従する
アバター: 乗れる
乗ったアバターが動きに: 追従しない
その他: コライダーがすべて同じ向きになる
用途: 持ち運べる物に、アバターが乗れる部分を追加するとか。普通のSacc機体に追加する場合はレイヤーがWalkthroughになるので1.のほうが良いかも。