TAERUクレーン配信 — 実装と検証状況(2026-09-06)

ローカル連携の主要な不足を実装した段階。本番配信を「完璧にできる」とはまだ判定しない。 本番/Firestoreの変更、デプロイ、YouTube枠作成・配信は実行していない。

実装済み

  1. 操作結果の追跡: APIでfeature flag無効を403、拡張未登録/無効を409で拒否。UnityはGodotの実行後ACKを待ってクラウドACKを返す。操作ID、action、Godot process、接続世代、台本runを照合し、未送信・古いACKでは成功にしない。Godotは直近256操作を再実行しない。Adminは受付/実行中/実行済み/結果未確認を分離し、自動再送しない。
  2. 効果音の配信経路: 認証済み19101にPCMを追加。Godot→Unity AudioSource→AudioListener→native unity_mix に接続。キュー/パケットサイズに上限を設定し、再接続の残音・二重モニター・音声だけで映像停止が隠れる問題を防止。台本preflightは同一ゲームprocessの最新PCMも要求する。
  3. 起動・配布の取り違え防止: 同一secretで両アプリを起動するランチャー、認証/映像/PCM/capability確認、ビルドのソース/成果物SHA-256 manifest、既存ファイルを上書きしないexport、Godot 4.5.1をハッシュ固定したCIを追加。

実装の契約・起動例は Godot README。secretはAdmin設定、Firestore、Gitへ保存しない。認証済みIPCの利用に旧Virtual Controllerの絶対パスやアクセシビリティ権限は不要。

実施済み検証

生成物(Git管理外、既存の配布物は保持):

実Godot結合テストは描画・音声ドライバーが必要。Unityテスト起動時に TAERU_TEST_GODOT_BIN をGodot executableへ設定すると LocalGameFrameStreamClientTest.RealGodotIpc_ConfirmsOperatorAndReceivesPictureAndNonzeroPcm が有効になる。未設定の一般CIではこの1件はskipされる。Godot専用CIはロジック・3D・両OS exportとランチャーテストを行うが、CIの初回実行自体は未確認。

残る配布・本番確認

項目 現状 / 合格条件
Unity配布ビルド Mac版はソース隔離コピーで成功。元の.venvは削除/移動せずguardも維持。Macカメラ/マイクusage description欠落は修正済み。Windows用Build Supportがこの2022.3.15f1環境にないためUnity Windows版のビルドは未実施。
stagingへの反映 未デプロイ。Functions/Admin/Unity/Godotを組み合わせ、無効拡張拒否・手動カメラ/投下・negative ACK・接続切断を確認する。
YouTube 60分リハーサル 未実施。所有者認証、公式横/奥/最終poll、0票/同率/失敗時のコメントfallback、緊急バイト給料の一回反映、終了までを限定公開で確認する。
音声/映像・長時間 非ゼロPCMがUnity receiverまで届くことは検証済みだが、最終YouTube再生のA/V同期・TTS/BGM/SFX音量・クリップ・2時間のフリーズ/メモリ増加は未実測。native unity_mix を使い、OS音声との二重収録をしない。
異常時復旧 停止・再接続の単体テストあり。実プレイヤー/実配信でGodot終了・再起動、回線断、GPU停止、二重起動、古い配布物を確認する。結果未確認の操作を機械的に再送しない。

途中再開・予約・chain配信は引き続き非対応。復旧はゲームreset後にcanonical台本を先頭から手動開始する。

検証記録の残し方

各実配信確認ではmanifestのsource SHA-256、Unity版/ビルド、OS/GPU、開始/終了時刻、限定公開動画ID、stagingのcommandIdとterminal状態、音声/映像の測定結果、再接続時の挙動を保存する。公開キー/共有secret/トークンは記録しない。上表を全て満たしてから本番利用可否を判定する。