THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 17/06/2010 at 09:36, xxxxxxxx wrote:
Cinema 4D Version: R9-10
Platform: Windows ;
Language(s) : C++ ;
There seems to be an issue specific to Windows in R9 and R10, which is causing problems with my tag. In the Execute() function, it's calling a function to integrate the object's state, incrementing the delta time in a while loop until the time is equal to the difference between the previous frame and the current frame. Everything works fine until I navigate the view (move, rotate or zoom) while the animation is running, which causes the object to zoom out into infinity. It's a bit difficult to debug, because once I add GePrint() statements to track the object's state, the problem disappears and navigating the view while the animation is running seems fine.
It's not a problem on Mac OS, nor is it a problem in R10.5+ on Windows. It is specific to R9 through R10 on Windows.
I've added current/previous frame comparison and current/previous GeGetTime() comparison, but the problem is still there, although now the object simply blinks while navigating, and then disappears when the mouse button is released.
The object goes back to normal once the timeline rewinds to the beginning, because that's when the object's start state is reinitialized.
It almost seems like the calls to the tag's Execute() function are being doubled or tripled when navigating the view?
What do I need to do to fix it?
On 18/06/2010 at 02:53, xxxxxxxx wrote:
Can you post some code showing the problem.
On 18/06/2010 at 12:41, xxxxxxxx wrote:
Well, I've got more issues that I've discovered, so I'm rewriting several things.
On 21/06/2010 at 06:54, xxxxxxxx wrote:
OK, after rewriting a lot of code, that problem has disappeared.
But now, I have a different issue. Is there a way for an expression tag to know if the timeline is being scrubbed?
On 21/06/2010 at 08:17, xxxxxxxx wrote:
Please check the flags parameter in Execute().
SCENEHOOKEXECUTION_ANIMATION is set during playback und the timewarp tool.
SCENEHOOKEXECUTION_INDRAG is set during timeline scrubbing.
On 21/06/2010 at 08:31, xxxxxxxx wrote:
OH! I've never looked at the flags parameter in the Execute() function. Thank you for pointing those out.
AHA! No wonder I never looked at that parameter; in the R9 SDK documentation it says "Currently not used".