@JasenLux said in Automate Turbosquid uploading with Python script:
Even if in the morning I've got a bunch or renders done over night - and it's all automated - I'd be very happy.
A more or less automated rendering could be achieved by using the native Render Queue if you create your files with some rigid discipline.
Start out by creating a base C4D file that contains the necessary cameras and render settings with some appropriate naming. The render settings should be hierarchically ordered, with the basic setting on top and all the different resolutions as children of that setting, with only the necessary settings overwritten.
If there are TurboSquid requirements that you cannot achieve with render settings, you can create some takes that offer the necessary changes (this might be the most difficult part, as you may need to overwrite parameters in tags that you don't have in the basic file, but only create with your project, but that very much depends on what you really need to change, I am not familiar with the TurboSquid requirements.
Once that file is set up, you only need to copy your master data into that, save it under the appropriate name, and in the evening add it a few times to the render queue. As you can select the take, rendersetting, and camera for each job, the prepared file can be rendered out without saving multiple versions of it first.
(That sounds like some script would make it easier, too, but I just fleetingly looked at the Python and C++ documents about BatchRender, and it doesn't look as if you can control the job settings individually?)
I recognize that this would only be good for the rendering part, but... if TurboSquid doesn't offer an official, supported web interface for uploading, then as @zipit said, "hacking" into the protocols would be just one gigantic mess that you don't really want to spend money on as it is very likely to break at the first opportunity.
Thanks for mentioning me ;-)
I confirm it's strange.
Could you use the g_console=true and g_logfile=d:\logfile.txt as said in this page
(both will contain the same lines)
Send us the logfile (email@example.com) if you don't want to share that in public.
with regard the use of the range slide in a resource file please have a look at <Cinema 4D folder>/resource/modules/olod.res: the LOD_BAR parameter is a range slider
With regard to using the NodeData::GetDDescription() please check:
@m_adam said in How to access ‘Freeze View function’ with Python ?:
WorldContainer with the ID 25085
So there are no WorldContainers for Y and X, ?
And this is since R19 ?
Above is R18, This is no longer possible ?
I am glad it does help you. I forgot to mention one thing, which is worth pointing out, when somebody stumbles over this thread, searching for performing edge selections.
The way I treat edge selections in this script only works because of the specific scenario - selecting edges that are only associated with one polygon. In all other cases you have to select two edge ids (one for each polygon) for each edge or use the convenience methods of c4d.BaseSelect for that. Otherwise you will end up with a corrupted edge selection.
Hi fyeng, thanks for reaching out us.
With regard to your question, I confirm that the workflow you're trying to achieve using the python executable found among the Linux CLR modules is not possible since only c4dpy, as you've already seen, has access to all the needed modules.
Hi angel23, thanks for reaching out us.
With regard to your question the answer can be pretty wide depending on the depth you're aiming to tackle.
Cinema 4D comes as @bentraje properly stated with C++ and Python APIs: whilst the first is bigger and more comprehensive the second is a specialized subset of the first and easier to approach.
For the Cinema 4D API newcomers we recommend to stick to the Python API which gets rid of all the hurdles of the building process and to get proficient with it.
Upon getting used to it and to the foundation Cinema 4D API concepts, moving to C++ won't be too complex.
@zipit Thanks for the insight! This makes sense, I vaguely recall typo-ing random.seed and forgetting the () and it threw an error so I fixed that, went writing more of the code and then didn't relate this error back to that brief moment. I don't recall assigning it as a property, but I do have a seed = 12345 elsewhere in the code, so maybe I did!
Thanks all for sanity-checking it, solved.
Hi @daltonmonaie, could you open a new topic for the last things regarding the update of the render path and post all your code if possible so like that we are sure we speak about the same things.
I've created the new topic, please continue the discussion on this one: Update Render Path in an Xpresso Node.
Hi, @Xplorer do you have any example in Cinema that would have similar behavior?
If you could explain in detail or give example especially the second part of this sentence "load in c4d a particular object already modeled, and also have it hidden to stay focused on the settings and sliders available in the plugin." it will be nice.