Gauging interest in completing my metadata plugin

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Search this Thread Display Modes
  05 May 2012
Gauging interest in completing my metadata plugin

Months ago I was working on a plugin but I lost interest so I never quite finished it but I thought I'd post what I've got up here to see if there was an interest from the community in me completing it.

So this is what the plugin does, it embeds metadata into renders in much the same way that digital cameras do when they take a picture. Probably the feature that most people would be interested in is that fact that with the plugin you can store all the camera and render settings in each render and you can reload those back into cinema at any time in the future. Also you can add custom metadata to the image such as scene file name or camera name that can then be searched using tools such as adobe bridge, or even just windows search.

Another cool feature is that you can tag individual objects in your scene with certain metadata and that metadata will only be added to the render if the object is visible in the render.

I developed this plugin to meet certain needs in our workflow at the company I work for but I kept encountering roadblocks that I'd have to work around that got discouraging after a while. The funny thing is I got past all the roadblocks and now it's just a matter of cleaning it all up but at this point I'm just not that interested.

So if you want to download it and give it a shot feel free. A couple disclaimers: it only works in windows running the 64 bit version of Cinema. It currently only saves to PNG and JPEG formats. After a fair number of saves it will crash so I wouldn't use it in production yet.

-Add the post effect "MetaData Writer" to your render settings.
-When you save out a render use the filetype "JPG Metadata" or "PNG Metadata"
-There is a Metadata Tag in the object manager to add metadata to objects
-There is a command called "Camera from Metadata" in the plugins menu that will read camera and render settings from an image file.
  05 May 2012

Thanks for making this available.

Recovering camera data from a rendered image sounds particularly useful.

Some observations, using R13:

1. When I attempted to recover the camera data using the "Camera from Metadata" option, the recovered camera was loaded as a stereoscopic camera ("Symmetrical" Mode), even though it didn't start out as one.

2. The Field of View was different than the original, probably because I used a different Sensor Size before saving the image, and the imported camera appears to use a default sensor size of 36. What in your view would be the best way to deal with the possibility of a non-standard sensor size in the C4D camera settings, when using your Metadata plugin?
  05 May 2012
Yeah I've notice the stereoscopic thing. Back when I was working on this I was mostly testing in R12 so that wasn't an issue. All you have to do is switch is back to mono. For some reason that setting isn't in the basecontainer for the camera object.

As for the sensor size it seems to be working for me. As soon as you hit the render button it records all the settings of the camera and render settings at that time so any changes you make after that to your scene will not be added to the metadata until the next time you hit render. The settings embedded in the render should be the exact settings needed to recreate that render.

And if anyone is wondering this would also work with vray or really any external renderer that stores its data in the renderdata basecontainer. Currently I'm not recording the vray camera tag but that's not really a problem to add.
  05 May 2012
Sounds very useful, alas I'm a Mac user.
I'm a gun for hire... My work & gallery.
  05 May 2012
I created a similar plug in last year for a similar reason. Seems like an obvious thing C4D should support natively!

Haven't gotten much response to it, but like you, I wrote for my own workflow needs.

It grabs all the relevant data it can, stuffs it into the established photography metadata (EXIF) tag formats as fits best, and creates some additional metadata namespace definitions just for C4D. (Total rendertime, machine name, filename, render settings, timestamp, rating, custom data and CC / copyright / usage rights sections, etc). Supports JPG, PNG, AVI, TIFF, and PSD files as well as separate XML XMP sidecar file (like Adobe DNG / RAW)

Current limitations are
1) no mac version
2) doesn't work with net render.
3) R12 or higher

The object tag feature you added sounds useful, and pulling render data back out of the image metadata is something I wanted to add but didn't have the time.

I haven't updated my plug in for a while (since it is basically done) and I'm sure the code architecture is different, but I can send you the source if it would be of use to you in finishing and polishing up your plugin.

  05 May 2012
Lars, that's pretty cool that you made a similar plugin, I wouldn't mind seeing the code just to see how you dealt with certain issues. Did you use the Adobe XMP Toolkit as well?

The netrender support was one of the roadblocks that I encountered but was able to overcome it by creating my own send to renderfarm button that saves the necessary data for the render client to put the sidecar file on the render server. The current version that's posted for download doesn't work with net render though.

Another one of the roadblocks that took a while to get around was the picture viewer, does your plugin allow you to go back in the picture view history and save out images with metadata? I had to actually embed my xml in the pixels of the image in hidden layers incase the image was saved at a later point.
  05 May 2012
I would be very interested in these plugins, but am on the Mac.
I do feel it is an essentialy workflow addition, mostly for digging stuff out of old projects...

  05 May 2012
Yes, I used the Adobe XMP toolkit as well. And I also found a few roadblocks as well.

Mine works by tracking the vpost phases and grabbing logging information as it progresses (cache the camera data for later, record the render start time, etc). Then, at the very end of the render process, I push the metadata into the image file using the XMP toolkit. Basically I use the vpost as a hook to record the data and then add the metadata to the disk file only after C4D is done with it.

Unfortunately, the last vpost call happens before the file is fully closed and committed to disk, so I had to spawn a thread to do the data writing. It's a little weird, but it works. It was a year ago, so I don't remember all the details, but I think one thing that didn't work (but should have) was support for Quicktime files -- something about QT keeping a lock on the files.

Another problem I had was I couldn't find the name of the actual rendered file in renderdata structures, so I recreate it using the renderdata prefs (base name, 0000 format, etc). That's not a real flexible way of doing it, but it works in most cases (net render being one of the places where it fails).

I didn't implement it as a file format filter, and I don't actually touch the rendered image data inside of C4D, so mine couldn't work with picture viewer saves. The metadata gets saved to the disk file and is not kept within C4D after the render is complete. Keeping the metadata attached to the image within C4D after the render wasn't really something I considered at the time, but I can see how that could be useful.

It was my first C4D plug in (not my first plug in, just the first one for C4D!) and I only spent a couple days on it. It does what I set out to do, but it's far from a real integrated solution. My approach of poking at the disk file after rendering was the easiest way to get the result I needed, but it has some definite drawbacks. Having to figure out the disk filename, the uncertainty of what happens to the disk file after the render is done, etc. But most importantly it's likely fundamentally incompatible with netrender -- XMP toolkit isn't going to know what do with an B3D file, and that's all you have on the net client side.

My understanding of netrender is a little hazy from the programming side, but if I understand you correctly, you stuffed the metadata into a custom pixel data layer to be passed back to the render server as part of the B3D bundle at the end of a render? The render server should split that out as an image layer, but then you'd have to manually post process that to convert that back to metadata tags and attach it to the image. Or did you find a way to have the server handle that as part of the image transfer phase?

It sounds like yours is less limited than mine. I probably won't develop mine much further, if at all, and I think I'd prefer your approach and capability over my own plug in. I was trying to fill a hole in functionality (which it does), but I'd certainly like a better tool if one was offered! But if there's anything useful you can pick out of my source code, you're welcome to it.

Sheesh. A lot of crazy hoops for plug in developers to jump through for what should be a pretty simple thing for Maxon to implement at a lower level.
  10 October 2012
Any development info about metadata-tools for mac, now ???
  10 October 2012
I am very much interested in this Plugin. Can be very Handy for my Workflow.
Cinema 4D Studio MSA, Zbrush, CS6, 3DCoat, Moi
Twitter: @holgerbiebrach

  10 October 2012
I haven't looked at this in a while, I just wasn't getting the interest needed to get me motivated. Right now I'm working on the next version of my primitive sketch plugin.
  10 October 2012
Oooo! Oooo! I luv yer primitive sketch plug in. I use it every day!
  10 October 2012
Thread automatically closed

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
CGTalk Policy/Legalities
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 05:44 PM.

Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.