• MSG_MENUPREPARE not sent to BaseShaders

    c++ r25
    6
    0 Votes
    6 Posts
    923 Views
    fwilleke80F
    I've changed this back to "Normal topic". It was a question, and it was answered, but since there's no solution, I didn't want to mark it as "solved.
  • Access renderer specific settings with python

    sdk python
    6
    0 Votes
    6 Posts
    2k Views
    ferdinandF
    Hey @wen, Thanks for sharing the example scene! Got a new question though, what do you mean with: "In R25 Redshift does not have a "Raw" color profile anymore" I looked at the wrong parameter; I thought your second script was still for REDSHIFT_RENDERER_COLOR_MANAGEMENT_OCIO_RENDERING_COLORSPACE as the previous example, but it is for REDSHIFT_RENDERER_COLOR_MANAGEMENT_OCIO_VIEW. So, you are right, "Raw" is still there Cheers, Ferdinand
  • Node description database versions

    3
    0 Votes
    3 Posts
    598 Views
    D
    Hi @m_magalhaes , thanks very much for the provided information. We are not modifying the database manually from an editor, but rather generate it on our own. That's why I was searching for an explicit documentation, because the process of adding nodes from the Resource Editor in C4D just to check an attribute may be tedious. Thanks we will consider doing that for version changes. Thanks again - I will take a look into this interface and ask again if I have questions for its proper usage. Cheers, Deyan
  • Get height and width (cm) of a camera focus area

    python sdk r21
    5
    1
    0 Votes
    5 Posts
    1k Views
    pyxelriggerP
    Hmm thank you!! It's not as difficult as I imagined I just had to make a change in the formula for some case, I used: x = focaldistance*math.tan(h/2)*1 [image: 1644929034240-96f1960e87e92c0bd8b3f677b453172d.gif]
  • Set Base View Rotation and Position

    python
    11
    0 Votes
    11 Posts
    1k Views
    ferdinandF
    @cairyn said in Set Base View Rotation and Position: @ferdinand said in Set Base View Rotation and Position: So, when a user has linked a camera to a viewport, e.g., set a camera as a rendering camera, this line of code will make that camera inactive and default to the internal viewport camera. Yep, that was the intent since the OP said they did not want a camera in the scene ("I need not to have this camera on the scene") but I may have misinterpreted the meaning. Not familiar with how 3dsMax handles its cameras. Yeah, I figured that this was probably intentional, but I just wanted to clarify that it is a bit of an odd thing to do. Cheers, Ferdinand
  • 0 Votes
    3 Posts
    703 Views
    D
    Thank you ferdidand, Sorry for not giving more contextual code... Yeah "potential ports" is what I would be interested in. Thanks for confirming that there is nothing in the API that would help me though!
  • ShowBitmap() from website URL

    python r25
    3
    2
    0 Votes
    3 Posts
    411 Views
    gheyretG
    @ferdinand Wow! you perfectly solved my problem! Thank you!
  • 0 Votes
    4 Posts
    632 Views
    ferdinandF
    Hello @till-niese, I did not say or want to imply that this is expected, I will have to test it myself. In the meantime, you can use maxon::Url as shown above to normalize paths if that is of importance for you. I will report back here when I have tried replicating your findings. When there is a bug, we will have to decide if we will fix it. The classic API is a dormant API and the bug, if it is there, does not seem to critical. I cannot tell you right away "that is a bug, and we will fix it (or not)", as this involves multiple operating systems and serialization of paths, which both can be tricky subjects. Cheers, Ferdinand
  • MSG_MULTI_CLEARSUGGESTEDFOLDER not called for TeamRender

    c++ r25
    6
    0 Votes
    6 Posts
    822 Views
    ManuelM
    hi, if I'm correct, you are trying to implement a NodeData plugin right? On this node, you are doing some action based on files that you store inside your own structure and not any baselink? Those files must be considered as assets. When you start a teamrender render, MSG_GETALLASSETS will broadcast to retrieve all the assets. You must react to the message so your assets will be collected. See this manual for more information. While collecting those assets, it can happen that assets have to be renamed if those assets share the same name but are in different directories. This will be done using MSG_RENAMETEXTURES. In that case, RenameTextureMessage will be sent as data and you will have to update the assets filename of your NodeData, either the baselink or your structure. Once collected, all the assets will be in the same directory as the .c4d file. Now the client will open the project and will try to retrieve the asset, it could happen that the message MSG_RENAMETEXTURES will be triggered again. Your code should work if the filename you retrieve from the hyperfile is updated. Cheers, Manuel
  • Keyframe Texture Tag with no material

    python r25
    6
    0 Votes
    6 Posts
    899 Views
    a_blockA
    Sorry, for causing extra work
  • Attribute Error when accessing Redshift parameters

    r25 python windows
    3
    0 Votes
    3 Posts
    984 Views
    ferdinandF
    Hello @davidweidemann, Thank you for reaching out to us and solving your own question :). To give a bit of background information, parameters can be composed in Cinema 4D. The simplest example is a parameter of type c4d.Vector. You can access the relative position of an object like this: >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION] Vector(0, 0, 0) But as users might want to access and animate the components of that vector individually, the vector is dealt with and represented as a parameter actually as a set of sub-channels, one for each of its components. >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X] 0.0 >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y] 0.0 >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z] 0.0 >>> This is why DescId are composed out of up to three DescLevel. To access the component of a vector you need two DescLevel, e.g., c4d.ID_BASEOBJECT_REL_POSITION and c4d.VECTOR_X. And while you might not be able to deal with the enclosing parameter, you might be able to deal with its subchannels. The input and output ports of an RSColorAbs Redshift node are of type RsColorAlpha, a parameter type that is composed of a Vector and a float, so it is effectively a four-component vector. This parameter type is not exposed to the Python API, so the API has no clue what to do with it. But it can deal with the subchannels. # Python has no clue about that parameter type at REDSHIFT_SHADER_RSMATHABSCOLOR_INPUT. >>> RSColorAbs[c4d.REDSHIFT_SHADER_RSMATHABSCOLOR_INPUT] Traceback (most recent call last): File "console", line 1, in <module> AttributeError: Parameter value not accessible (object unknown in Python) # But we can access the subchannels which are standard types. This is a two DescLevel access >>> RSColorAbs[c4d.REDSHIFT_SHADER_RSMATHABSCOLOR_INPUT,c4d.REDSHIFT_COLORALPHA_COLOR] Vector(0, 0, 0) # We can even reach into the subchannels of a subchannel, here for example to access the red # component of the RGBA vector tuple that is represented by the type RsColorAlpha. >>> RSColorAbs[c4d.REDSHIFT_SHADER_RSMATHABSCOLOR_INPUT,c4d.REDSHIFT_COLORALPHA_COLOR, c4d.VECTOR_X] 0.0 Cheers, Ferdinand
  • Cinema 4D Python access Save checkbox

    python
    4
    1
    0 Votes
    4 Posts
    580 Views
    C
    Thanks so much @m_adam and @Cairyn for your answers!
  • ssl certificate error in debug console

    c++ r21
    8
    0 Votes
    8 Posts
    1k Views
    Y
    Hi @ferdinand, I did not get this problem in R23 and R25 yet. Maybe it exists, but I did not see. I got it only in R21. But as @m_magalhaes mentioned: it is known issue and was fixed in later releases, so I leave it.
  • Best practice getting all objects in a certain Null

    Moved
    12
    0 Votes
    12 Posts
    2k Views
    M
    Found the problem I tried to Kill a document which was not alive, don't know if this is necessary with a merge. if c4d.C4DAtom.IsAlive(temp): c4d.documents.KillDocument(temp) And another gotcha c4d.documents.SetActiveDocument(temp) seems to be mandatory if you want to use CallCommand() -> and do not to forget to set the doc back to active after your routine. Thank you
  • Toggle Only select Visible element.

    Moved s24
    3
    0 Votes
    3 Posts
    893 Views
    r_giganteR
    Hi @akramFex , I apologize for the long silence on our side. Unfortunately the thread fell through the cracks of the Xmas period and we lost track of it. I'm glad you were able to find the solution and I'm grateful you wanted to share it with the rest of the community. Cheers, R
  • Noise - Keyframe Reduction using Python

    r21 python
    3
    0 Votes
    3 Posts
    634 Views
    ferdinandF
    Hello @brucek5, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand
  • 0 Votes
    3 Posts
    614 Views
    ferdinandF
    Hello @Tomoya, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand
  • The oldest SDK for Cinema 4D 19-25

    sdk r19 r20 r21 r25 r23 s22 s24
    7
    0 Votes
    7 Posts
    2k Views
    ferdinandF
    Hello @jeremyliu1989, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand
  • 0 Votes
    10 Posts
    2k Views
    ferdinandF
    Hello @del, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand
  • UserData

    Moved python r25 windows
    4
    1
    0 Votes
    4 Posts
    943 Views
    ferdinandF
    Hello @bokibo, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand