【無料】肩越しの三人称カメラ
- ダウンロード商品¥ 0




最初に書いておきます。VRChat はデスクトップで F5 を押せば三人称視点になります。
できること
■ 肩越しの視点 右後ろ 2.2m。左右・高さ・後方距離は数値で変えられます。アバターの目の高さに合わせて距離が伸縮するので、小柄なアバターでも豆粒になりません。 ■ 壁にカメラを刺さない 中心 1 本と四隅 4 本のレイで壁を測り、手前 0.15m で止めます。四隅は円錐状に広げてあって、角を曲がった瞬間の突き抜けはこれで消えました。壁に寄るときは補間せず即座に寄せ、離れるときだけ滑らかに戻します。逆にすると、壁にめり込む一瞬が見えてしまう。 ■ 狭い通路で横ずらしを詰める 横に壁があると肩越しの横ずれを自動で詰めて、通路の幅に合わせて背後へ回り込みます。 ■ 立ち止まると見回せる 三人称で立ち止まると、マウスでカメラだけが体の周りを回ります。体は動きません。歩き出すとカメラを止めたまま、体が向きを合わせてから進みます。 ■ ズームと後方確認 キーを押している間だけ最大 2 倍。ホイールでさらに 4 段あります。後方確認は押している間カメラが 180 度回り、離すと戻ります。 ■ 照準マーカー 肩越しだと画面中央と実際に向いている点がずれます。頭の正面へレイを飛ばして、当たった点に小さな輪を出します。壁の陰なら赤。 ■ 画面揺れ 他の Udon から呼んだときだけ揺れます。爆発の位置と半径を渡すと、近いほど強く。呼ばなければ何も起きません。 ■ 画面のキー操作ガイド 三人称の間だけ右下にキーと説明を出します。設定したキーから文字を作るので、キーを変えると表示も変わります。FPS 表示も付けられます。 ■ ON/OFF の記憶 デスクトップで切り替えた状態を VRChat の PlayerData に保存して、次の入室時に戻します。
注意
・VR では既定で無効です。全画面の板は酔います。切ることもできますが勧めません ・三人称の映像を映す板は、既定で Water(4)レイヤーを使います。ワールドで Water を使っている場合は別の空き番号へ変えてください ・同梱の RenderTexture を他の用途と共有しないでください。三人称を切った瞬間に中身が消えます ・キーは VRChat 本体と重ならないものを選んでください。W/A/S/D、Space、Shift、C、Z、Escape は本体が使っています ・キー操作ガイドのフォント(TextMesh Pro 標準)に日本語は入っていません。日本語にする場合は自前の TMP フォントを入れ、材質の描画順を 4001 以上にしてください
同梱物
1. ThirdPersonView.prefab — 置くだけで動くプレハブ一式(カメラ・板・切り替えボタン・見回し用の座席) 2. Udon/ThirdPersonView.cs — 本体。カメラの位置・壁寄せ・演出を計算する 3. Udon/ThirdPersonViewToggle.cs — 切り替え。Interact / 他 Udon / トリガーエリア / キーの 4 通り 4. Udon/ThirdPersonViewHints.cs — 画面右下のキー操作ガイド 5. Shaders/ThirdPersonScreen.shader と ThirdPersonMarker.shader — 板と照準マーカー 6. Materials 3 点、Textures/ThirdPersonView_RT.renderTexture 7. Scenes/ThirdPersonViewSample.unity — 壁と柱を置いた見本シーン 8. README / LICENSE / CHANGELOG
動作環境
・Unity 2022.3 系 ・VRChat SDK3 Worlds(UdonSharp 同梱の版) ・作者の確認環境は Unity 2022.3.22f1 / VRChat Worlds 3.10.4 と ClientSim ・デスクトップ専用です。VR では既定で無効になります ・PC VR 実機と Quest 実機での動作は未検証です(確認でき次第、更新履歴に書きます)
導入手順
1. unitypackage を取り込む 2. ThirdPersonView.prefab をシーンに置く 3. ToggleButton を触りやすい場所へ動かす(または削除して自前のボタンから呼ぶ) 4. 再生して ToggleButton をクリックすると三人称になる 既定では入室時 OFF、VR では常に OFF です。見本シーンを開いて再生すれば、壁寄せと横詰めをその場で試せます。
キーで操作する
ThirdPersonViewToggle にキーを割り当てると、デスクトップから直接操作できます。プレハブでは切り替えの T だけ設定済みで、残りは None(使わない)です。 ・toggleKey — 三人称の ON/OFF(既定 T) ・lookBackKey — 押している間だけ後方確認 ・zoomKey — 押している間だけズーム。ホイールでさらに 4 段 ・swapKey — 肩の左右を入れ替える ・aimMarkerKey — 照準マーカーの表示を切り替える ・orbitLeftKey / orbitRightKey — 押している間、カメラだけが体の周りを回る ・freeLookKey — 押している間、歩く向きを固定する 同じシーンに ThirdPersonViewToggle を複数置く場合、キーを受け付けるのは 1 つだけにしてください。全部が反応して打ち消し合います。
立ち止まっている間の見回し
三人称で立ち止まって 0.3 秒たつと、キーを押さなくてもマウスでカメラだけが体の周りを回ります。体は動きません。 仕組みは見えない座席(VRCStation)です。座席の中ではマウスの横の動きが体でなく頭を回すので、カメラが頭に付いて回ります。座席の頭は左右 90 度までなので、カメラ側の角度を 2 倍にしてアバターの正面まで回り込めるようにしてあります。 移動キーを押すと、カメラはその場に止めたまま体が 0.2 秒かけてカメラの向きへ回ってから歩き出します。見ていた方へそのまま進めます。この動きを切ると、歩き出した後にカメラが体の後ろへゆっくり戻ります。 座席はプレイヤーごとに 1 つずつ複製されるので、複数人が同時に立ち止まっても取り合いません。ClientSim では座る・90 度で止まってカメラが 180 度回る・体が約 0.2 秒で向きを合わせる、までを確認しています。実機での他人からの見え方は未確認です。
他の Udon から呼ぶ
ThirdPersonView と ThirdPersonViewToggle の public メソッドを SendCustomEvent で呼べます。 ToggleView / EnableView / DisableView — ON/OFF SwapShoulder — 肩の左右を入れ替える ZoomIn / ZoomOut / ToggleZoom — ズーム LookBack / LookLeft / LookRight / LookForward — カメラだけ向きを変える ToggleAimMarker / ShowAimMarker / HideAimMarker — 照準マーカー Shake — 画面を揺らす 引数付きの AddShake(強さ, 秒) と AddShakeAt(位置, 半径, 強さ, 秒)、OrbitBy(度) は、U# スクリプトから直接呼んでください。
描画負荷
三人称の間はプレイヤー自身のカメラの描画対象を板のレイヤーだけに絞ります。板の裏のワールドは元から 1 ピクセルも見えていないので、描くのをやめても見え方は変わりません。シーンを描く回数は撮影カメラの 1 回だけです。 この設定を切ると撮影カメラとプレイヤーのカメラで 2 回描きます。ミラーが 1 枚増えるのと同程度です。 同梱の RenderTexture は 1920×1038 です。重ければ解像度を下げてください。三人称を切っている間は RenderTexture を解放してビデオメモリを返します。
利用規約
・個人・商用を問わず、ワールドへの組み込みは自由です ・改造・コード流用・改造版の公開も自由です ・パッケージそのものの再配布(そのまま無償・有償で配る行為)はご遠慮ください ・クレジット表記は任意です ・同梱物はすべて作者の制作物です。第三者素材は含みません ・現状のまま提供します。不具合・損害について責任を負いません ・サポートや更新は行うことがありますが、必ず行うとは約束しません。不具合報告は商品ページのコメント欄へどうぞ
更新履歴
1.0.17 (2026-09-21) 初回公開。1.0.0 からの内訳は同梱の CHANGELOG.txt にあります




