VRCで特定の人だけスポーン位置を変えるギミック作ったってわけ

キャストやっていて、「ワールドはいるときスタッフだけ別の場所にスポーンしたーい」という要望をもらいました。

やるしかねえ!!

まあいけるやろおって思ってやったんですけど….めっちゃ時間かかりました。
実際にどんなコード書いて何で引っかかったか書きます。
頑張ったから後半のほう有料にする。公開できそうならboothにも置いちゃうもんねー。

ギミックの目的:プレイヤーによってリスポーン位置を変える

イベントを行っているときに

  • キャスト:店奥にスポーン

  • お客:玄関にスポーン

みたいにしたくなる時があると思います。
そういったときに、スポーン位置を変更させることが今回の目的になります。

ギミックの処理順

  1. world読み込み

  2. スポーン対象のobj読み込み

  3. 読み込みタイミングでうどんをこねてオブジェクトを移動

  4. 移動させたオブジェクトへplayerを移動

  5. 完了

上記の手順を踏みplayerを飛ばすことにした。

使用した知識

U#でプレイヤーをテレポートさせる #VRChat - Qiita
Player Positions | VRChat Creation
teleportさせるために

【Unity】オブジェクトの移動方法まとめ | 3DCG school
transformプロパティをいじってオブジェクトを移動させる。

Respawn位置の動的な変更 - VRChat 技術メモ帳 - VRChat tech notes
そのままはできないけどヒントになった

やるべきことの概要

  1. ワールドを準備する

  2. リスポーン位置を準備

  3. 二つ(もしくは三つ、欲しいだけ)リスポーン位置を作成(Cubeなどで作成して非アクティブにしとくとかでもいいかも)

  4. UDONを作成し、リスポーン位置のオブジェクト、変化させるリスポーン先のオブジェクトを読み取れるようにする

  5. 特定のplayerの名前のられるを受け取れるようにする

  6. player apiを使用して判別

  7. キャスト側(登録されている名前)に一致するならキャスト用のリスポーン位置に、そうでなければもともとのリスポーン位置にplayer apiのTeleport Toを使用して飛ばす

これを満たすコードを作成する。
こっからソースコードと導入方法だから有料♡

ここから先は

3,395字 / 8画像

¥ 300

この記事が気に入ったらチップで応援してみませんか?