VRChatチュートリアル No.2 物を拾ったり出したりしよう

お久しぶりです

もう3か月もたってたら前のチュートリアル読んでる人たちがワールド作りまくってそうですが一応続き書いておきます。 やるって宣言しちゃってたので。

 

前回は椅子と鏡を置いて終わりましたね

 

まず拾う(つかむ)ことが出来るものを作りましょう

 

上のツールバー→GameObject→3D Object→Cube を選んでキューブを出しましょう

f:id:Yorin:20181125134742p:plain

 

そして名前とTransformを書き換える 今回は「拾える物」にするため「PickUp」という名前にした

f:id:Yorin:20181125140346p:plain

 

そしてInspectorの一番下 Add Component(コンポーネント[処理や属性]を追加するという意味)をクリックして 検索欄にpickと入れると VRC_Pickupというのが出てくるのでクリックで選び付与する

f:id:Yorin:20181125143144p:plain

 

Rigidbody[物理演算を行うコンポーネント]とVRC_PickUp(Script)[VRC上で拾えるようにするコンポーネント]が付いたと思います

何がどう拾えるのかを指定してあげなくてはなりません

Physical Root(物理親)を指定します

左側のHierarchyにあるPickUp(コンポーネントつけた箱)を右側InspectorのVRC_PickUpのPhysical Rootにドラッグ&ドロップする

f:id:Yorin:20181125143837p:plain

 

これでVRC上で拾える箱が完成しました

f:id:Yorin:20181125144416p:plain

 

ですがこのままの設定だと自分の判定と被りバグって飛んでったりするので、プレイヤーに判定が当たらないようにします。 

 

Unityに戻って右上のLayerをDefaultからWalkThroughに変更します。 もしここでそんなレイヤーが無いよって人は上のツールバーからVRChat SDK → Show build control panel で出てきたウィンドウのSetupLayerで VRC用のレイヤーを自動で追加してくれます。 押しておきましょう

f:id:Yorin:20181125145601p:plain

Setup layerを押すと次はCollision~~~が来る人と来ない人がいます。 来た場合は押してきましょう

 

レイヤーの準備が出来たらWalkThroughに変えます。

f:id:Yorin:20181125145956p:plain

[WalkThrough]はプレイヤーがすり抜けるけど、それ以外は普通に演算するレイヤーです。

 

ちゃんとすり抜けています。 それ以外の掴むとか物理演算とかは働いてます。

f:id:Yorin:20181125150843p:plain

 

拾えるオブジェクトはこのようにして配置します。

自分で作ったモデルとかでもHierarchyに配置してPickupコンポーネントつけて設定するのが基本となります。

 

 

 

次はボタンを押すと何か物が出てくるスイッチを作りましょう

何を出すかなんですけど、丁度今作りたてほやほやの物が目の前にあるので さっき作った拾える箱を出してみたいと思います

拾える箱を作った時と同じように箱を配置してTransformの数値を画像のようにします。

そして今度はPickupではなく[tigger]で検索して[VRC_trigger]をつけます

f:id:Yorin:20181125152331p:plain

 

そしてAdvanced modeにチェックを入れCustomをOnInteractに変えてAddを押します

f:id:Yorin:20181125152855p:plain

OnInteractというのがインタラクトした時 つまりクリックした時の処理 という意味です。

 

 

下の方にActionsがList is Emptyになっていると思います

これは触った時に起こるActionのリストです。

右下の+を押してBasic Event→SpawnObjectを追加します。

 

ここで一旦このSummon箱は置いておきます。

掴める箱の方に少し手を加えて ボタンから出せるようにします。

HierarchyのPickUpを下のプロジェクトファイルエリアにドラッグアンドドロップします。

f:id:Yorin:20181125153653p:plain

 

そうすると下の欄にPickUpの箱が追加されます

f:id:Yorin:20181125154108p:plain

これはPrefabと呼ばれる状態で、これをHierarchyの欄に投げるとPickUpの箱がセットアップされた状態で出てくると思います。

押すと物を出すボタンは、このPrefabを出現させる という構造なので、一度Prefabにする必要があったのです。

 

それではPrefabも出来たところでボタンに戻りましょう

 

ボタン側のSpawnObjectをクリックするとPrefabを入れる項目が出てきます。

ここにさっきのPickUpを入れましょう。

f:id:Yorin:20181125154258p:plain

 

Prefabの〇をクリックして検索欄を出し、さっきのPickUpを探して選択します。

f:id:Yorin:20181125154803p:plain

 

次に出現場所を設定します。

HierarchyのSummonを右クリック→Create Emptyで空のオブジェクトを追加します。

f:id:Yorin:20181125155159p:plain

そしてその空オブジェクトのTransformを画像のようにします。

Yを-2にするだけです。

f:id:Yorin:20181125155304p:plain

 

そしてボタンに戻って、Locationsの+を押して今作った空オブジェクトを登録。

見えづらいけど白い線が出ればOK

f:id:Yorin:20181125155727p:plainこれで押すと物が出るボタンも完成しました

 

後は前回やったようにアップロードして終わりです。

押すと出て、掴むことができますね。

f:id:Yorin:20181125155937p:plain

 

今回は以上です

次の更新は早めにしたいですね