メディア資産
MovieAssetManagerは、描画資産、カメラ、ライト、音声、タイムラインを管理します。Objectsのdrawから参照する主な資産形式は次のとおりです。
対応形式
| 資産 | 拡張子 |
|---|---|
| コスチューム | svg、png、bmp、jpg、jpeg、jfif、webp、gif、exr |
| サウンド | wav、mp3、ogg、oga、flac、aac、m4a |
| フォント | ttf、otf、woff、woff2 |
| モデル | glb、pmx、fbx、obj |
| モーション | vmd、vpd |
| ビデオ | mp4、webm、ogv、mov |
コスチュームグループは、複数のコスチュームをまとめて連番資産として扱います。モデルとモーションの処理はCameraと3D、描画入力はobjects_drawリファレンスを参照してください。
ビデオ
内部のvideo frame rateは30 fps固定です。フレームnのmedia timeは次の式で決まります。
(n - 1) / 30 秒
フレームは動画の長さに応じてクランプされ、末尾ではduration - 0.001秒を上限とします。受け付けたframe requestは順序を維持して処理し、連続したrequestを勝手にcollapseしません。
モード変更または対象削除時にはstale requestを無効化します。video bitmapの解像度は、ステージまたは書き出しサイズの最大2倍を基本上限とします。
ObjectsのvideoモードはMovieタイムラインに同期し、専用のvideo elementと音声再生を持ちます。
テキストとフォント
フォントはruntime font managerへ登録します。組み込みフォントはSans Serif、Serif、Monospaceです。
テキストは96 pxのcanvasに描画し、行間は約1.2倍、paddingは16 pxです。canvasの最大辺は4096 pxです。テキストcanvas cacheは最大128エントリ、または約16M pixelを上限とします。
未ロードフォントはバックグラウンドでロードし、ブロックprimitiveはロード完了までVMを待たせません。
キャッシュとエラー
モデル、ビデオ、テキストのqueueは対象ごとに直列化されます。decode完了後はgenerationと対象stateを検証し、古いrequestが新しいmaterialや描画状態を上書きしないようにします。
資産の読み込み失敗は、VMをPromise待ちにするのではなくMovieAssetManagerのrender error/diagnostics経路へ通知されます。