Showing posts with label Cinema 4D. Show all posts
Showing posts with label Cinema 4D. Show all posts

Wednesday, May 15, 2013

Essential C4D & AE Plugins

This is a working list, and I'll update it as I discover new plugins I use regularly.

Cinema 4D

Free
Paid


After Effects

Free
  • DuIK Tools: Inverse Kinematics for After Effects
Paid
  • Reel Smart Motion Blur: Quickly add motion blur to your 3D animations in post. Yes, there are free workarounds, but the quality (and mostly the speed) of this plugin make it a must-buy.

Tuesday, December 4, 2012

Cleaning up a .3DS Import in Cinema 4D


After importing an object from the internet, you'll often want to clean it up. The following is a good general procedure to follow.
  1. Select all objects (Command/Ctrl + A)
  2. Go into Polygon Mode
  3. Rt-Click > Optimize
  4. Rt-Click > Untriangulate
  5. Object Manager > Tags > Cinema 4D Tags > Phong
  6. Turn on Angle Limit | Attributes Manager > Angle Limit
  7. Tweak the Angle Limit until hard edges are hard and soft curves are soft.
  8. Rename the elements so that the names make sense.
  9. Tweak the axis positions so that they are logical.
  10. Adjust the hierarchy so that it makes sense and the object is easy to manipulate.
  11. Adjust the scale of your object so that it matches a real-world counterpart.
  12. Apply Materials that look good from the C4D content library, or of your own creation.
  13. Save the object to your personal library folder with a descriptive name. File > Save Project with Assets...

Tuesday, November 27, 2012

New C4D Plugin Programming Blog

Some of the Cinema 4D programmers are now writing a Cinema 4D plugin programming blog in their personal time. It looks  like a great resource for any aspiring (and current) plugin programmers.



C4D Programming is written by Frank Willeke, Yannick Puech, and Francesco Guazzi.

Thanks guys!

Friday, September 14, 2012

Syncing Multiple Copies of Cinema 4D (Windows)

If you're an animator working in the modern era, you're probably running Cinema 4D in at least three places.
  1. Your desktop at work.
  2. Your desktop at home.
  3. Your laptop.
Add to this that on any of these machines you may be running the current version of Cinema and the version or two before that (for legacy projects/clients), and you've pretty much guaranteed that any time-saving scripts, plugins, layouts, or libraries won't be where you need them when you need them.

Thankfully, there's a solution, that would probably have been obvious to any hardcore unix hacker (which I'm not, nor I assume are you): symbolic links.

A symbolic link is basically a shortcut from one folder or file to another, except that your file browser and any programs you're running can treat them like real files.

The basic solution works like this.

The three lower arrows each represent a symbolic link to a "C4DLibrary" folder in your DropBox (or GoogleDrive, or iCloud, etc) account. Dropbox will handle the work of keeping your files synced across computers, and whenever you add a new plugin/layout, etc, it will get saved to the C4DLibrary folder in your dropbox.

Instructions

Note: the following instructions apply only to a Windows machine. These instructions also should only be used with the same version number of C4D, cross-version linking can lead to strange results - you'll need to manually link sub-folders.
  1. In Dropbox create a folder called "C4DSync" (This is the "C4D Library" folder from the above illustration)
  2. Download "Directory Linker" from: http://dirlinker.codeplex.com/
  3. Open Cinema 4D on the most readily accessible computer.
  4. Click on Edit->Preferences
  5. From the preferences window click on the "Open Preferences Folder" button. This will open a windows explorer dialog.
  6. In the path bar at the top (the one that looks like Username->AppData->Roaming->MAXON->...), click to the far right. This will convert the path to a file path that should look something like:
    C:\Users\Username\AppData\Roaming\MAXON\CINEMA 4D R13
  7. Copy this text.
  8. Run the "Directory Linker" application you downloaded earlier.
  9. In the "Link Location:" field paste the filepath you copied in step 6.
  10. In the "Link To:" field browse to the "C4DSync" directory you created in dropbox. It'll probably look something like "C:\Users\Username\Dropbox\Library\C4DSync"
  11. Ensure that "Copy contents to target then delete it" is active.
  12. Click on the Go! button.
Congratulations, your primary installation of Cinema 4D is now saving all preferences and plugins to your dropbox folder. Now just repeat steps 2-12 for all other C4D installations.

WARNING: Please make backups of your preferences folders before doing this, especially if you have any important projects in there. I've yet to test this with C4D running simultaneously in multiple locations, but I can imagine that leading to some bad juju, so please test (and report back) before using this in production. Also, if your plugins are serial-linked this will lead to some issues as well unless all versions of C4D are sharing the same serial number.

References

Thanks go to the following resources for getting me to a place where I was able to write this post:

Tuesday, September 11, 2012

C4D Architectural Visualization Resources

With any luck, I'll be doing some more architectural visualization work soon. Here's a list of resources I came up with while doing research for a project. If I've missed anything, please leave a comment.

Tutorials

C4D Specific


General Tutorials

  • Arch Viz Making of Tutorials: A pinterest board created by Ronen Bekerman. Seems like a pretty good starting place. Not necessarily C4D specific.
  • CG Architect.com: This looks to be a great resources. They have quite a few making-of articles up that show images of finished works in various states of production.

Recommended Reading

  • CG Talk Forums
    • Arch Viz Workflow: It seems that most people use some combination of VectorWorks or Sketchup to work with DWG files from the architects, and then bring those into C4D using various plugins. VW seems to be the preffered option because of the quality of its exchange plugin.
  • C4D Cafe Forums
    • Archviz Workflow / Software Question: A few posts on the subject. It seems that at least some people prefer ArchiCAD over SketchUp for architectural work. Also, for 2D work, you can import a .dwg into illustrator and then export an AI file for use in cinema. For 3D a .dxf file can be used (despite often poor results).

Plugins / Model Packs

Tools

  • Google SketchUp: A free architectural modeling plugin.
    • Sketch 4D: Allows you to download and open Google Warehouse files directly into C4D. Also allows you to open sketchup files in C4D so that you can use SketchUp Free instead of SketchUp Pro.
    • Google SketchUp 8 Essential Training by George Maestri for Lynda.com
  • VRAY for C4D: A popular third-party renderer for architecture visualization work. While I'm a big proponent of using built-in tools where possible, the renders coming out of VRAY really seem to be a cut above C4D's built-in renderer for this sort of work.
  • ArchiCAD: A 3D CAD modeling program tailored to architecture work.
  • Tools4D Texture Remapping Kit: A great tool for taking existing photographs and translating them into reusable tiling textures. Great for grasses, building fronts, etc.

Tips

  • Adopt a standard scale for all of your models, this way you can easily import all of your files from different projects into the file for your latest gig.

Areas for Further Research

  • Model packs
  • Texture packs
  • Go through the above tutorials and resources and see if any best practices emerge. If so, codify them and write another post.
  • Helpful plugins

Monday, August 20, 2012

Where to Find C4D Jobs


The following are free (to applicants) job listing services likely to have Cinema 4D gigs.
Useful search terms:
  • Cinema 4D
  • C4D
  • Maxon
  • AE
  • Mograph
  • Motion Graphics
  • Animator
  • Animation
  • Titles

I recommend setting up RSS feeds for each of these services so whenever you're in-between gigs you can quickly get a sense of what's out there.

Have I missed any resources? If so, please leave a comment.

Thursday, August 9, 2012

C4D Reference / Tutorial Resources


This is a partial list of C4D resources I use regularly. I have bolded those that will probably be of the greatest benefit to you. If you don't know where to start as a C4D animator, you could do worse than this:
  1. Compete in the 5-Second projects. Dedicate time to making a project you're proud of. Actually trying to make something is far more instructive than a manual could ever be.
  2. If you run into a problem, someone else probably has too and you'll be able to find an answer on the CG Talk forums.
  3. To stay current in all the latest and greatest in C4D, subscribe to C4D weekly. Read the whole newsletter and at least one article a week. If that's overwhelming, do it once every other week.
  4. Once you've put together a reel using your best 5 second projects, go to DMALA and meet up with some other C4D and AE artists in person. Bring cards, eat free pizza, get work.
  5. Whatever you do: create *something* on a regular basis.

Friday, July 13, 2012

L-System Resources

While researching methods for semi-accurately modeling neurons and neural networks, L-Systems came up repeatedly. L-Systems allow you to procedurally model fractals and complex branching structures. Cinema 4D has an implementation of L-Systems found in the MoSpline object's Turtle Mode.

In my research into L-Systems I came upon a number of interesting resources that might be of use to other animators:

The University of Calgary's research into Algorithmic Botany has a number of papers describing ways of modeling different organic systems. But the stand-out is TreeSketch, an astounding free app for interactively drawing trees created by Steven Longay, Adam Runions, Frédéric Boudon, and Przemyslaw Prusinkiewicz.

I mean, look at this video:

TreeSketch 2.0 - Promo Video from Steven Longay on Vimeo.

The ease with which they are able to define complex 3D forms is really inspiring. Their research paper cite's the Teddy system, a really cool sketch-based modeling system that I first saw at SIGGRAPH about a decade ago.



The future of 3D is in tools that allow us to model the world simply and expressively. Heck, that's the future of computing in general: let the tech serve the aims of the users, not the users serve the structure of the technology.

But I digress, here are some useful links about L-Systems:
The Algorithmic Beauty of Plants by Przemyslaw Prusinkiewicz and Aristid Lindemayer: The 'L' in L-Systems comes from the name Lindemayer. This is the definitive text on L-Systems.

Wikipedia's L-System Article gives a solid overview of L-Systems and their uses.

Selcuk Ergen's personal research into L-Systems provides an astoundingly easy to understand introduction to l-systems. Beginners should probably start here.

For an introduction to the Turtle mode in C4D:

Rick Barrett has a basic tutorial on how to move your turtle available on Cineversity.

Colin Sebestyen shows you how to start moving your turtle in 3D in his NAB demonstration, also available on Cineversity.

In addition to MoSpline's Turtle Mode, there a couple of other implementations of L-Systems for Cinema 4D;

X-Frog - A set of procedural objects that allow you to easily model branching, phyllotaxis, and more without needing to program in the Turtle Graphics language. Also, there are pretty extensive libraries of  realistic plant models you can download.

DPIT Plants - Another set of procedural objects for modeling plants. I'm honestly not sure what distinguishes this from X-Frog.

Areas for further research:

  • Look into the Houdini help files for general l-system information.





Wednesday, April 11, 2012

Sweep Splines 0.2 - An Open Source C4D Plugin

I'd like to announce that Sweep Splines v 0.2 is available for immediate download. It's a tool that allows you to quickly and easily sweep all selected splines with a square spline.

You can watch a video introduction here:


I initially wrote in response to a post on C4D Cafe. I'm releasing it to the world so that aspiring C4D python developers can take a look at how to create a simple plugin.

Disclaimer:
At this point, I have no plans to update this plugin, so please use at your own risk.

Friday, March 23, 2012

Real World Lighting Tips from Nick Campbell

Nick Campbell gave a great talk on lighting.


Here are my takeaways:

  • Fuzzy shadows indicate small scale
  • Sharp shadows indicate large scale
  • Mimic the real-world as much as possible in terms of light placement and size
  • Play with different color temperatures for your lights - pure-white light rarely happens in the real world.
  • GI leads to more realistic lighting behavior

Friday, February 17, 2012

C4D Python Matrix Basics & Helper Functions

I seem to forget the basics of working with matrices in C4D immediately after I use them. Here are some resources and helper functions:

Maxon's How to Use Matrices
C4D Python SDK Matrix Reference

Some PSR helper functions written by Maxon with additions for point manipulation by me
############## HIERARCHY HELPERS ######################
def GetGlobalPosition(obj):
    """
    Returns the global position of obj
    """
    return obj.GetMg().off
 
def GetGlobalRotation(obj):
    """
    Returns the global rotation of obj
    """
    return utils.MatrixToHPB(obj.GetMg())
 
def GetGlobalScale(obj):
    """
    Returns the global scale of obj
    """
    m = obj.GetMg()
    return c4d.Vector(  m.v1.GetLength(),
                        m.v2.GetLength(),
                        m.v3.GetLength())
 
def SetGlobalPosition(obj, pos):
    """
    Sets the global position of obj to pos
    """
    m = obj.GetMg()
    m.off = pos
    obj.SetMg(m)
 
def SetGlobalRotation(obj, rot):
    """
    Sets the global rotation of obj to rot
    Please remember, CINEMA 4D handles rotation in radians.
 
    Example for H=10, P=20, B=30:
 
    import c4d
    from c4d import utils
    #...
    hpb = c4d.Vector(utils.Rad(10), utils.Rad(20), utils.Rad(30))
    SetGlobalRotation(obj, hpb) #object's rotation is 10, 20, 30
    """
    m = obj.GetMg()
    pos = m.off
    scale = c4d.Vector( m.v1.GetLength(),
                        m.v2.GetLength(),
                        m.v3.GetLength())
 
    m = utils.HPBToMatrix(rot)
 
    m.off = pos
    m.v1 = m.v1.GetNormalized() * scale.x
    m.v2 = m.v2.GetNormalized() * scale.y
    m.v3 = m.v3.GetNormalized() * scale.z
 
    obj.SetMg(m)
 
def SetGlobalScale(obj, scale):
    """
    Sets the global scale of obj to scale
    """
    m = obj.GetMg()
 
    m.v1 = m.v1.GetNormalized() * scale.x
    m.v2 = m.v2.GetNormalized() * scale.y
    m.v3 = m.v3.GetNormalized() * scale.z
 
    obj.SetMg(m)

def LocalToGlobal(obj, local_pos):
    """
    Returns a point in local coordinate in global space.
    """
    obj_mg = obj.GetMg()
    return obj_mg * local_pos

def GlobalToLocal(obj, global_pos):
    """
    Returns a point in global coordinate in local space.
    """
    obj_mg = obj.GetMg()
    return ~obj_mg * global_pos

def SetPointGlobal(point_object, point_index, global_pos):
    """
    Sets the global position of point_object's point to global_pos
    """
    p_local_pos = GlobalToLocal(point_object, global_pos)

    #Set Point
    point_object.SetPoint(point_index, p_local_pos)

    #Tell C4D the spline has changed.
    point_object.Message(c4d.MSG_UPDATE)
    #Move this line to the end of your loop if you're call this command a lot.

def SetPointGlobalVirtual(point_object, parent, point_index, global_pos):
    """
    Sets the global position of a virtual point_object's point to global_pos
    Most useful when setting the points of a spline created in a Python Generator
""" p_local_pos = GlobalToLocal(parent, global_pos) #Set Point point_object.SetPoint(point_index, p_local_pos)

    #Tell C4D the spline has changed.
    point_object.Message(c4d.MSG_UPDATE) #Move this line to the end of your loop if you're call this command a lot.
def GetPointGlobal(point_object, point_index):
    """
    Return the position of a point in Global Space
    """
    ppos = point_object.GetPoint(point_index) #Get the point in local coords
    return LocalToGlobal(point_object, ppos) #Return the point in global space

#######################################################

Thursday, December 15, 2011

Guiding Thoughts for Subdivision Surface Modeling


  1. Volume, form, detail. Always in that order.
  2. Before adding another point/edge/poly, ensure that those that are already there are correctly placed.
  3. The vast majority of your time will be spent tweaking points.
  4. Don't get stuck working on your model from one angle, use your 4-way view and rotate around.
  5. Edge flows should follow the contours of your object.
  6. Trace edge flows onto real objects to get a sense of how to approach them.
  7. Use the bare minimum level of detail you can get away with to accomplish your task.
  8. Add detail by cutting in loops; localized detail tends to get messy.
  9. Quads, quads, quads.
  10. All previous thoughts should be discarded if they do not serve your aim.

Sunday, September 18, 2011

Friday, August 19, 2011

VS C4D 633 Day 02 Lecture Notes

Here are the notes from yesterday's class:

If you find some of the text is being cut-off, try downloading it as a PDF.
  1. In the above slideshow click on the expand icon to the right of the "Slide 1/21" text.
  2. Click on Actions->Download as PPT