ドリフト補正と同期のタイミング

AutoScript Sync がファンスクリプトの同期のずれをどう扱うかは、デバイスの経路によって異なります。Autoblow AI Ultra はアップロードされたスクリプトを自分の時計で再生するので、アプリは 1.5〜5 秒ごとに動画と照合し、ずれたら補正または再スタートします。Intiface のデバイスは PC の時計に従って点ごとに駆動され、ドリフト補正のループはありません。DeoVR では、ヘッドセットの時計が基準になります。以下はすべてアプリのコードから取ったアプリのルールです。同期精度を測定したものではなく、遅延やドリフトの測定結果は公表していません。

2026 年 9 月 21 日にアプリのコードと照合済み。

すべてが従う時計

デスクトップでは、動画はアプリ内に組み込まれた VLC プレーヤーで再生されます。約 33 ms ごと(毎秒約 30 回)に、アプリは VLC の再生時刻を同期エンジンに渡し、その時刻が各デバイス経路の基準になります。DeoVR のセッションでは、下で説明するとおり、代わりにヘッドセットが報告する時刻がその役割を担う設計です。

各経路がタイミングを保つ方法
経路スクリプトを保持する側遅延の見込みドリフト補正
Autoblow AI Ultra(クラウド)デバイス(一度アップロードした後)開始のたびに、測定した往復時間の半分あり、1.5〜5 秒ごと
Intiface / Buttplug、メインデバイスPC が点ごとに送信なしなし。再生、シーク、設定変更のときに合わせ直し
Meta Quest での DeoVRデバイスの経路によるそのデバイスと同じAutoblow の場合、約 1 秒に 1 回届くヘッドセットの時計に対して

実機でテストしたのは Autoblow AI Ultra だけです。Intiface のデバイスと DeoVR の経路は、モックサーバーまたは疑似デバイスでテストしました。

Autoblow AI Ultra:一度アップロードして、あとは補正

Ultra は Autoblow のクラウド経由でのみ制御され、PC が直接接続することはありません。再生中は両方ともインターネット接続が必要です。アプリは位置をストリーミングで送るのではなく、次のように動きます:

  1. 接続後、アプリは 4 回の状態リクエストの往復時間を平均し、API N ms として表示します。
  2. Send Script to Device で、デバイスに合わせて調整したスクリプトを一度アップロードします。そのあとは Ultra がスクリプト全体を自分で再生します。
  3. 再生時、アプリは現在の動画の時刻に測定した往復時間の半分を足した位置でデバイスを開始します。一時停止するとデバイスを止めます。
  4. シークすると、新しい時刻に同じく往復時間の半分を足した位置でデバイスを再スタートし、200 ms の間ドリフトの確認を控えます。
  5. 再生中は、下で説明するとおり、ドリフトのループがデバイス自身のスクリプトの時計と動画を比較します。

再生中、アプリは往復時間の平滑化した平均とジッターの推定値を保持し、開始と再スタートのたびにその半分を使います。

ドリフトのループ

ドリフトとは、Autoblow の状態エンドポイントから読み取ったデバイスのスクリプト時刻から、動画の時刻を引いたものです。最初の確認は再生やシークの約 1 秒後に行われます。その後、ループは 3 秒間隔で始まり、補正を行うと 1.5 秒に縮まり、問題のない確認のたびに 0.5 秒ずつ広がって、最大 5 秒になります。

Autoblow drift tiers Drift from 0 to 80 ms is left alone. From 80 to 350 ms it is trimmed through the script offset, at most 40 ms per check and 250 ms in total. Above 350 ms the device is restarted at the video position plus half the round trip. Left alone Trimmed through the offset Restart 0 ms 80 ms 350 ms Drift between the device's script clock and the video Trim: 60% of the drift per check, ≤ 40 ms a step, ≤ 250 ms in total Restart at video time + ½ round trip
2 段階のドリフトのしきい値はコード上の定数で、デバイスで測定した挙動ではありません。

ループが譲るとき

  • API の残り回数が少ない。Autoblow の応答にはレート制限のヘッダーが含まれています。残りの呼び出しが 5 回以下になると、ドリフトの確認はスキップされます。Autoblow は具体的な上限の数値を公開していません。
  • デバイス自身のパターン。Ultra が内蔵パターン、オシレートモード、go-to の動作を実行している間は、ドリフトの確認は止まります。アプリはその理由を表示するので、スクリプトを再送して同期に戻してください。
  • 接続の切断。go-to の動作、同期の開始、オシレートの設定に失敗すると、接続は再接続中の状態になり、バックグラウンドの監視処理が 5 秒ごとに再試行します。再生中に復帰すると、アプリは自動でデバイスを動画に合わせ直します。
  • スクリプトがまだ送られていない。Send Script to Device を使う前に再生すると、アプリは毎秒約 4 回の位置コマンドに切り替え、Streaming positions (fallback mode) と表示します。これは大まかな動きで、なめらかな同期にはアップロードが必要です。

1 つの相互作用は未テストです。補正は Offset 設定と同じデバイスのオフセットを通じて行われますが、ドリフトの読み取り値はそのオフセットを考慮していません。オフセットが適用されたあと Ultra がスクリプト時刻をどう報告するかによって、補正が次の読み取り値に反映されるのか、あるいは 350 ms を超える Offset そのものがドリフトとして読まれて再スタートを引き起こしうるのかが決まります。テスト用のデバイスはオフセットを無視するため、どちらのケースも確認できていません。デバイス側については Autoblow AI Ultra のページをご覧ください。

Intiface のデバイス:PC がタイミングを管理

Intiface と Buttplug で接続するデバイスは、ローカルの WebSocket を通じて PC からリアルタイムに駆動されます。何もアップロードされません。ストローカーでは、スクリプトの各点が 1 つの LinearCmd になり、その所要時間は次の点までの時間(最低 30 ms)なので、デバイスは点と点の間を自分でなめらかに動きます。位置アクチュエーターを持つデバイスには、代わりに位置が送られます。

タイミングは、再生またはシークを押した瞬間から PC の時計で進み、Offset の分だけずらされます。動画に合わせ直されるのは再生、シーク、設定変更のときだけで、それ以外にはありません。メインの Intiface デバイスには遅延の測定もドリフトのループもありません。コードはローカル接続でのドリフトを無視できるものとして扱っています。その結果、再生中に動画が止まったりバッファリングしたりすると、次に再生、シーク、設定変更をするまでメインデバイスは引き戻されません。

次回のアップデートでは、2 台目のデバイスがメインデバイスと並んで動画に追従できるようになります。動画と一緒に開始、停止、シークし、2 秒ごとに確認され、400 ms を超えてずれると再生位置で再スタートされます。リリース済みのアプリでは、2 台目のスロットは手動で操作します。

Intiface の経路は、モックサーバーと実際のエンジン上の疑似デバイスでテストしており、実際のトイではテストしていません。The Handy、Kiiroo、Lovense、OSR2/SR6 のデバイスは、私たちはまだ実機でテストしていません。

DeoVR での VR:ヘッドセットの時計が基準

VR では、アプリは Meta Quest 向けに作られた DeoVR の Remote Control と連携します。TCP ポート 23554 で DeoVR に接続し、読み込んだ動画をローカルネットワーク経由でポート 8942 からヘッドセットに配信し、DeoVR が報告する再生時刻に従ってデバイスを動かします。ヘッドセットでの再生、一時停止、シークは引き継がれ、報告された時刻が 900 ms を超えて飛ぶとシークとみなされます。先にデバイスを接続しておく必要があります。

DeoVR は約 1 秒に 1 回時計を報告し、アプリは報告の間を補間しません。Autoblow のスクリプトを再生しているとき、ドリフトの確認はその時計に対して行われるので、最大約 1 秒古い時刻とデバイスを比較することになり、再スタートのしきい値 350 ms と比べると大きな差です。ヘッドセットのセッション中も、デスクトップのプレーヤーのタイマーは VLC の時刻を同期エンジンに渡し続けます。それがヘッドセットの時計と干渉しうるかどうかは確認していません。ヘッドセットの経路はモックの DeoVR でのみテストしており、実際のヘッドセットではテストしていません。

Offset 設定

Offset は手動で設定する唯一のタイミング調整です。デバイスが遅れると感じたら上げてください。

範囲
−5000〜+5000 ms、50 ms 刻み。新規インストール時は 0。
動画ごと
動画ごとに保存され(最大 200 本、古いものから削除)、その動画を開いたときに復元されます。値が保存されていない動画では、最後に使った Offset がそのまま使われます。
適用範囲
Autoblow、Intiface、2 台目のデバイスの経路すべてに共通です。デバイスごとの個別のオフセットはありません。
Autoblow の場合
Autoblow の同期スクリプトのオフセットコマンドを通じて、ドリフトの補正と合わせてデバイス側で適用されます。アプリでは、正の値はデバイスを早めるものと表示されます。

測定していないこと

実際に達成された同期の測定結果は記録されていません。実際のセッションでの Autoblow の往復遅延、ドリフト、開始時のずれのいずれもなく、Intiface や DeoVR についても何もありません。このページと Autoblow のページに書いたしきい値は、アプリが目指すものであって、達成しているものではありません。AutoScript Sync のスクリーンショットで遅延やドリフトの数値を見かけたとしても、それは画像に入力されたもので、デバイスから読み取ったものではありません。何を測定し、何を測定していないかはベンチマークのページにまとめています。

よくある質問

デバイスが遅れて感じます。何を変えればいいですか?

しっくりくるまで Offset を 50 ms ずつ上げてください。値はその動画用に保存され、次に開いたときに復元されます。

長い動画の途中で Intiface のデバイスがずれてきます。なぜですか?

メインの Intiface デバイスは、最後の再生またはシークからの PC のタイマーで動いており、ドリフトのループがありません。一時停止して再生し直すか、シークすると、動画に合わせ直されます。

Offset を変えたら、Autoblow にスクリプトを再送する必要がありますか?

いいえ。Offset は再生中に別のコマンドとして送られます。ストローク設定の変更には再アップロードが必要です。調整後のスクリプトが変わるためです。

同期の精度はどのくらいですか?

まだわかりませんし、推測で答えることもしません。ルールはこのページに書いたとおりで、どのデバイスでも、実際に達成された遅延やドリフトの測定結果は記録されていません。

次に読む

自分の動画で試す

体験版は 1 日間、あなた自身の PC で動作します。動画はローカルで解析され、アップロードされることはありません。