• Cutome Render Token do not update Filename each Frame

    11
    1
    0 Votes
    11 Posts
    2k Views
    ferdinandF
    Hello @nason, without any further questions we will consider this topic as solved by Friday, December the 17th. Thank you for your understanding, Ferdinand
  • Remove settings from Render Settings

    r23 s24 r25 c++
    2
    1
    0 Votes
    2 Posts
    414 Views
    ManuelM
    Hi, you must overload the RenderEngineCheck function and return false if the passed ID are those settings. The documentation has some example. Cheers, Manuel
  • SetTimeRight fail!

    python s22
    10
    0 Votes
    10 Posts
    2k Views
    chuanzhenC
    @ferdinand I also use ScreenToGif to make pictures!
  • How do dynamical systems update objects?

    c++ r21
    6
    0 Votes
    6 Posts
    1k Views
    ManuelM
    Hi, the scenehook is called from the CoreThread, that's why you must be sure that your sceneHook is 100% safe and not blocking/crashing. I can't talk about our internal implementation. But, to save some time, you could disable the dynamics on the project settings, and keep using our tags to retrieve the data, parameters to drive the simulation. Cheers, Manuel
  • How to get VolumeData?

    r21 c++
    5
    0 Votes
    5 Posts
    771 Views
    ferdinandF
    Hey @aimidi, I need further optimization, and I need to check whether the scene (tags, objects, et cetera) has been changed. Does BaseDocument.Polygonize()copy the Dirty and HDirty of the object? This why I hinted at Polygonize() not always being up to the task. There is unfortunately no easy way to get informed about specific classic API scene graph changes. There is the broad core message EVMSG_CHANGE which is sent by EventAdd() and will inform you that 'something' changed but exactly not what did change. Which makes it quite a bit of work to synchronize two scene graphs in a performant way, the classic API one from Cinema 4D and one from an external render engine, as you then have to determine the change yourself. And if it is a relevant one, as you might not care about all scene elements of the Cinema 4D scene graph in the render engine scene graph. One useful pattern to use in this context are GeMarker and the MAXON_CREATOR unique ID attached to nodes. This is because scene elements get reallocated quite often in the Cinema 4D scene graph, so you cannot simply have an object 'MyCube' in your renderer scene graph which holds a BaseObject pointer to its Cinema 4D scene counter part for synchronization purposes. And to answer your question about dirty flags: No, Polygonize() will copy objects and transform generators into discrete geometry. They cannot share dirty flags (see example at the end). Cheers, Ferdinand import c4d def main(): """ """ docFirst = doc.GetFirstObject() print (f"{docFirst.GetHDirty(c4d.HDIRTYFLAGS_ALL)=}") temp = doc.Polygonize() tempFirst = temp.GetFirstObject() print (f"{tempFirst.GetHDirty(c4d.HDIRTYFLAGS_ALL)=}") if __name__=='__main__': main() docFirst.GetHDirty(c4d.HDIRTYFLAGS_ALL)=5 tempFirst.GetHDirty(c4d.HDIRTYFLAGS_ALL)=3
  • GetAndCheckHierarchyClone + dynamics

    7
    0 Votes
    7 Posts
    1k Views
    bacaB
    @ferdinand Thanks, no issues so far.
  • Visibility Red Button

    python
    6
    0 Votes
    6 Posts
    1k Views
    ferdinandF
    Hello @WDP, when there are no further questions, we will consider this topic as solved by Wednesday, December the 1st. Thank you for your understanding, Cheers Ferdinand
  • CustomGui and CustomDataType examples... not used anywhere?

    c++ classic api sdk
    6
    0 Votes
    6 Posts
    1k Views
    ManuelM
    hi, sorry i didn't had time to investigate yesterday. I'm happy that you find out the solution. Cheers, Manuel
  • About TimeLine Coordinate System

    s22 python
    3
    0 Votes
    3 Posts
    722 Views
    chuanzhenC
    @ferdinand Thanks for your detailed reply! " 2.The timeline (and as a matter of fact also the world coordinate system) has no implied unit. There is no direct translation as 1px == 1cm as both the horizontal axis and vertical axis depend on the zoom level." solved my question!
  • Help needed * .res files, dialogs etc...Plugin beginner

    r23 python windows
    5
    2
    0 Votes
    5 Posts
    868 Views
    ManuelM
    @thomasb said in Help needed * .res files, dialogs etc...Plugin beginner: but can I do my own init function? yes you can, specially if you want to initialize some variable. But you should not create any geometry there and return this geometry in GVO (get virtual object). About the group, there's a note about it here. Each NodeType have a "parent" group. Glad that it is working now. Cheers, Manuel
  • Is it possible to control Camera with keyboard WASD like a FPS game?

    Moved
    8
    1
    1 Votes
    8 Posts
    3k Views
    A
    @ferdinand Wow,thank you so much ferdinand!
  • 0 Votes
    3 Posts
    742 Views
    ferdinandF
    Hello @Артём, we will set this topic to 'Solved' when there are no further questions or replies until Monday, November the 22th. Thank you for your understanding, Ferdinand
  • API for new behavior of opnening Windows in Layout

    r25 python windows macos
    5
    0 Votes
    5 Posts
    2k Views
    ferdinandF
    Hello @HolgerBiebrach, we will set this topic to 'Solved' when there are no further questions or replies until Monday, November the 22th. Thank you for your understanding, Ferdinand
  • How to remove the floating button on the plugin?(DLG_TYPE_ASYNC)

    r23 c++
    4
    1
    0 Votes
    4 Posts
    767 Views
    ferdinandF
    Hello @jeremyliu1989, we will set this topic to 'Solved' when there are no further questions or replies until Monday, November the 22th. Thank you for your understanding, Ferdinand
  • VS 2012 complains -c4dplugin.pdb not included

    c++
    11
    3
    0 Votes
    11 Posts
    1k Views
    ferdinandF
    Hello @ingvarai, we will set this topic to 'Solved' when there are no further questions or replies until Monday, November the 22th. Thank you for your understanding, Ferdinand
  • GeDialog Button Highlighted By Default

    r25 python sdk windows
    3
    1
    1 Votes
    3 Posts
    333 Views
    ferdinandF
    Hello @blastframe , we will set this topic to 'Solved' when there are no further questions or replies until Monday, November the 22th. Thank you for your understanding, Ferdinand
  • How can I get a Layer's objects with Python?

    Moved
    4
    0 Votes
    4 Posts
    1k Views
    ferdinandF
    Hello @delizade, we will set this topic to 'Solved' when there are no further questions or replies until Monday, November the 22th. Thank you for your understanding, Ferdinand
  • Changing VideoPost leads to TypeError

    r25 windows python
    4
    0 Votes
    4 Posts
    463 Views
    ?
    @m_magalhaes Yes, I think the error was because Octane was the result of rdata.GetFirstVideoPost() and those symbols don't exist in it. If I check for the Viewport Renderer, it seems to work fine. Thanks for the reply and symbol tip!
  • Override material tag in take

    r25 c++
    13
    0 Votes
    13 Posts
    2k Views
    ferdinandF
    Hey @krfft, thanks for posting your detailed results. Cheers, Ferdinand
  • How to Rotate an Object

    r25 s24 r23 python macos windows
    7
    0 Votes
    7 Posts
    2k Views
    ferdinandF
    Hello @WDP, this question would technically also be a new topic, please follow these rules. There is no formal notion of an object axis in the sense of a moveable entity in the API. Objects have their matrices (the global and the local one), which are effectively their own coordinate system opposed to the world coordinate system (or transform or frame when you prefer these terms over coordinate system). So, when you want to reproduce what is possible in the app, and move, rotate, or scale the axes of an object, without moving the geomtery of the object itself, then you will have to transform the vertices of that object. So, when the object has the world offset (0, 0, 0) and you want to move the axes to (100, 0, 0), you must first set the global object matrix to an offset of (100, 0, 0) and then apply the inverse of a transform that translates by (100, 0, 0) to all its vertices. I would recommend reading the matrix manual I did post in my first answer here. This will however only be possible for editable point objects, e.g., a c4d.PolygonObject. You are showing a generator object, i.e., a c4d.BaseObject with some cached geometry in your screenshot. You cannot move the axes for these objects, neither in the SDK nor in the app itself. We had recently this topic which dealt with moving the axes of a polygon object. Cheers, Ferdinand