Meshsequence Exporter
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 24/06/2011 at 01:03, xxxxxxxx wrote:
I want to export a meshsequence of an animation. If I set the documenttime to a specific frame e.g. frame 5 and export the document, then cinema always export the mesh of frame 0.
Here ars some code snippets:
minFrame = 0
maxFrame = 10
while minFrame <= maxFrame :
doc.SetTime(c4d.BaseTime(minFrame, fps))filepathSuffix = filepath + "_" + str(minFrame) + "." + suffix
c4d.documents.SaveDocument(doc, filepathSuffix, c4d.SAVEDOCUMENTFLAGS_0, format)minFrame = minFrame + 1
How can I export the mesh of the frame, the playhead is?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 24/06/2011 at 06:18, xxxxxxxx wrote:
In that code you set the time to frame 0, so it's starting there.
Set it to start at current frame and set a useful last frame as well,
like doc maxtime or loop maxtime.Cheers
Lennart -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 24/06/2011 at 06:58, xxxxxxxx wrote:
In the while-loop I increment the variable "minFrame".
If I set the minTime and maxTime of the document, cinema exports in every loopcycle the mesh of frame 0
Here is my code:
while minFrame <= maxFrame :;
doc.SetMinTime(c4d.BaseTime(minFrame, fps))
doc.SetMaxTime(c4d.BaseTime(minFrame + 1, fps))
doc.SetTime(c4d.BaseTime(minFrame, fps))filepathSuffix = filepath + "_" + str(minFrame) + "." + suffix
c4d.documents.SaveDocument(doc, filepathSuffix, c4d.SAVEDOCUMENTFLAGS_0, format)minFrame = minFrame + 1
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 24/06/2011 at 07:22, xxxxxxxx wrote:
In Py docs look for "Document Caching" , last in c4d.documents.BaseDocument section.
There's a set up for running the scene, just add your save part in it.Cheers
Lennart -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 27/06/2011 at 01:41, xxxxxxxx wrote:
Hi Lennard,
thank you for youre post.
I insert the GeSyncMessage methode to my code, but it has no impact on the results. Cinema exports the mesh of frame 0 to all of the exported files.
Here is the code:
fps = float(doc.GetFps())
minTime = doc.GetMinTime()
minFrame = int(minTime.Get() * fps)maxTime = doc.GetMaxTime()
maxFrame = int(maxTime.Get() * fps)doc.SetTime(minTime)
while minFrame <= maxFrame :
c4d.StatusSetBar(100 / maxFrame * minFrame)
doc.SetTime(c4d.BaseTime(minFrame, fps))
c4d.GeSyncMessage(c4d.EVMSG_TIMECHANGED)filepathSuffix = filepath + "_" + str(minFrame) + "." + suffix
c4d.documents.SaveDocument(doc, filepathSuffix, c4d.SAVEDOCUMENTFLAGS_0, format)minFrame = minFrame + 1
c4d.StatusClear()
c4d.EventAdd(c4d.EVENT_ANIMATE) -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 27/06/2011 at 08:18, xxxxxxxx wrote:
Marcel, do look at the "Document Cache" example closer and
you'll see that you need the DrawViews for anything to happen.I do recommend using it as is as it works as expected.
Add your save part in it where stated and you're all set.Cheers
Lennart -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 27/06/2011 at 08:50, xxxxxxxx wrote:
You can see the parts put into it here,
saving the selected object to a c4d file series.
Look up the different functions in Py docs to see what they do.
The .zfill() function is from http://docs.python.orgCheers
Lennart# Save Selected Object To FileSeries import c4d from c4d import documents, storage def BrowseDoc(doc,tofile) : """ Pass the document you want to run the time through""" ctime = doc.GetTime() #save current time fps = doc.GetFps() start = doc.GetMinTime().GetFrame(fps) #set min time until = doc.GetMaxTime().GetFrame(fps) for f in xrange(start, until) : c4d.StatusSetBar(100*(f-start)/(until-start)) doc.SetTime(c4d.BaseTime(f, fps)) c4d.DrawViews(c4d.DRAWFLAGS_ONLY_ACTIVE_VIEW|c4d.DRAWFLAGS_NO_THREAD|c4d.DRAWFLAGS_NO_REDUCTION|c4d.DRAWFLAGS_STATICBREAK) # do your caching here. 'f' is the current frame objdoc = documents.IsolateObjects(doc,[doc.GetActiveObject()]) tofile = tofile+'_'+str(f).zfill(5)+'.c4d' c4d.documents.SaveDocument(objdoc,tofile,c4d.SAVEDOCUMENTFLAGS_DONTADDTORECENTLIST,c4d.FORMAT_C4DEXPORT) c4d.GeSyncMessage(c4d.EVMSG_TIMECHANGED) #update timeline doc.SetTime(ctime) #set time back c4d.EventAdd(c4d.EVENT_ANIMATE) c4d.StatusClear() def main() : if doc.GetActiveObject() is None:# Single Object not selected return False tofile = c4d.storage.SaveDialog(c4d.FILESELECTTYPE_ANYTHING) if tofile: BrowseDoc(doc,tofile) if __name__=='__main__': main()
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 29/06/2011 at 00:28, xxxxxxxx wrote:
Hi Lennart,
it works. Thank you so much.