THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/04/2010 at 12:30, xxxxxxxx wrote:
Cinema 4D Version: 11
Platform: Mac OSX ;
Language(s) : C++ ;
Because of the changes to the timeline bake object command between R10 and R11, I want to create my own bake function for my tag plugin (which makes use of coffee and xpresso tags) to bake out an entire hierarchy.
My question is about how to evaluate the timeline without running it (similar to how the bake object/texture functions work in c4d; where a progress bar is used instead of the actual timeline and viewport being played).
The only mention of progress bars in the SDK seem to be highly specific to rendering or baking textures; which I don't need. But I know what I want is possible because, well... the timeline bake object command does it (just not right in R10 apparently).
What I want to happen is the user will hit a button, the timeline begins being evaluated and on every frame each object in the hierarchies pos/rot/scale will be evaluated and recorded to keyframes to a duplicate of the hierarchy (from data from xpresso and coffee tags, as well as my own tag plugin).
On 13/04/2010 at 01:35, xxxxxxxx wrote:
I am not sure I understand your question. If it is just about setting the statusbar then please check the following four functions. They are used to set and clear the statusbar.
void StatusSetBar(LONG p)
void StatusSetText(const String& str)
Going through the keyframes can be done by obtaining the first track of an object, tag, material etc. and iterating through the tracks.
Access to the keys is done by obtaining the track's curve using the CTrack's class methods.
On 13/04/2010 at 07:25, xxxxxxxx wrote:
I just need to know how to "play" the timeline without actually playing the timeline. Exactly like the Bake Objects command in the timeline's function menu works. When that function is called, you don't actually see the timeline being played, it gets played "behind the scenes" displaying a progress bar instead.
In a nut shell. I need to completely recreate that Bake Objects function. Except I don't need the PLA or Parameter options (or the bake expressions option since it would always be set to true in my case).
I'm all set with keys and tracks. The only mystery is making it all happen "behind the scenes".
On 13/04/2010 at 07:35, xxxxxxxx wrote:
You just call SetTime() and ExecutePasses() on the document and rewind afterwards.
On 13/04/2010 at 08:34, xxxxxxxx wrote:
that makes sense to use SetTime(). The ExecutePasses() function I can't find anywhere in the SDK, and a google search doesn't find anything but a post here on the plugincafe about it, leading me to think that it is a c4d api function and not a general c++ function.
Can you give me a little bit of info about that ExecutePasses() function?
On 13/04/2010 at 08:37, xxxxxxxx wrote:
I see you are using R11. Then use AnimateDocument() instead. ExecutePasses() replaced AnimateDocument() in R11.5.
On 13/04/2010 at 08:49, xxxxxxxx wrote:
Excellent! You the Man Matthias!!!