THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 14/08/2009 at 14:19, xxxxxxxx wrote:
Cinema 4D Version: R10-R11
Platform: Windows ; Mac OSX ;
Language(s) : C++ ;
This is an interesting situation. For my generator plugin, the user can create a library of objects (in a CommandData plugin 'library manager') which is utilized by the generator and stored on disk. For the sakes of not requiring the external disk library of .c4d object documents and their associated bitmapbutton images be available (say, for render farm or collaboration), the library should be internalized into the project document.
At first, I was going to add the objects to a Null object in the actual project document but I think there are too many issues with that (user fiddling mainly, doesn't solve the bitmapbutton image storage). Instead, I may just add them to each generator plugin and, using CopyTo/Read/Write, maintain them internally embedded that way. For projects where the user is using multiple generator plugin objects, this would mean duplication of the library objects (one set for each generator plugin instance). Also, additions, deletions, and name changes in the library manager would need to disseminate updates to EVERY open document with the generator plugin (and each generator plugin instance in EVERY document). Fun, I say...
Embedding is the way to go and makes the user's life easier but it is a managerial nightmare to conceive of the means to implement this in Cinema 4D. For instance, one type of library item may have texture image files associated with its textures. I have not even considered how to go about retaining the image files relatively and then make sure they accompany the project - maybe by forcibly adding texture tags and materials to the generator plugin and then politely requesting the user to 'Save Project' so as to retain the image files in relation to the document. Arghhhh....
Has anybody here dealt with something similar? I need advice, guidance, help, a noose... ;)