Unity+UnrealEngine4+Blog.

UnityやUnrealEngine4とかについて学習したことを書いてます

VRChat[VRCSDK2] プレイヤーが椅子に座った時に自由に動けなくする ->解放する

 

VRCSDK触り始めたばかりで、あまり理解がないですが・・

プレイヤーが椅子に座った時に自由に動けなくするための記事です。情報もあって、簡単ですが、SDKの中にあるプレハブのVRCChairではなぜか上手く動かなかったのでメモ

 

サンプルのプレハブのVRCChairではできなかった為、Cubeを椅子代わりにシーンへ配置。その後、Cubeへ「VRC_Station」と「VRC_Trigger」をAddComponentします。

f:id:nabesi777:20200601222213p:plain

 

AddComponentしたら、VRC_StationのDisableStationExitへチェックを入れ、(これがプレイヤーの動きを制限するものですが、SDKの中にあるプレハブのVRCChairではなぜか上手く動きませんでした。)PlayerEnterLocationとPlayerExitLocationへ自分(Cube)を入れています。

f:id:nabesi777:20200601220232p:plain

 

VRC_Triggerへは椅子へ座るためのイベントを設定します。

・customのタブをクリック->OnInteractを選択

・Actionsの+を押して、SendRPCを選択(関数を実行するアクション)

・表示されたSendRPCをクリックしたら、下側にReceiversというものが出てくるので、

そこへ作成した椅子をドラッグして参照を入れる

・もう少し下へ行って、CustomMethodの中へUseStationと打つ

f:id:nabesi777:20200601220453p:plain

 

上記の設定で、座ったら自力では立てない椅子ができました。

ただ立てないと困るので、拘束を解除するボタンも作成します。

 

Cubeを作成して、これをスイッチとします。

f:id:nabesi777:20200601221042p:plain

 

このCubeへVRC_TriggerをAddComponentします。

VRC_Triggerへは先ほどと同じ手順で、OnInteract、SendRPC、椅子の参照を設定して、最後のCustomMethodの中身をExitStationと書き込みます。

f:id:nabesi777:20200601222022p:plain

 

 

椅子へ着席後、この離席トリガーを引いてあげると、プレイヤーは動くことができるようになります。

 

もう少し自由にこのコンポーネントの処理をしたいと思いましたが、公式のDocumentationを見る限り、使えるActionはUseStationとExitStationだけでした。

f:id:nabesi777:20200601221630p:plain

docs.vrchat.com

 

ワールドで少し凝ったものを作成するときは、シンプルに機能を実装できるようによく考えないとだめっぽいですね!