SabaProps

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) なので、フレームを 分割しても合成が保たれます
    • デッドゾーンを持ちます。リモートプレイヤーのボーンはネットワーク補間の結果で細かく 震えており、これが無いとカメラが止まりません。閾値を跨いだ瞬間に飛ばないよう、 超過分だけを残す形にしています
  • 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