9
$\begingroup$

I was wondering - what options are there to include metadata, copyright information, and/or comments/notes in a .blend file?

I realized late that in the main dropdown (where 3D view is), one can select "Text Editor", and then do Text / Create Text Block (these are then shown under Outliner > Datablocks / Texts). I'm guessing these are for scripts, but when I see, say http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Creating_Blender_Libraries:

make visible upon loading one small text file which lists layers and objects
...
make your licensing expectations clear: artistic license, creative commons, etc.
...
sign your work, stable email address or website url if possible

... I simply cannot see where else could I add this information, but in a "text block" as described above. The Outliner / Datablocks view looks like it might contain some metadata, but seemingly it is not editable.

So my question is - what is the preferred way to enter metadata (e.g. key/value combinations like author, license, date, etc), and to enter notes/comments in a .blend file?

$\endgroup$
  • 4
    $\begingroup$ The text editor $\endgroup$ – someonewithpc Sep 10 '14 at 12:07
  • 1
    $\begingroup$ The only other thing I can think of would be an actual 3d text object, but that's even more messy than in the text editor. $\endgroup$ – Greg Zaal Sep 10 '14 at 12:36
  • $\begingroup$ Thanks for that @ someonewithpc and @GregZaal - I maybe should have mentioned that I specifically do not want a renderable 3d text; simply to know if the text editor is the only way for both metadata and/or notes/comments, or if there is something else. Cheers! $\endgroup$ – sdaau Sep 10 '14 at 13:40
  • 2
    $\begingroup$ There are other ways but can you explain why the text editor isn't a good solution? $\endgroup$ – ideasman42 Sep 10 '14 at 13:52
  • $\begingroup$ Thanks, @ideasman42 - I'm not saying it isn't a good solution; mostly I'm wondering if there is an allowance for key/value metadata, that could be (say) read by a command-line utility, without unpacking the entire file; if "Note" was one of those keys, that could be considered a "default" note, say (where you could refer to other text files). But then, if those exist, Blender should have a utility to read and show those, but I don't know of any. Just wanted to confirm I didn't miss something obvious... Thus, feel free to post about the other ways! Cheers! $\endgroup$ – sdaau Sep 10 '14 at 15:05
5
$\begingroup$

Its quite common just to distribute a text block with some plain text information.

Some options you have for storing more structured meta-data in a Blend file.

  • Text-Block
    • You might want to use JSON/XML/MIME encoding to dump your data to this in your own format which you can read back.
    • Text blocks can be hidden (indeed any data-blocks),
      by starting the name with a . - Unix .convention).

Example:

import bpy
import json
metadata = dict(author="Me", date="Today", rating=100)

# hidden text block
text = bpy.data.texts.new(".metadata")
text.write(json.dumps(metadata))

# print it back out
print(text.as_string())
  • ID Properties
    • attach a dictionary like object to any data-block.
    • only support primitive data types str,int,float,dict,array - but can be nested.

Example:

import bpy
metadata = dict(author="Me", date="Today", rating=100)
# attach to current Scene
scene = bpy.context.scene
scene["metadata"] = metadata

# print it back out
print(scene["metadata"].to_dict())

Neither of these options are especially easy to extract from the Blend file without loading the file in Blender first, however it is possible.

See: https://developer.blender.org/diffusion/BAM/browse/master/bam/blend/blendfile.py

$\endgroup$
  • $\begingroup$ please do not use a text block, because it is not attached to your asset, and it does not scale to scenes with hundreds of assets. It is much better to use "custom properties"... though it would be better if we had an even better solution $\endgroup$ – David Jeske Apr 30 at 18:12
2
$\begingroup$

You can add "Custom Properties" to Objects:

Custom property in pannel

These properties are accessible in the Python console. Python link

$\endgroup$
1
$\begingroup$

As someonewithpc commented, you want the Text Editor.

http://wiki.blender.org/index.php/Doc:2.6/Manual/Extensions/Python/Text_editor

$\endgroup$
  • $\begingroup$ Thanks for that, @MutantBob - great to have this reference; cheers! $\endgroup$ – sdaau Sep 10 '14 at 15:05
0
$\begingroup$

If the metadata you want to add needs to visible from within the Blender file itself, the metadata can be converted into an image and treated as a reference image. For example, one can create a plane mesh object, and texture it with an image which contains the text © 2015 by blenderuser, where blenderuser is a placeholder for the name of the actual copyright holder. Alternatively, the copyright information can be made into a text object, and placed into the blender scene in that manner. This can be instead of, or in addition to, placing the copyright information into a text block with the text editor.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.