見えていないコマを自動で圧縮して眠らせ、必要なときだけ起こす仕組みを入れました。1,000コマを超える作品でも、編集中のメモリ使用が大きく減ります。
1. 大きな作品が軽くなりました
- 見えていないコマを自動で圧縮して眠らせるようになりました。1,098コマ×20レイヤーの検証用作品で、編集中のメモリ使用が約1.6GBから約0.4GBに減ります。 技術メモ: 表示中のコマと前後の窓だけを生のまま持ち、それ以外は圧縮して保持します。動画サイトが「見ている位置の前後だけを展開して持つ」のと同じ考え方です。圧縮は可逆で、全21,960面で1バイトの差も出ないことを検証しています。
- 再生・書き出し・保存はこれまでどおり動きます。30コマ/秒の再生でもコマ落ちしないことを確かめました。 技術メモ: 再生時は眠っているコマを先に起こしながら進めます。保存は眠ったまま圧縮データを直接使うので、保存のためにメモリが膨らむこともありません。
- 遠くのコマへ一気に飛んだとき、まれに一瞬待つことがあります。画面は白くならず、長引くときだけ小さな案内が出ます。 技術メモ: 飛び先の前後7コマを起こすためです。ほとんどの場合は0.03秒ほどで、体感できるのは連続で重いコマが重なったときだけです。
2. 「元に戻す」が強くなりました
- 元に戻せる回数が最大200回になりました(これまで64回)。 技術メモ: 回数と別にメモリの予算も持ち、とても大きな作品では自動で回数を調整します。「200回のはずが黙って減っている」とならないよう、残り回数を画面に表示するようにしました。
- 「元に戻す」がメモリを実際より少なく数えていた箇所を3つ直しました。 技術メモ: 選択範囲つきの操作・全コマ共通レイヤーの切り替えなどで、記録サイズの申告が漏れていました。漏れたままだと、いちばん重い操作だけが予算をすり抜けてメモリを圧迫します。
3. 安全の検査を増やしました
- 作品を読み込むとき、コマ数を2つの方法で数えて突き合わせるようになりました。万一食い違えば、黙って通さずその場でお知らせします。 技術メモ: 「静かに1コマ減って開く」という最悪の壊れ方を、うるさく失敗する形に変えるための検査です。
- メモを閉じたあともメモリに残り続けるデータが2か所あったのを片づけました。 技術メモ: 「元に戻す」の履歴と、コマのコピー(メモをまたいで貼れる機能)です。後者は機能を残したまま圧縮して持つ形にしました。
※ 作品データの形式は変わっていません。これまでの作品はそのまま開けます。小さな作品では何も変わりません。