VRCで特定の人だけスポーン位置を変えるギミック作ったってわけ
キャストやっていて、「ワールドはいるときスタッフだけ別の場所にスポーンしたーい」という要望をもらいました。
やるしかねえ!!
まあいけるやろおって思ってやったんですけど….めっちゃ時間かかりました。
実際にどんなコード書いて何で引っかかったか書きます。
頑張ったから後半のほう有料にする。公開できそうならboothにも置いちゃうもんねー。
ギミックの目的:プレイヤーによってリスポーン位置を変える
イベントを行っているときに
キャスト:店奥にスポーン
お客:玄関にスポーン
みたいにしたくなる時があると思います。
そういったときに、スポーン位置を変更させることが今回の目的になります。
ギミックの処理順
world読み込み
スポーン対象のobj読み込み
読み込みタイミングでうどんをこねてオブジェクトを移動
移動させたオブジェクトへplayerを移動
完了
上記の手順を踏みplayerを飛ばすことにした。
使用した知識
U#でプレイヤーをテレポートさせる #VRChat - Qiita
Player Positions | VRChat Creation
teleportさせるために
【Unity】オブジェクトの移動方法まとめ | 3DCG school
transformプロパティをいじってオブジェクトを移動させる。
Respawn位置の動的な変更 - VRChat 技術メモ帳 - VRChat tech notes
そのままはできないけどヒントになった
やるべきことの概要
ワールドを準備する
リスポーン位置を準備
二つ(もしくは三つ、欲しいだけ)リスポーン位置を作成(Cubeなどで作成して非アクティブにしとくとかでもいいかも)
UDONを作成し、リスポーン位置のオブジェクト、変化させるリスポーン先のオブジェクトを読み取れるようにする
特定のplayerの名前のられるを受け取れるようにする
player apiを使用して判別
キャスト側(登録されている名前)に一致するならキャスト用のリスポーン位置に、そうでなければもともとのリスポーン位置にplayer apiのTeleport Toを使用して飛ばす
これを満たすコードを作成する。
こっからソースコードと導入方法だから有料♡
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?