Hello,
Eugen wrote:
#1 How can I undo parameter changes made in preferences? Don't tell me that's not possible.
Is the undo buffer restricted to scene changes, and nothing else?
The undo-stack itself only works for scene changes AFAIK.
There's no dedicated undo, but you can reset the parameters. Right-click on the parameter and choose "Reset to Default" or "Reset All" to reset all parameters in that section. This works in every manager throughout Cinema 4D.
Eugen wrote:
The question:
any good introductory sites/docs/tutorials around to get into C4D scripting?
Additional to Holger's links, here's an introduction to python scripting:
http://lesterbanks.com/2011/10/an-intro ... cinema-4d/
But I'm sure there are many other resources I'm not aware of since I'm not a scripting guy at all.
Eugen wrote:
I'd be most interested to get an understanding of C4D's generator/deformer architecture, because this is key to what is working/can be expected regarding non-linear workflows (desirable or not).
I'll try to give a short overview over C4D's workflow principles:
The "heart" of every scene is the object manager. It offers an overview over all scene objects and their properties. It is used to define hierarchies as well as dependencies between objects.
There are different types of objects in C4D:
1. Generator objects:
These have a green icon, and are called generators because they either generate some new objects or new geometry. They always require some inputs, and these inputs are defined by just making other objects children of the generator.
For example, a mograph cloner. If you want a cube to be cloned, create a cube and make it a child of the mograph generator. The cube then gets cloned as defined in the mograph cloner (a "clone" can be seen as something like a "particle", although there are other dedicated particle simulation tools too).
Another example, a sweep operaton: to create a tube-like shape, create a sweep generator. This requires two splines then as children, the first one defines the profile and the second one the path
Another example, a subdivision surface: it requires a polygon object as child, which then is used to generate the subdivision surface.
Sometimes you want more than one input (for example subdivide not only one polygon object): In this case, group all your polygon objects under a null object and make the null child of the generator.
Generator objects can have lots of parameters; they are all accessible via the Attribute Manager (=property page).
Almost every parameter is animatable and available for XPresso.
This paradigm works througout every part of Cinema 4D. Everything in these relationships stays non-destructive and can be exchanged at any time.
2. Deformers/Effectors
Are usually there to deform geometry or matrices (the "moextrude" is an exception here as Srek already pointed out as it generates new geometry). They have purple icons. Deformers always have to be children of the objects they should deform, or on the same hierarchy level. This means, p.ex. if you have a bunch of objects and all want them to be deformed by one deformer, just throw them all into a null object. The objects plus the deformer are now on the same hierarchy level and all objects get deformed. This paradigm is also true for Cinema's character rigging tools: you can create your rig hierarchies wherever you want, but the actual deformation is done by a skin deformer (=envelope).
Effectors are designed to work with mograph generators mainly. They are used to "deform" the matrices of the clones, p.ex. give them random positions, make clones follow a spline, etc. The possibilities are endless. The workflow is a bit different here. You can't just make effectors children of your mograph generator, as the mograph generator already assumes that its children are the clones to be generated.
Instead, every mograph generator uses an effector tab which you can see in the attribute manager, and drag/drop the desired effectors there.
Effectors in point/poly/edge deformation modes work just like deformers.
3. Tags
Tags are applied to objects to give them certain properties. P.ex. to define the phong angle, add a phong tag to the desired objects (most have one by default). You can then change the parameters in the Attribute manager (=property page) again. Tags are usually inherited throughout hierarchies, so p.ex. if the parent has a phong tag, all its children also inherit the attributes defined there, except they have their own phong tag.
Tags are used to define constraints, IK, dynamics properties, render properties, XPresso setups, etc. etc…
Again, almost every parameter is animatable and available for XPresso.
4. Order of execution
The more complex the setup is, the more important becomes the order of execution of all these generators, deformers and tags. Objects are evaluated from top to bottom, tags from left to right. What does that mean? I try to give an example: a cube should be deformed by a bend and a twist deformer. So, first of all, both deformers have either to be children of the cube, or the cube and the two deformers are grouped under a null object (= they are on the same hierarchical level). Now, if the bend deformer is evaluated first and the twist deformer second, the result is very different as if twist comes first and bend second.
With tags, it's similar: imagine an object with two aim constraint tags. The first constraint tag (on the left) defines that the object's Z axis should point to another object (A). The second aim constraint tag, which is right from the first tag, defines that the Z axis should point to object B. Since the right tag is evaluated AFTER the left tag, and they are both influencing the same parameter, the right tag "overwrites" the left tag, so the object will always point to object B.
To overwrite these orders of execution, tags can be given priorities which then
These are the principles of how basically everything works in Cinema 4D.
I hope that clears some things up.
Regarding the scripting questions, I'm afraid I'm no big help here ;)
cheers
Günter