Skip to content

Catch Object

gpsnmeajp edited this page Nov 3, 2019 · 6 revisions

物を掴みたい

互換性情報

以下は本スクリプトと併用できます。

  • 簡易的にVR(一人称視点)にする方法
  • 空間をゲームのように移動したい

やり方

サンプルスクリプトがあります。
以下の手順で行ってください。

いつもどおりにEVMC4Uをセットアップしてください

まず普通に動かないことには動きません

2つともダウンロードし、Unityに入れてください。両方使います。
EVMC4U_HandCatch.csは設定用、EVMC4U_HandCatch_Helper.csは入れておくだけで効果が出ます。

ExternalReceiverに追加

ExternalReceiverに、以下のように追加します。

Prefabが云々のエラーが出る場合は、以下のUnpack操作をしてください。

動作確認

正常に動いている場合、両手に白い玉が出ます。
シーンにCubeなど動かしたいものを置いてください。
Colliderが設定されている物体に接触すると水色になります。

コントローラのトリガを引く、あるいはキーボードのZ,Xキーを押すと掴みます。
離すと離れます。

この際、現状の仕様では親子関係を破壊します。
持てる親にのみColliderを設定してください。
(あるいはスクリプトを編集しタグ関係などを設定してください)

実用

Show Colliderをオフにすると、玉は見えなくなります。
Hold Filterは、手ブレ防止設定です。持っているときと持っていないときで手ブレ補正値を変えることができます。
初期値はカメラを持つ前提にかなりきついフィルタになっています(0.9)。
物を持って遊びたい場合は0でも構いませんが、0.7くらいかけておくと手ブレが写りにくくなります。

#5577026での更新


物理演算している対象をつかめるように変更。
親子関係を破壊しないように変更。
固定時間に変え、フレーム間速度を算出するように。
速度を算出して投げられるように。
気持ちよく投げるための係数を追加。
余計なものを掴まないようにするためのタグを追加。

Collision Tagに文字列を入れると、同じTagが設定された物体しかつかめなくなります。
タグとは↓のことです。

また、Speed Multiplierに1.0以上の値を入れると、投げるときの速度にブーストが掛かります。
1.0だとだいたい気持ちよくないので、5.0とか10.0とか入れるといい感じに投げられます。