ドキュメントを見るJavaScript

live2d-web ドキュメント

JavaScript

React に依存しない基本 API を使います。

作成・読み込み・破棄

JavaScript API は1つの Canvas とモデルを管理します。モデルを操作する前に読み込みの完了を待ち、画面から外すときは必ず dispose() を呼んでください。

import { createLive2D } from 'live2d-web'
 
const character = await createLive2D({
  container: document.querySelector('#avatar'),
  coreUrl: '/live2dcubismcore.min.js',
  src: '/models/model.model3.json',
})
 
await character.motion('TapBody', 0)
 
// When the host view is removed:
character.dispose()

Canvas のアクセシビリティ

Canvas を支援技術に公開する必要がある場合だけ意味を指定します。オプションを 省略すると、従来のマークアップを維持します。

const character = await createLive2D({
  accessibility: {
    label: '動く案内キャラクター',
    fallbackText: '案内キャラクターのイラスト',
  },
  container: document.querySelector('#avatar'),
  src: '/models/model.model3.json',
})

情報を伝えないモデルには { mode: 'decorative' } を使います。タップや モーションはキーボードで操作できる通常の DOM ボタンやコントロールでも提供してください。 ランタイムは Canvas に tabIndexrole="application" を自動追加しません。

画面のライフサイクルに合わせる

インスタンスはコンテナーを所有する画面で保持します。非表示タブで描画が不要なら一時停止し、画面を外すときに破棄します。dispose() は複数回呼んでも安全です。

const onVisibility = () => document.hidden ? character.pause() : character.resume()
document.addEventListener('visibilitychange', onVisibility)
window.addEventListener('pagehide', () => {
  document.removeEventListener('visibilitychange', onVisibility)
  character.dispose()
}, { once: true })

通常の DOM で操作と再試行を用意

モーション、表情、再試行は Canvas 外のボタンで提供します。準備前は無効にし、失敗時は Live2DError.code を表示して、Core、アセット、WebGL の原因を修正してから再作成します。