BlenderのFake Userとは何か

Cropped d4cd7ac1381dc72b731d1c4cdf542dd3.png

5. Fake Userとは何か

Fake Userとは、Data-blockに対して、

今は実際のUserがなくても、このData-blockは保存しておく

と指定するための保持フラグです。

Materialで言えば、次のようになります。

Old_Mat
Users = 0
Fake User = OFF
→ 未使用Data-blockとして消える可能性がある
Old_Mat
Users = 0
Fake User = ON
→ 未使用でも保存対象として残る

つまりFake Userは、「偽のユーザー」という名前ですが、実際には、

未使用Data-blockを保存対象にするための保護マーク

と考えると分かりやすいです。


6. Fake Userは「データが増える問題」と関係している

Fake Userの存在意義を理解するには、次の2つの問題を分けて考える必要があります。

1つ目は、BlenderではData-blockがどんどん増えやすいという問題です。
Material、Action、Image、Node Groupなどを試作していると、未使用Data-blockが増えます。

2つ目は、未使用Data-blockの中にも残したいものがあるという問題です。

この2つを同時に扱うため、Blenderでは次のような設計になっています。

原則:
Users = 0 のData-blockは保存・保持しない

例外:
残したいUsers = 0 のData-blockにはFake Userを付ける

したがってFake Userは、単に「データを消す機能」ではありません。
むしろ、

Data-blockが増え続ける問題を避けながら、必要な未使用Data-blockだけを残すための例外指定

です。

Blender開発タスクでも、Fake User、auto-purge、未使用IDの保存、Orphan Data表示などがまとめて議論されています。そこでは、Fake Userを残す案、Fake Userを削除してAsset機能などで保護する案、未使用データのPurge UI改善などが議論されています。


7. なぜ「自動削除しなければよい」では済まないのか

初めてFake Userを知ると、

そもそも未使用Data-blockを自動削除しなければよいのでは?

と思うかもしれません。

しかし、Blenderでは作業中に多くのData-blockが生成されます。

試作Material
削除したObjectのMesh
使わなくなったAction
読み込んだが使っていないImage
一時的なNode Group

これらをすべて自動保存すると、.blendファイルは不要データで肥大化します。

一方で、自動的に消すだけでは、必要な未使用Data-blockまで失う危険があります。

Fake Userは、この中間にある仕組みです。

不要な未使用Data-block
→ Purge対象

必要な未使用Data-block
→ Fake Userで保持

8. Material作業でのFake Userの具体例

例えば、作り込んだMaterialを一時的にObjectから外したとします。

Object A
Slot 0 → Skin_Mat
Slot 1 → Old_Shader

ここで、Slot 1から Old_Shader を外すと、

Object A
Slot 0 → Skin_Mat

Old_Shader
Users = 0

になります。

この状態で Old_Shader にFake Userが付いていなければ、保存・再読み込みやPurgeで消える可能性があります。

しかしFake Userを付けていれば、

Old_Shader
Users = 0
Fake User = ON

となり、Objectに割り当てられていなくても保持されます。


9. Fake UserとPurgeの関係

Purgeは、未使用Data-blockを整理するための操作です。

しかし、Fake Userが付いたData-blockは、「未使用でも残す」と指定されているため、通常の未使用データとは扱いが変わります。

そのため、Material Dataを完全に整理したい場合は、次の順で確認すると安全です。

1. Objectから不要なMaterial Slotを削除する
2. Material Dataが他Objectで使われていないか確認する
3. Fake UserがONになっていないか確認する
4. 不要ならFake UserをOFFにする
5. Orphan DataでPurgeする

Fake UserがONのままだと、使っていないMaterial Dataが残り続ける原因になります。


10. Fake Userは便利だが、名前が分かりにくい

Fake Userという名前は、初心者には分かりにくいです。

実際には、

Preserve
Keep
Protect
Save even when unused

のような意味に近いです。

開発者・ユーザー議論でも、Fake UserのUIや名称、未使用Data-blockの扱いは分かりにくいものとして議論されています。たとえばDevTalkでは、Fake Userという名前をGuardやProtectのような名称に変える提案も出ています。

Blogでは、次のように説明するとよいです。

Fake Userは直訳すると「偽のユーザー」ですが、実務上は「未使用でも保存するための保護フラグ」と考えると理解しやすいです。


コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA