Jump to content

MighT

Developer
  • Posts

    400
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by MighT

  1. Sorry, to hear it feels so complicated. Here's how to set it up: Your objects belonging to an Asset Group should be grouped under a parenting Null object. All materials belonging to an Asset Group should be assigned to a layer. Create an Asset Group of type Object. The parenting Null object is the one linked with this Asset Group. Create another Asset Group of type Material Override. Select the first Asset Group and link the material layer. That should be it. No Rules needed. Rules are there only to restrict the variety provided by the Asset Groups. The Vampires and Zombies example is already a bit advanced. It is described in detail in the manual. The Base Object Weirdoz example is more basic (even if it contains a bunch of Asset Groups and Rules). Either example is also discussed in the video tutorials, see here. Latest documentation (as delivered with the plugin). And here's the simple project file you asked for: asset_juggler_simple_demo.c4d
  2. Thanks, feedback is always welcome, regardless customer or demo user. Even if I dismantle my image of a business man even more (as if there ever was such an image...), for Lotto instead of using Asset Juggler it's cheaper to go with: 1 - 2 - 3 - 42 - 5 - 6, additional number 666. Scientifically proven, absolutely fail safe, this combination is guaranteed to make somebody rich.
  3. You may interpret too much into my post. Do not get me wrong, I appreciate your advice. Really. For some schizophrenic reasons, which I do neither want to discuss publicly, nor would I expect anybody to understand, it is as it is.
  4. Thanks for the tip. I am aware of this. It's actually deliberate. Mentioning NFTs would only increase chances to actually earn money with this...
  5. We have just released a small update to version 1.2. The update is of course free. Existing customers will be notified by email and in Asset Juggler Discord. The demo version can also be used to update. Changes (more details in included PDF documentation): Added: ANY option for Asset 1 of Rule Types “Force Pair” and “Exclusion”. Added: CSV reports per Asset Group Added separate commands: Folder to Render Queue Select an arbitrary folder, all project files found in this folder will be added to C4D's Render Queue. Split JSON Metadata Splits JSON Metadata report files into one file per combination.
  6. You basically inverted the flow of information, right? Parameters are generated outside first and then passed into Scene Nodes/Capsule to act accordingly. I had the same idea later on, but did not find time to post. Glad you came up with it on your own.
  7. I'm not sure there is a solution to this, yet. As you can not create lights in Scene Nodes, yet, you'd have to get the information out into classic C4D somehow. I tried to use Xpresso to access the generated Selection tag and from there read the polygon information, get the points and calculate the size. But I'm not able to get Xpresso to read anything useful from the generated Selection tag. Not sure, why. I tried priorities and object order in OM, nothing resulted in Xpresso successfully iterating the Selection tag (selection count is always shown as zero). This does not mean, this Xpresso approach does not work, I may simply be too stupid to get it to work. Another approach could be to use a Python tag to try similar. But currently I lack the time to do further investigation. Sorry!
  8. I'm not sure the developer of the Octane plugin is in this community, but he for sure is present in Maxon's Plugin Café. His name is Ahmet Oktar. He's a really nice guy. It could be well worth asking these questions over there and getting in contact with him.
  9. Deformers and Effectors, yes, they do. Though, to be precise, there are two kinds of caches. Polygon caches and Deform caches. So, technically Deformers do not create the same kind of cache, but they do create one nonetheless. Lights, probably not. I'm not sure, if there is some parallel or if there the checkbox got indeed used in another context. Like for cameras, but without using a different icon. Most likely the latter. And I already agreed, that in principle I do understand your argument by now. I explain the technical background, only. By the way, if you do install the SDK examples (you need to get them built, though), there's one interesting example which visualizes and lets you dig through the cache hierarchy. There you could actually see in a tree like structure, what I am describing above.
  10. Yep, indeed I did. And this argument I could maybe follow from a user point of view. To answer the question from the last screenshot: From technical point of view there is nothing to turn off on a polygon mesh (as Cerbera already said). The checkmark/enable should be called correctly "Generate Polygon Cache", because that's what it is doing internally. A polygon mesh is the cache itself, so it does not have this option. This should also explain it for Back-/Foreground and Floor (neither needs a cache). Figure, Lathe, Rectangle are all parametric objects with a poly cache which needs generating. The only one I would need to think about is the Stage object. Technically I think it needs one, because you can parametrically select background and foreground objects, which then get cached in the Stage object.
  11. Pixel perfect and arbitrary selection certainly make this a bit more challenging. My first thought was to go down the Xpresso route (of course it could be a command as well, if one wants a more static one click solution instead of dynamically adapting to circumstances), using the bounding boxes of selected objects as a base for the math. But that approach will fall short with arbitrary shaped objects in arbitrary positions and orientations. In this case it can get quite complicated and is most likely not suitable anymore to be solved in Xpresso. And it can get even more complicated, how about hairy objects? Some more details and precision in requirements is needed. For the simple case I could imagine to pick up the challenge. For the general case, I could as well, at least to a certain extend, but I doubt, I'd do so for free.
  12. @MJV I'm obviously one one of those. And as a developer certainly tainted in my views. But could you maybe elaborate on the failure of logic? From my point of view these options are fundamentally different. The dots only toggle visibility, while the checkmark toggles execution during scene evaluation. I would certainly argue against mangling these two functionalities into one. I need them separated all the time. Best example, using some Xpresso workflow to clone something onto some generated mesh. There I need the mesh to be generated, but do not want it to be visible.
  13. MighT

    Corner Selection

    I'm not sure, what count of segments means? If it is the number of selected polygons, then the "Selection to Indices" node comes to the rescue. On it's output you get an array with indices (with default settings) of selected entities (points, polygons,...). "Get Count" node can then deliver the size of the array and thus the number of selected entities.
  14. I'm not Redshift expert, either. Neither do I have an explanation for the sheer amount of difference in size. But in general there will almost always be difference between texture size in size in memory. Depending on file format the difference will differ. Even with lossless file formats, the image contained will be compressed. I think BMP is one of the few exceptions, where the pixel data is really stored as is (and hence the format is what it is today, rightfully marginalized). For an 8 Bit RGBA image uncompressed this means number of pixels times 4 bytes. Then in memory it may depend, how for example the renderer handles image data and which format is used. To represent a larger color space this will often be a floating point format with at least 32 Bit per color channel. Resulting in 16 bytes per pixel. Just wanted to mention this. It's probably known anyway. In that case just ignore my post.
  15. @IcecavemanThanks. But I certainly do not want to enter the stage here. I'd prefer to see you going on with your project. I enjoy this thread as it is. @eikonoklastesvideo link only triggered the child in me (or the one I am, even with grey beard...) and I had to give it go. As I will be offline for a bunch of days anyway, I'd say, I will invest a few minutes of polishing the setup and then break it down in a new thread next week.
  16. Rather off topic... For what it's worth I created an inset driven by noise in Scene Nodes. Once as a Scene Nodes setup (much simpler). And another one as a Capsule, where for unknown reasons the Scene Nodes setup does not work (pretty sure, I made some mistake), so I went down the manual route, which makes the setup in the Capsule look a bit more complex. The figure is processed by the Capsule. The plane gets generated and processed by Scene Nodes directly. Inset is driven by Perlin noise. Project file: test_scene_nodes_inset_noise.c4d Disclaimer: In no way, I want to interrupt or even take part in this interesting discussion. I'd rather enjoy is as silent bystander. Nor do I want to draw a comparison to the slick methods shown from other DCCs in this thread. While Scene Nodes in general does provide means to attach arbitrary data to whatever entity (points, polys, edges,...), the tools are not quite there, yet. And I did not make use of such. Also I certainly do not want to open a discussion, if all that has been shown in this thread is achievable with Scene Nodes. I only saw above video and thought, that should be easy. So, I had to try. And in plain Scene Nodes it was, actually. I did not animate it, but that should be a no brainer. Nothing is polished in above example, no parameters exposed. If anybody would like me to polish it a bit, let me know, but it will take until next week. If anybody knows, why the Scene Nodes setup does not work 1:1 in a Capsule, I'd be interested to hear that. I hope, nobody minds me posting in here instead of a new thread.
  17. MighT

    Json dump variable

    Xpresso or a Python tag are almost certainly not the place to implement such stuff. If you wanted to go the Python tag road, make surre you implement the stuff not in Execute(), but as a reaction to a button press in Message(). Otherwise such stuff is done in Script or rather a dedicated CommandData plugin. Maxon provides good and free developer support at Plugin Café, but they will only answer technical questions and not write code for you. Cairyn provides a nice Python tutorial over on Patreon. And you can book me for 1:1 Python training. Are you aware, that me and Cairyn do each have ready made solutions for such purpose? My Asset Juggler and Cairyn's Collie Variant Generator. None of these is exactly cheap. But even assuming a low hourly rate of a few single digit dollars, I am pretty sure, either will be cheaper than trying it on your own. How many hours could you invest for these prices and how many did you already invest, including writing these messages?
  18. MighT

    Json dump variable

    Why did you remove the main function from the Script node? When you create a new Script node there is such. It is mandatory and needed. Move your code into the main function. All your code, except the imports. Next you node has an Output port (and it should have, which should actually also rather be connected, to make sure the node gets always executed), but your code doesn't assign data to the output. This is needed, too. Lastly, please, do not get me wrong, I need to ask, if you are sure, you want to do, what you are doing there? Are you aware how often such an Xpresso gets executed? Spoiler alarm: It is more often than you would think. Certainly not just once and also not guaranteed to be only once per frame. In my mind doing file action in an Xpresso tag is not the best idea. I can not answer these questions, as I have no idea about your goal. Maybe I could give better advice, if you told some more details about what you are actually trying to achieve.
  19. MighT

    Json dump variable

    Usually it works just like so. You only need to make sure the port is named exactly as the variable (capitalization?). Long time ago, I once had an issue where a renamed port was not recognized in code. Deleting and recreating the port then solved the issue. For out ports it's a bit different, as these would need to be defined as global in the Python Script node. Otherwise it's hard to tell without project file. Also you neither did tell nor state in your profile, which version of C4D you are in.
  20. New version: I added another parameter, where you can directly edit the Date String format. See above linked Python docs for the tokens to use in there. test_physical_sky_date_time.c4d
  21. I don't think you can do this with Xpresso. The Time parameter of a Physical Sky object has a very specific data type (DateTimeData), which is not supported in Xpresso. You can not even create a respective input port for a Python Script node. Maybe I'm mistaken, but I doubt it. Instead I implemented a small Python tag, which converts and stores the time information in its User Data. You can copy/drag the tag around, but it will only work on Physical Sky objects. There is no check to enforce this, on other object types, the data will simply be bogus. The User Data is on the tag itself. If you want to use it in Xpresso, you need to use the Python tag there, not the parenting Physical Sky object. Here's the project file: test_physical_sky_date_time.c4d Check Python docs here, if you want to change the format of the Date String in tag's code. It's straight forward. Cheers
  22. MighT

    C4D Tabs

    Hi everybody, we have recently updated C4D Tabs to version 1.3. Main reason was the release of C4D S26, of course. We had a bit of bad luck with the initial release of C4D Tabs, as we released it only a few days before Cinema 4D R25. Of course the new project tabs in R25 rendered the name providing feature of C4D Tabs kind of redundant. Why did we release it nevertheless? Works in C4D R17+ (so you can get a bit of R25 feeling in older versions) Session Management does not sound like much, but actually it is my preferred feature and it works independently of C4D Tabs' project switching (I mean, you do not need to use C4D Tabs dialog, if you do not want to). Everybody likes thumbnails 🙂 Check out C4D Tabs website or C4D Tabs plugin page here in Core4D. Cheers, Andreas NOTE: This announcement got tagged "Xpresso". C4D Tabs neither has something to do with Xpresso nor does make use of Xpresso. This is not done to mislead anyone. But setting a tag is required and "Xpresso" is the only tag to choose from...
  23. MighT

    C4D Tabs

    C4D Tabs is a Cinema 4D plugin to increase your productivity. You will be able to switch between your projects in an easy and fast way (with preview!). It also comes with extra features like save/restore sessions. Customize it as you want and start working faster and smarter. Features Fast Project Switching Session Management - Store and Load groups of projects, easily switch between sessions Start with last opened projects Keyboard shortcuts to switch even quicker between first ten projects Customizable UI and workflow (thumbnails, tabs, dropdown, menu or any combination thereof) More preferences options than you could ever imagine for a project switcher... Why would one want to buy it, since Maxon added project tabs in Cinema 4D R25? Provides similar experience as Cinema 4D R25 for Cinema 4D R17+ Session Management! The simple experience of C4D opening where you left, sounds like a minor feature Believe us, you will get used to it faster than you think Project thumbnails still provide a different feel
  24. Asset Juggler assists with the creation of series of unique combinations of arbitrary assets. Be it in game development, in order to quickly show different options and variations of a project to a customer or, as requested several times in this community, for series of unique images... We put quite a bit of effort into the design of Asset Juggler and its workflow, to provide as much flexibility as possible, while at the same time keeping the time to results as short as possible. The unlicensed version works as demo, so all functionality can be tested prior to investing money. Only limitation, series will have a maximum of five combinations. Features ▪ 5 types of Asset Groups ▪ Support for animated assets ▪ Up to 1000 Asset Groups per project ▪ Up to 1000 Assets per Asset Group ▪ 6 different types of Rules ▪ Up to 1000 Rules per project ▪ 5 different modes to Bake the final series ▪ Live-Preview ▪ Statistics and bar chart ▪ Different report formats, for example one prepared for Openseas ▪ and more… Release History: Version 1.1 Added: Options to use normal Instances instead of Render Instances for Live-Preview and Baking (useful, if Hair or other features incompatible with Render Instances is involved). Added: Added Texture tag options in Material and Material Override Groups configuration. Note: Also see Asset Group on hidden function of Material layer link field! Added: Report prepared for Cardano Added: Button to Lock None to Zero for all groups at once. Fixed: Asset Group and Rules tabs not correctly restoring their enabled state. Manual: New features, added notes, added parameter defaults and did inevitable corrections. Version 1.2 Added: ANY option for Asset 1 of Rule Types “Force Pair” and “Exclusion”. Added: CSV reports per Asset Group Added separate commands: Folder to Render Queue Select an arbitrary folder, all project files found in this folder will be added to C4D's Render Queue. Split JSON Metadata Splits JSON Metadata report files into one file per combination. Version 1.3 Fixed: Crash bug (in versions 1.0 to 1.2) (found by community member Bezo and discussed here) Fixed: Border of popup dialogs was not shown in Cinema 4D S26
  25. I can not imagine this script could help in this case. It is not impossible to write an incremental scene loader, but seeing it's a free script, I doubt that has been done there. So the script will also load the entire project and then offering access to the top level objects. This is not going to help here. I think, your best bet is to ask somebody with enough RAM to fetch the needed objects for you.
×
×
  • Create New...