Changelog
このパッケージの変更点をまとめています。
フォーマットは Keep a Changelog に、
バージョニングは Semantic Versioning に従います。
[Unreleased]
[0.2.0] - 2026-10-05
Changed
- Apache-2.0 の宣言、公式ライセンスURL、同梱するライセンス全文と README の表記を統一。
Added
- 複数カメラの選択、映像プレビュー、プレイヤー・部位の指定、構図調整を行うローカル操作用 Canvas。
- 外部 UI から追従対象を指定する
SetTargetPlayerと、現在の対象を取得するGetTargetPlayerId。 - ステージ・スクリーン・顔追従とクレーンの 2 台のカメラ・Pickup・Spawn を生成するデモシーン。
- Pickup 可能なクレーンカメラに、本体・レンズ・ファインダーの表示モデル。
- カメラリグを配置する GameObject メニュー。
- デモ保存後の参照とスクリーンの向きを実物の Unity で検証する EditMode テスト。
[0.1.1] - 2026-09-23
Fixed
- VRChat Worlds SDK の依存範囲を 3.10.x に変更し、3.10 系の既存 SDK と競合しないように修正。
[0.1.0] - 2026-09-07
最初のリリースです。ローカル専用の単一カメラリグを収録します。
Added
Stage Cam Rig: 特定のプレイヤーの部位を追い、一定距離と固定アングルを保つ Udon カメラリグ- 追える部位は顔・首・胸・体・左右の手・左右の足の 8 種類。
NeckとUpperChestは Humanoid でも省略できるため、部位ごとに 3 段のボーン候補とトラッキングデータへの フォールバックを持ちます。非 Humanoid アバターでもプレイヤー原点まで落ちて破綻しません - アングルの基準はワールド固定と被写体の体の向きの 2 通りです。基準に頭ではなく体を 使っているのは、頭の振りにカメラが追随すると見ていられないためです
- 追従の時定数はフレームレートに依存しません。残差が
exp(-dt/tau)なので、フレームを 分割しても合成が保たれます - デッドゾーンを持ちます。リモートプレイヤーのボーンはネットワーク補間の結果で細かく 震えており、これが無いとカメラが止まりません。閾値を跨いだ瞬間に飛ばないよう、 超過分だけを残す形にしています
- 追える部位は顔・首・胸・体・左右の手・左右の足の 8 種類。
- Pickup による手動補正。掴んでいる間は毎フレーム姿勢を軌道パラメータへ焼き戻すため、 離した位置がそのまま新しい定常アングルになります
- カメラワークが有効な場合はその寄与を差し引いてから設定値へ戻します。差し引かないと、 振り込みの途中で掴むたびに基準アングルがずれていきます
- 自動フレーミングが有効な場合は距離ではなく画面占有率へ焼き戻します。距離を覚えても 次のフレームで上書きされてしまうためです
- 自動カメラワーク。被写体の周囲を回り込みながら迫り上がり、同時に寄る動きを作ります。 折り返しと周期の境目で速度がゼロに落ちるため、端で急に切り返しません
- 自動フレーミング。目線の高さから被写体の大きさを測り、画面占有率が一定になる距離を求めます。 アバターの身長差とアバタースケーリングによる実行中の変化を吸収します
既知の制限
- 同期しません。各クライアントが自分の見たい対象を自分で追います
- roll は保持しません。Pickup でカメラを傾けて離しても水平に戻ります。傾いた地平線が 残らないようにするための意図した挙動です
- リモートプレイヤーの姿勢には 100〜200 ms 程度の遅延があります。VRChat の仕組み上の制約です
[Unreleased]: https://github.com/sabas0ba/vrc_sabaprops/compare/io.github.sabas0ba.sabaprops.stagecam/v0.2.0...HEAD
[0.2.0]: https://github.com/sabas0ba/vrc_sabaprops/releases/tag/io.github.sabas0ba.sabaprops.stagecam/v0.2.0
[0.1.0]: https://github.com/sabas0ba/vrc_sabaprops/releases/tag/io.github.sabas0ba.sabaprops.stagecam/v0.1.0