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

生成されるファイル

このページを読むと このツールがプロジェクトに何を作るのか、どの場合に既存ファイルを更新し、どの場合に新しいファイルを作るのか、そして他人のアセットを上書きしない理由がわかります。

3 種類​

パスいつバージョン管理
<元の名前>_Edit.assetメッシュ保存コミットする
<元の名前>_Part….assetメッシュ保存 のときに切り離したパーツがある場合コミットする
Library/EmeAutoSave/リロード、Play、ウィンドウを閉じるなどで編集内容を保持する場合コミットしない

最初の 2 つは、元のメッシュアセットの隣に作られます。3 つ目は Library/ の下にあるため、Unity はキャッシュとして扱い、バージョン管理からも除外されます。

_Edit.asset​

メッシュ保存 が作る最終的なメッシュアセットです。作られた直後に、レンダラーがこのアセットを使うようになります。

含まれるもの: 頂点、法線、接線、UV0~UV7、カラー、サブメッシュとマテリアルの対応、bindpose、ボーンウェイト(可変ボーンウェイトを含む)、ブレンドシェイプの全フレーム。

保存の過程で、どのトライアングルからも使われていない頂点は 1 回整理されます。→ メッシュ保存の内部動作

アセット内のメッシュオブジェクトの名前は、ファイル名に合わせて設定されます。

0.1.x が作った <元の名前>_Edit.asset は 1.0 が作った出力としては扱いません。1.0 で同じメッシュをもう一度 メッシュ保存 しても上書きされず、<元の名前>_Edit 1.asset を新しく作り、レンダラーは新しいファイルを使います。

_Part.asset​

選択・移動 でパーツを切り離してから メッシュ保存 すると、パーツごとに _Part アセットが作られます。各パーツは新しい GameObject としてシーンに現れ、そのレンダラーがこのアセットを使います。

保存の途中で失敗した場合は、作りかけの _Part.asset が削除され、元のメッシュはそのまま残ります。

出所の記録(provenance)と owner​

出力されたアセットには、どこから作られたかを記録した情報が保存されます。この記録が、次の 2 つを決めます。

  1. 再び メッシュ保存 したときに、同じファイルを更新するか、新しいファイルを作るか
  2. 同じ名前の他人のアセットを上書きしないこと

記録には、元のメッシュの GUID と、レンダラーの owner トークンが含まれます。

状況結果
同じ元のメッシュ、同じレンダラーで再び メッシュ保存既存の _Edit.asset を、GUID を保ったまま更新
同じ元のメッシュを使う別のレンダラー別の出力ファイルを作ります
同じ名前の他人のアセットがすでにある上書きせず、固有のパスを新しく作ります

GUID が保たれることが重要です。プレハブ、アニメーション、ほかのシーンがそのメッシュを参照していても、参照が切れません。

このツールで作った出力アセットを使うレンダラーを読み込み直して作業を続けると、その出力が更新されます。同じアセットを使っているほかの読み込み済みのレンダラーも、新しいデータに同期されます。

シーンを保存しないと、レンダラーを区別できません

owner トークンは、レンダラーのグローバル ID から作られます。シーンが一度も保存されていないと、この ID が存在しないため、ウィンドウがその旨を通知します。同じ元のメッシュを使うレンダラーが複数ある場合は、作業を始める前にシーンを 1 回保存してください。

Library/EmeAutoSave/​

編集中の Work Mesh を保持しておくフォルダーです。ドメインのリロード、Play モードへの移行、ウィンドウを閉じるとき、シーンを閉じるとき、Unity の終了時に、ここに保存されます。編集モードに戻るか、ウィンドウやシーンを開き直すと復元されます。

これは作業の成果物ではなく、安全のための仕組みです。最終的な保存は、いつも メッシュ保存 です。→ セッションと元に戻す

保持に失敗した場合は、Play モードへの移行と終了が止まり、理由がステータス行に表示されます。ファイルは削除されないので、原因を確認できます。

保存を妨げるもの​

無効なデータは、ファイルに書き出される前に取り除かれます。

  • NaN や Infinity の座標
  • トポロジーの不一致
  • ウェイト配列の長さの不一致

保存に失敗したセッションは閉じられず残ります。原因を直したあと、もう一度 メッシュ保存 できます。

削除してよいもの​

ファイル削除してよいか
_Edit.assetレンダラーが使っている間は削除できません。元のメッシュに戻してから削除してください
_Part.assetそのパーツの GameObject を削除したあとならよいです
Library/EmeAutoSave/いつでも削除できます。復元されるはずだったセッションがなくなるだけです