大きな作品を作っている方から「重くなって元のデータが失われた」というご報告をいただきました。原因を調べて、保存まわりの作りを「途中で何が起きても作品が残る」ように組み直した版です。
1. 作品が消えないようにするための修正
- 保存の途中でアプリが終了しても、作品が消えなくなりました。保存の直前の内容を控えとして残し、次の起動で「元に戻しますか?」とお尋ねします。 技術メモ: これまでは、保存の最後に控えを消していました。控えを消してから新しいファイルを置くまでの一瞬(数ミリ秒)にアプリが終了すると、作品がどこにも無い状態になりました。自動保存(15秒ごと)にも同じ作りが入っていたため、両方を直しています。
- 控えが残っている作品を、起動時の自動整理が一覧から外してしまう不具合を直しました。 技術メモ: 一覧の自動整理が、控えつきの作品を「壊れている」と判定していました。
- 「保存しました」は、保存したものが本当に読み戻せるかを確かめてから表示するようになりました。 技術メモ: 書き込んだファイルを読み直して中身を検査してから完了とします。確かめられなかったときは前の版に戻し、控えと自動保存はそのまま残します。作品が消えないように、確かめ終わるまで何も捨てません。
- 書き出し(MP4・GIFなど)の最中は、自動保存を止めるようにしました。 技術メモ: 大きな作品で、書き出しと自動保存が同時に走るとメモリを使い切って落ちることがありました。
- 保存中と音声の読み込み中は、画面の中央に「保存中です」が出て、ボタンと編集を受け付けなくなりました。何度押しても二重には走りません。 技術メモ: 重い作品で保存ボタンを連打すると、そのたびに保存処理が増えてメモリを使い切っていました。自動保存には元から二重起動を防ぐ仕組みがありましたが、手動の保存には入っていませんでした。
- 作品を削除したとき、控えや保存途中のファイルも一緒に片づけるようになりました。 技術メモ: 削除しても残骸が残り、フォルダの使用量だけが増えていくことがありました。
2. どれくらい大きいかが見えるように
- 右パネルに「メモリの使用量」を表示するようになりました(作品/元に戻す/合計)。大きくなってくると、保存や作品を分けることをおすすめする案内が出ます。作業は止めません。 技術メモ: 同じ絵を指しているレイヤー(📌の全コマ共通レイヤーなど)は1つとして数えます。コマやレイヤーをまとめて減らせば、表示もちゃんと減ります。しきい値はお使いのPCの状態では変わりません。アプリが一度に扱える大きさの上限を基準にしています。
- 色が256色を超えて高精細モードに切り替わるとき、大きな作品では使用量をお知らせするようになりました。 技術メモ: この切り替えは元に戻せず、1面あたりの使用量が2倍になります。切り替わる前に把握できるようにしました。
- とても大きな作品では、元に戻せる回数が自動で少なくなります。 技術メモ: 作品そのものが大きいときに履歴まで同じだけ持つと、メモリを使い切って落ちます。作品の大きさに応じて履歴の上限を下げます。小さな作品ではこれまでどおりです。
- ⚙ に「ログのフォルダを開く」を追加しました。うまく動かなかったときに送っていただく記録です。 技術メモ: 作品名・フォルダのパス・作品の中身は記録しません。1MBを超えたら古いほうから捨てます。保存先は設定ファイルと同じ場所で、新しいフォルダは作りません。
3. 操作しやすくするための修正
- ウィンドウの横幅が足りないとき、右上の ⚙(設定)が画面の外へ押し出されて押せなくなる不具合を直しました。検索バーが先に縮むようになります。
- ウィンドウに最小サイズ(900×540)を設けました。
- ショートカットに「⚙ 設定を開く」を追加しました(既定 Ctrl+, ・ホーム画面用)。⚙ が押せない状況でも設定を開けます。
4. まだ直っていないこと
- とても大きな作品で「開き直せません」と出てしまう問題は、この版では直っていません。次の版で直します。開けなくなったファイルも中身は壊れていませんので、消さずに置いておいてください。 技術メモ: 読み込みのときに、ファイル全体を一続きの文字列として組み立てています。その文字列に上限があり、超えると読み込めません。上限は 384MB ぶんで、1面(1コマの1レイヤー)あたり 76,800 バイト、高精細モードならその2倍です。次の版では、分けて読み込むように作り直します。
※ 作品データの形式は変わっていません。これまでの作品はそのまま開けます。1.5.3 は欠番です(2つの改修を1つの版にまとめたため)。上書き保存のときに1つ前の内容を控えとして残すようになったので、ライブラリフォルダの使用量が最大で2倍になります。