メインコンテンツまでスキップ

素材とプロジェクト形式

Shading固有のMovie機能を含むプロジェクトは、タイムライン、素材、カメラ、3D、PenFXをプロジェクトデータへ保存します。

拡張子とmarker

用途拡張子/marker
Movie/Shadingプロジェクト.shade、内部marker mb3
互換Movie拡張子.mb3
通常Scratchプロジェクト.sb3
読み込み互換.sb2.sb

Movie機能が検出されたruntimeは保存時に.shadeを選びます。Movie featureがない通常プロジェクトは.sb3を選びます。

Movieプロジェクトのmarkerは次の形です。

{
"mb3": {
"version": 1,
"features": ["movie-blocks", "timeline"]
}
}

featuresは検出された機能をソートして保存します。候補はmovie-blockspen-fxmy-blocks-shader3d-enginegraphic-effectsvideo-assetscostume-groupsmodel-assetstimelinepen-fx-shadersです。

保存される主なデータ

MovieAssetManagerが扱う主なproject JSON keyは次のとおりです。

movieVideos
movieCostumeGroups
movieModels
movieCamera
movie3D
movieTimeline
penFXShaders

プロジェクト読み込み時はmarkerだけに依存しません。block opcodeとasset keyからMovie featureを再検出できるため、markerがない旧ファイルもMovieプロジェクトとして扱えます。

PenFX shaderの保存

読み込んだPenFX shaderのmanifestとGLSL本文は、.shade内のpenFXShadersへ保存できます。元のZIPがなくてもプロジェクトを開き直せます。常に存在する組み込みpackageは重複保存しません。custom shaderを含むプロジェクトはMovie専用機能として扱われます。

互換性の境界

.sb3は通常Scratchプロジェクト用です。Movieのタイムライン、Objects、PenFX、3D、動画、コスチュームグループ、モデルなどを含むデータは.shade側で保持します。

.mb3.sb2.sbは読み込み互換の対象です。markerがなくてもblock opcodeとasset keyから機能を検出します。互換性専用ブロックの一覧は現行機能と互換性を参照してください。

デスクトップ版

Electron版はブラウザー版と同じbuild出力を使います。安定したlocalhost originからアプリを配信し、ブラウザー版とプロジェクト形式・IndexedDBの互換性を保ちます。

ファイル関連付けは.shade.mb3.sb3.sb2.sbです。起動時のファイル指定、OSのopen-file、file pickerは同じ読み込み経路へ集約されます。未保存変更がある状態で閉じる場合は確認を行います。

macOSでは明示的なGPUスイッチがない限りANGLE Metal backendを使用します。--use-gl--use-angle--disable-gpuなどの明示的な起動指定は尊重します。

開発・パッケージングの主なコマンドは次のとおりです。

npm ci
npm run build:desktop
npm run electron:start
npm run electron:dev
npm run package:desktop
npm run package:desktop:dir

保存の安全性

デスクトップ版の保存は、一時ディレクトリへ書き込み、flush・sync後に対象ファイルへ置換します。置換に失敗した場合は元ファイルを復元し、保存途中の内容で元ファイルを切り詰めません。