Cycles4D Creating a Custom Macro for GSG Area Light Maps by David Houston

I build a bit more extensive area light setup for GSG Area Light Maps and then create a custom macro button so that you can apply it with a single click. Here is the python script:

import c4d from c4d import gui def main(): c4d.documents.MergeDocument(doc,'preset://Cycles4DALM.lib4d/Cycles4DALM',c4d.SCENEFILTER_OBJECTS | c4d.SCENEFILTER_MATERIALS) c4d.EventAdd() if __name__=='__main__': main()

Let me know if you have any questions or comments, thanks!

Quick Tip: Bend Deformer by David Houston

The Bend Deformer can be extremely annoying. Just remember that it always bends to towards the X axis. So you can either change the bend angle in the deformer or you can rotate it. When you click fit to parent it always maintains its current orientation. So move everything in place how you want it then fit to parent. Shift clicking to make it a child is quick but is almost always wrong, unless you just dropped a primitive in the scene an didn't change anything. Let me know of any quick tips that you have and I will try and make a video and credit you! Also if anything I wrote or said in the video is wrong, please let me know.

Quick Tip: Axis Tool Magic by David Houston

Was watching a series by Tim Clapham the other day and he did this in passing. I had no idea and now I feel dumb. Hope it helps you as well! Let me know of any quick tips that you have and I will try and make a video and credit you! Also if anything I wrote above is wrong, please let me know. Thanks to Tim Clapham for mentioning this in a tutorial.

Quick Tip: Exponential Offset of Objects by David Houston

Here is a quick way to setup exponential offset with multiple objects. In the example we use pow(num+1;2)*.25 pow is to the power of so with no values a proper input would look like this. pow(value1;value2) The value after the semicolon is what you are setting the power to so pow(num;2) is the same as writing num*num In the example I added in a +1 after num so that none of my objects were scaled to 0. Also you may have noticed that all of my proportions scaled evenly. This was setup with expresso and just linking the Y and Z parameters to their corresponding X parameter. Let me know of any quick tips that you have and I will try and make a video and credit you! Also if anything I wrote above is wrong, please let me know. Thanks to Paul van Sommeren for the input on the num function

Quick Tip: Evenly Distribute Multiple Objects C4D by David Houston

Here are two quick ways to evenly distribute multiple selected objects. Distribute objects per step: num*2000. num references the index of your currently selected objects. The Index starts from the top and goes down no matter what order your objects have been selected. Index always starts with 0. In the first example num*2000, the first object is set to 0, the second to 2000, the third to 4000, etc. Distribute objects by end point: 20000/(tot-1)*num. In this example we are trying to have an object a 0 and object at 20000 and all the rest evenly distributed in between. tot in C4D is a reference to the total number of objects you have selected. If I had written 20000/tot*num then I would of had the buildings evenly distributed from 0 to 20000 except I would not have a building exactly on 20000. I promise all of these quick tips wont be math in the attribute manager. Let me know of any quick tips that you have and I will try and make a video and credit you! Also if anything I wrote above is wrong, please let me know. Thanks to Paul van Sommeren for the input on the num function

Quick Tip: Multi Object Attribute Randomization C4D by David Houston

This is a quick way to assign random values to any parameter when you have multiple objects selected. In this example it is being applied to the Seed of a Vibrate tag so that all of the objects are assigned a different seed. We are using rnd(value) to generate a random value within a specified range. So typing rnd(100) in the Z position of an object will assign a random value between 0-100 and move it to that location. If you type x+, x-. x*, etc... before your rnd(value) it will look at the currently assigned value of the object and +,-, * the result with whatever is returned from the random generator. Why can't you just type rnd(50000) with all of the objects selected? If you do this then it calculates one time and applies that to each object. By using x+rnd(50000) it has to reference every object (even if they are at the same value) and then recalculate the random function for each object. Other Examples: rnd(600) - Will assign a random value between 0-600 rnd(-500) - Will assign a random value between 0- -500 x+rnd(200) - Adds a random value between 0-200 to the current value Let me know of any quick tips that you have and I will try and make a video and credit you! Also if anything I wrote above is wrong, please let me know.