![](https://www.core4d.com/ipb/uploads/set_resources_156/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
McDev
Premium Member-
Posts
43 -
Joined
-
Last visited
Content Type
Profiles
Blogs
Forums
Gallery
Pipeline Tools
3D Wiki
Plugin List
Store
Downloads
Everything posted by McDev
-
Ah great! It was too late yesterday, should have just do research wiht a sane mind today. it works just as intended! With this my faith in Maxon is back on track, as a game dev you had to be patient in the past.
-
With shock today I had to learn that my most required PlugIn Vertex Normal Tools is apparently dead: http://frostsoft.blogspot.com/p/plugins.html I still got the 1.0.5 version around and put it into 2023.2.2, it does not seem to work flawlessly, but generally it does. Yet the worst is that the Button "Snap Selected -> UnSelected" is not vissible. This is what I need a lot and without it the whole tool has no purpose and that is a huge cut into my workflow with C4D 😞 Edit: It might be that there was a Lite and a paid version. Issue is that I used it at work the whole time but now I am freelancing. Maybe I only got the Lite version here. I also have a 1.0.3 here which I am sure is the paid version but it won't run in 2023 due to old Python. So I wonder: Are there an alternative, does C4D meanwhile have it built in? Does someone have a working version of this in the latest C4D? Which may be the best alternative Software (Blender, Modo) or PlugIn for that to do it? Does someone actually know who FrostSoft is, an email or so?
-
I was able to continue with this and making quite some progress. Also I switched over to Python now, this really is easier! EDIT: Found the soultion: shader.CheckType(1029508) Currently I try to convert an Octane Material. The issue is now that I need to check the textures. I ask for the BaseShader object and want to know if it is an (Octane) Texture Shader. The Property says this: print mat[c4d.OCT_MATERIAL_DIFFUSE_LINK] <c4d.BaseShader object called 'Name/ImageTexture' with ID 1029508 at 0x0000020CAEDABE10> Now how do I check if the property is this object, how can I access the ID "1029508"?
-
Well I have to learn a lot, makes me question if I should switch to python 🙂 First I had to change the GETACTIVEOBJECTFLAGS to ::CHILDREN as ::NONE would only give the root objects. I though that this would select all the children of selected objects as well. I tried to do that but obviously this is not working. Can someone point out to a noob how this can be done? Or should this even work as expected? I am only getting "Tags found: " not "Tags found: 0" int tagcount = tagList->GetCount(); ApplicationOutput("Tags found: " + tagcount); EDIT: I don't want UVW Tags, I want TextureTags of course... So this is semantically wrong. Also I tried getting a list of tags but I failed. As I don't even know yet how to use dynamic arrays (but I will soon) I choose the AtomArray, but it doesn't seem to take the tags that I append (very bottom and yes it is called). I wonder why? Also what kind of List would be ideal to store tags or other objects? Is AtomArray common or rather some specific Tag list? Do I make a fundamental mistake here? Well my current goal is: 1. Get all UWV Tags of selected objects. 2. Filter these tags by some rules (if offset and scale are not normalized) 3. Select these tags in C4D (deselect everything else) 4. Optionally change some of their values. I just ask dummy questions, if someone helps that is great, if not I keep digging 🙂
-
Alright this is getting better! I hate the documentation but I was able to find out how GetActiveObjects can be used. I also managed to get Debugging working, apparently I was not having the correct project set to be run in VS... This code now deletes all TextureTags except the right hand side one of all selected objects.
-
I wasn't sure if you should do that per Tag or rather per Operation. Because say you delete 200 Tags of 100 objects, do you add 200 Undo entries? Wouldn't you want just one for the whole operation? Like say Remove unused materials. Thanks for the extra tips, makes total sense. I still had trouble with the Debugging, that is something else but I don't have the code until Monday. It is I guess still trying to find some lib file within the Project-SDK folder.
-
Thanks, I got this working for C++ as I rather hate python. Still I need to learn more C++ fundamentals. For now I miss how to get selected or all objects how to debug (start debug fails, no valid Win32 Application) or write a console log And yes the Octane Materials work with the regular TextureTag. class RemoveTextureTagsButLast : public CommandData { public: virtual Bool Execute(BaseDocument* doc) { doc->StartUndo(); BaseObject* const object = doc->SearchObject("Cube"_s); if (object == nullptr) return false; int count = GetTagCount(object); RemoveTagsFromLeft(object, count); doc->AddUndo(UNDOTYPE::DELETEOBJ, object); doc->EndUndo(); //Does a refresh of the editor windows EventAdd(); return true; } int GetTagCount(BaseObject* object) { int count = 0; while (object->GetTag(Ttexture, count)) { count++; } return count; } void RemoveTagsFromLeft(BaseObject* object, int count) { for (int i = 0; i < count - 1; i++) { object->KillTag(Ttexture, 0); } } };
-
Hello, I have this situation that we mainly do offline rendering using Octane but often I am assigned to make Realtime apps based on these models. It is absolute horror sometimes to convert these scenes, with mixer materials inside mixer materials and multiple assigned material stacks (although only the last one is rendered). Currently we only run R20 btw. Here are reocurring tasks that I do: Strip away all the material tags except the last one. Reassign materials (if a material is assigned to a null-parent, I want it to be assigned to the mesh below unless it has a texture-tag already) Normalize UV coordinates (sometimes offset is set to 100% but I need it to be 0%, otherwise the engine importer/fbx exporter will generate another material instance... Same is for scaling. Bonus: Apply Texture-Tag offset and scale to the actual UVW tag and normalize the texture-tag this way. Converting Octane materials to C4D materials (Diffuse color and texture would be enough). So can someone give me any hints on how to approach this, if things can't be done (especially regarding octane) and if I should stick to C++ or python? I messed around a little bit with c4d plugin development but I simply have no starting point currently. I always feel so lost when I see a new API and I don't want to do mistakes, especially as a C# dev C++ is a bit new. Maybe I simply post my progress and code here and get some feedback or maybe someone can help me out to maybe get started with the first point in the list? It basically should be iterating all the nodes and removing all Material tags except the right hand side one. Shouldn't be that complicated... Any other wishes that come to your mind? Well I already bookmarked this one, I should start with this for now 🙂
-
Not sure if it has been said, but the most important feature for me I just found out by accident. It's quite simple but the Create Point Tool now does not destroy the UV on a Polygon! So you can Add points on textured models. This was a feature request of mine. Also with the R18 knife tool this works great. It is great for working with Textured models or using a Texture to mesh modelling technique, which would have been possible only with frontal or projection mapping before.
-
I just tried it again and it actually works! Not sure what didn't work at the first try of mine. OK those are some nice improvements then. I am also diggin deeper into PlugIn creation and the C++ examples are a nice to learn from, not that hard to go through as I was thinking.
-
Thanks for the input, Seamilar II looks very interesting! That Align Edges tool is exaclty what I had in mind for points at least. Also UV vonc seems quite advanced, I will check them out! I am also looking into some resources by MAXON right now to see where I can get. But if I don't even have to do that stuff even better
-
Cinemas UV Tools I think haven't been touched in a decade. Even though I didn't expect anything I just opened up R19 and I saw a single yellow entry (new features) which is the Select Tab in the toolbar, which is at least something. I demand an improvement! So I had this idea for some UV tools a while ago and now in this Forum maybe I can find help. Eiher there is something around already or I can figure out how to do it on my own or maybe even find somebody who is interested in collaboration. That said I have no idea where to start, I made a simple Python script and it was a mess. I know C# quite well so C++ would be fine but I really have to get into that. Can you point me in the right direction? Where should I start and what can I even expect. I maybe have to make my own window that you would put next to the UV Tools and maybe some extra buttons that you can add in the UV Toolbar. Would it be possible to extend tabs or eve ncontent inside of the UV Mapping Window? E.g. the Transform Tab? So anyway here is a few things that I want to have, what do you like to see? Make Vertex positioning easier It is not possible to set the position of a UV point directly, I am only able to move it relatively. I want to set a point exactly on X=1? Impossible, or am I missing something? Line up and even out Especially helpful when working with modified regular geometry like curved strips or extruded and beveld cylinders. Then I want to have a regular UV but mostly I end up with distorted UVs when I use auto tools. This mostly is a task where I iteratively line up edges, lock these points and do another relax. After some clicking you end up with the result in the middle, then you go over each line inside and ideally both directions. The result then isn't perfect but to work with. (Sure for this example I could just use a cylinder mapping as the right image shows). Helpfull (one click) tools: Flatten: (scale x or y to 0). Line up: scale x/y to 0 and make a regular distance for each selected point on the other axis. Optionally select an existing point which will be chossen as a reference. Gizmos for moving or another way to move only in one direction with the mouse. Snap UV to grid / Texture resolution Say you want to bake textures like lightmaps or you work on tillable textures this feature is helpful. Because if you refer to pixel 1, instead of 0,93 the result can be very different, especially when baking and working with tiling textures. Make Layouting easier E.g. sometimes I want to stack UV Shells evenly in a row or simply move and scale a piece to a specific location. So imagine atlassing, I have my UV setup in full size but I want it to move to the upper left corner and divide the UV in 2x2 cells. This all requires some nested transform calls and weird calculations, especially when we talk about uneven numbers and non quadratic textures. Remember this is because I need exact numbers, not just approximately moving by hand. Support Atlases and multi object UV Edit Now this is way more complex but that is something I am confronted with so often. The only solution to work with multiple objects on one UV layout is to draw their edges in a texture. As layouting requires some trial and error I have to redo the whole map at least 2 times. So having a solution which draws UVs of other objects inside the window would be great. If it was even possible to apply alignment algorithms to multiple objects that would be amazing. I even have some ideas here. That said, I know how to do stuff in theory, but not practically in Cinemas API :) I worked on Unity Editor scripts so I have a grasp on how it could look like. As long as I get lists of UV points and we speak of simple Vector2 Coordinates at the end, that should be doable.
-
It has been a while now but I finally got some time to continue to work on that project, no much has changed but I thought I give an update. I focus to avoid HighPoly baking for this and do textures in photoshop if I can. For the modelling I use of what I call midpoly modelling by chamfering edges and using the advantage of the Vertex Normal Editing Plugin. You can then have a highpoly appeal by a simple one level chamfered edge. I also use this project so see with how many triangles I end up for the whole scene and if it is still feasible for the lightmapper and how performance is once it runs in Unity. I start to model object by object. In the first step I will do the modelling of each object and the texture blockout. As you can see for the desk I figure out the UV layout and then grab parts from pictures. Later I will replace that with an actual texture and add specular and normal maps. I try to minimize Texture usage and repead as much as I can combined with variation shader techniques, e.g. VertexColor to overlay or second texture maps. For cinema I use X-Ref objects for that. I take my blockout model and convert that into an xref. So I turn my blockout scene step by step into the final scene, using incremental saving of course. Also I try to use genrators and non destructive techniques until I got my final result, then I merge anything down to as few objects as possible. That desk for instance was heavily using the array generator, but now consists of 3 objects and materials (Red shelf, marble plate and the outside). I try to get an accurate model of the environment so I try to count the number of things and guess their size, especially for the building elements. Otherwise you will run into problems later where certain things may not fit exactly. But I only do that on the very broad view and I am not going to focus on any tiny detail. If people watch it for the first or second time and they think this is an accurate replication that is all I want. Also I think the set designers have been very kind and made things repeat and mirror a lot :P
-
Those are some very nice additions! I like the Poly reducer tool. Will it work with baked Normals? That would be great. Also one question, will the LOD System work in the render or is it only usable for the viewport?
-
That is great news. I still have my 7 Year old AMD X6 which I plan to replace soon. Good timing AMD :) I wonder is there any inbetween solution like 8 Cores? The price difference is big between the 4 and 12 cores.
-
Don't have a lot of time, new job and new home but from July I should be able to continue. So far I did a test in Unity and I am quite happy with the pillars. Yet I wonder how the whole scene will look like. Light baking and color grading will be the major challenges I project to achieve a similar look of the original. In those shots I used downsampling so the image was rendered in 2-3 times of the resolution.
-
Here is the final model with a tail, it was quite hard to make.
-
Just a quick model from The Lego Movie. Rendered in C4D Physical Renderer.
-
I am working on a new project and want to share my progress here. As I attend a new job where I will work more with Cinema 4D I want to practice a bit with lighting and rendering and for that I need a great scene. It will also later be exported to a game engine, most likely Unity. The scene is the lobby interior of The Grand Budapest Hotel which I stumbled across just recently but which instantly became one of my favorite movies. Original: I want it to be quite accurate so I collected many screenshots from the movie and making-of clips. Some of them I projected with a camera using Cinemas Camera Calibration tool which is just magic. It was blessing to see numerous camera projections fit in nicely with previously created geometry. In addition I use a blueprint used by the set designers. So here is the current Blockout: Using a fairly accurate camera projection is great as it allows you to model rough shapes quickly at correct position and size. Of course the projection is only a guide, it won't be part of the final result.
-
I don't know Infinite Ocean but if you have the ability to add an alpha mask or similar try this. But you will run into lighting issues. You still have the option to do it in post. You can render the scene twice, once with ocean and once with what is underneath and then blend it. To do that you may use a third render which renders the mask itself on the ocean level. The advantage of this is that you can adjust the lighting separately.