GetEffectiveRenderData does not return per-take overrides for RDATA_FRAMEFROM / RDATA_FRAMETO
-
Dear community,
I'm facing an issue reading per-take frame range overrides via the Python API. When takes override the frame range on the render data, all methods I've tried return the Main take's frame range instead of the overridden values.
Environment:
- Cinema 4D Version: 2025, 2026
- Operating System: macOS
- Python Version: 3.11 (Cinema 4D native)
Issue Description:
When multiple takes each override the render data's frame range (e.g., Main: 0-6, V: 0-9, E: 0-23, R: 0-13, A: 0-17), reading RDATA_FRAMEFROM/RDATA_FRAMETO always returns the Main take's values (0-6) for every take.Steps to Reproduce:
- Create a Cinema 4D scene with a Main take (frame range 0-6)
- Create child takes (V, E, R, A) and override the render data's frame range on each (e.g., V: 0-9, E: 0-23, R: 0-13, A: 0-17)
- Run the following script:
python
import c4ddef main():
doc = c4d.documents.GetActiveDocument()
take_data = doc.GetTakeData()
main_take = take_data.GetMainTake()
fps = doc.GetFps()takes = [main_take] + main_take.GetChildren() for take in takes: rd, _ = take.GetEffectiveRenderData(take_data) frame_from = rd[c4d.RDATA_FRAMEFROM].GetFrame(fps) frame_to = rd[c4d.RDATA_FRAMETO].GetFrame(fps) print(f"Take '{take.GetName()}': FRAMEFROM={frame_from}, FRAMETO={frame_to}")if name == 'main':
main()- Observe that all takes print FRAMEFROM=0, FRAMETO=6
Expected Behavior:
Each take should report its own overridden frame range.Actual Behavior:
All takes return FRAMEFROM=0, FRAMETO=6 (the Main take's range).What I've Tried:
- take.GetEffectiveRenderData(take_data) — returns 0-6 for all takes
- take_data.SetCurrentTake(take) then reading from doc.GetActiveRenderData() — returns 0-6 for all takes
- take_data.TakeToDocument(take) then reading from the isolated document's active render data — returns 0-6 for all takes
Questions:
- Is this a bug in the Python API, or is there a different method we should be using to read per-take frame range overrides (RDATA_FRAMEFROM/RDATA_FRAMETO)?
- Are there any known workarounds to get the fully resolved render data with all take overrides applied?
Any guidance would be greatly appreciated. Thank you!