ドキュメントを見るモバイル

live2d-web ドキュメント

モバイル

モバイルブラウザでのカメラ入力と描画の注意点を確認します。

モバイルチェックリスト

自動画質調整では Canvas の描画解像度を制限できますが、カメラ推論の性能は端末によって異なります。iOS Safari と Android Chrome は、どちらも実機での検証が必要です。iOS Safari は0.7の必須確認項目で、実機の iPhone で Main thread と Worker をそれぞれ5分間確認するまで完了とはしません。Android Chrome は発行を止めない確認項目とし、未検証であることを公開したまま発行します。デスクトップ版 WebKit・Chromium や端末エミュレーションでは代用できないため、デスクトップでの測定値は参考値として扱ってください。

  • カメラ・マイク権限には HTTPS を使います。
  • ページが非表示の間はカメラ入力を停止します。
  • 画面回転とバックグラウンドからの復帰を確認します。
  • 実機で性能を測定してから Worker の利用を判断します。

カメラとページのライフサイクル

ユーザー操作からカメラを開始し、visibilitychangepagehide でフレーム生成を停止します。復帰時は以前の stream が無効になる場合があるため、video.readyState を確認してください。

camera-lifecycle.ts
let stream: MediaStream | undefined
 
async function startCamera() {
  stream = await navigator.mediaDevices.getUserMedia({ video: true })
  video.srcObject = stream
}
 
function stopCamera() {
  stream?.getTracks().forEach(track => track.stop())
  stream = undefined
  video.srcObject = null
}
 
document.addEventListener('visibilitychange', () => {
  if (document.hidden)
    stopCamera()
})
addEventListener('pagehide', stopCamera, { once: true })

端末に合わせた描画サイズ

モデル読み込み前から Canvas の CSS サイズを確保します。上半身 framing と自動品質から始め、frame 時間を測定して解像度を上げます。

実機で確認

デスクトップのエミュレーションでは、カメラ権限、熱制御、バックグラウンド復帰、mobile WebKit Worker は検証できません。端末・OS・ブラウザーを記録し、Main の後に Worker を確認します。