Hey @treezw , first of all, nice icons, love it!
If you want to customize your plugin menu, you can check this Building menus with C4DPL_BUILDMENU in S26+.
Cheers~
DunHou
Hey @treezw , first of all, nice icons, love it!
If you want to customize your plugin menu, you can check this Building menus with C4DPL_BUILDMENU in S26+.
Cheers~
DunHou
I think picture viewer is hard-coding, we can do nothing, but wait for official answer
woops, I try lots of stuff to debug this, hope it can fix soon. will use old way to track new objects for now.
Hi community,
My understanding is that C4DAtom.GetHDirty(c4d.HDIRTYFLAGS_OBJECT_HIERARCHY)
can track the document dirty with when a new object is created( hierarchy changed of course ), but if I delete objects, the dirty count will not change, but if I reload python plugin, it can worked again.
I didn't know if I misunderstand this method, why that happened?
Cheers~
DunHou
Win11 23H2 + C4D 2024.5.1
import c4d
import typing
doc: c4d.documents.BaseDocument # The active document
op: typing.Optional[c4d.BaseObject] # The selected object, can be None.
class Dialog (c4d.gui.GeDialog):
def CreateLayout(self) -> bool:
return True
def CoreMessage(self, mid: int, data: c4d.BaseContainer) -> bool:
if mid == c4d.EVMSG_CHANGE:
doc = c4d.documents.GetActiveDocument()
print(doc.GetHDirty(c4d.HDIRTYFLAGS_OBJECT_HIERARCHY))
return super().CoreMessage(mid, data)
if __name__ == '__main__':
global dlg
dlg = Dialog()
dlg.Open(c4d.DLG_TYPE_ASYNC)
wow @kmhfygg , super cool plugin, I had a plugin to catch batch render state, but message with email (I know nothing about app), and very happy to see your awesome work!
PS : you can edit your post here
Hi community!
Add Basic CentiLeo Material support, also with ConvertPorts data, This a "new" GPU Renderer and in active development. I am very interested in it.
Not add AOV due to still being in the early stages of development, waiting for this.
Cheers~
DunHou
Hey @Richard-Prism ,
You can check the my custom library Renderer.Redshift.Scene on Github here , witch also can visit from General Talk, and modify the codes, or just use this if match what you need.
Nothing special here.
Cheers~
DunHou
import c4d
from Renderer import Redshift
def main():
scene_helper = Redshift.Scene(doc)
scene_helper.auto_proxy(node=op, remove_objects=False)
if __name__ == '__main__':
main()
Hey @ferdinand , thanks for your super useful answer here!
@ferdinand said in How to simulate "Cappucino" behavior?:
What do you want to record, and how?
@ferdinand said in How to simulate "Cappucino" behavior?:
Animation Conflict: You seem to imply that you want to just press play and then have your tool record the camera. This can again result in conflicts, depending on your approach. As a fix, when you have a static scene, you can just animate/update the camera yourself as I did in my dialog example in (1). But when you animate the camera in an also animated scene, you would have also to manually animate the scene. I.e., for each frame you "animate", you must also advance the active frame of the active document and then execute the passes on the document, so that the scene does update. Remember that as a rule of thumb, you must execute the passes three times in a row to fully update a scene (due to some complex dependencies things like MoGraph can build)
@ferdinand said in How to simulate "Cappucino" behavior?:
Long story short, there is no super good way to do this, especially in Python. Python might be intrinsically too slow for this as you only have a very small window of 1/30 of a second - or even less - to carry out quite a bit of computations. And you also cannot just pre-compute/cache thing as you are dependent on user inputs.
Thank you for all your suggestions!
Cheers~
DunHou
Hi community,
I want to rebuild a tool similar to "Cappucino" but bake the camera and some parameters,
so :
Cheers~
DunHou
Hey @ferdinand , oops, I have an impression of this topic and tried to recall it, but I couldn't find any keywords in my mind at the time. I must have gone crazy.
And the key is the GetData(), I have no concept of file composition and did not realize that what is returned here is the data required for an image file. Thank you very much.
Cheers~
DunHou
Hi community !
I want to send my render images to a website, but I have to use BaseBitmap.Save to save the result and then post them, I am trying to speed this a little, and I didn't know to can I do this :
Is that possible to do this?
Cheers~
DunHou
@ferdinand fine for that, like I think, this is not perfect solution for this, thanks for your confirm!
Cheers~
DunHou
@ferdinand just a quick question, how can we draw the _label text perfect above the image with alpha but not with a bg color?
Hi,
You can use BitmapButtonCustomGui.SetImage for a bitmap button, you can Init a bitmap with disk file, or use c4d.bitmaps.InitResourceBitmap for icons witch registed with a uniqe id.
Cheers~
DunHou
Hi @mikeudin
Not an answer but a question, how do you get the Illustrator path and convert to text data?
Cheers~
DunHou
Hi community!
New Updates here :
PBRPackage means a suite of pbr textures, like a stone texture pack form PolyHaven or Megascan, you can provide the folder and the name to get the slot they should be:
data = {"diffuse": Rock Stone 01_albedo.jpg,
"normal": Rock Stone 01_Normal.jpg,
"displacement": Rock Stone 01_disp.jpg,
etc...
}
Material Maker can easily add pbr materials from a package, and also you can use it with individuals textures.
But all of this build with this library, so only node materials on Redshift/Arnold/Vray, Octane and Corona is supported by thier own logics.
Cheers~
DunHou
This is current version of plugins manager and growing up plugins!
Hi community!
It is a great honor to introduce new Boghma and core products : Boghma Plugins Manager
We try to provide free plugins market for users and developers :
So far, we have above 30 plugins and keeping going on, over a month of internal testing inside China, there have been over 9000 downloads, hoping to attract more developers to release their free plugins here.
And as always, if you have any good ideas, please let me know, or you can join our discord channel in the website and get real-time updates and feedback .
Cheers~
DunHou
Wow @ferdinand!
What a super detailed and super useful information ! Always learning great things from your super user-friendly answers for rookies like me
Memory Management is very useful to understand what happened here, I will read it again tomorrow after work, hope I can have a deeper understanding then
About the Interfaces/References/Ref class name, super useful information, I always confused them and thought it was an inheritance relationship or something like that, it is much cleaner now!
Thanks for your typing tips here, I had learn this by testing your answers and codes (In fact, most of my programming skills are learned through studying your code, and I am truly grateful to you)
Last, thanks or your times during the meeting time!
Cheers~
DunHou