Thursday, May 28, 2015

GeoToCVs

It's been a while but I finally developed another tool! This time around I wrote a script that will allow you to specify a list of control vertices and a list of polygonal objects, then you can attach each piece of geometry to each CV.

The cool thing is this script doesn't actually create any permanent connections so you can reposition your geometry at any point later on. Depending on the number of CVs you specify and the complexity of your scene you can use this tool in two ways:

1.) By "connecting" specific CVs to specific pieces of geometry (by highlighting one CV and one polygonal object, then clicking 'Geo To CV').

2.) Or by "autolinking" your geometry to all the CVs in your list (based on selection order).


So for instance, if you draw out a NURBS curve you can easily place one piece of geometry on each CV. Or, alternatively, you can:

a.) Take any polygonal object


b.) Convert its edges to curves

c.) Select CVs from those curves


d.) Make duplicates of certain pieces of geo


e.) And connect all the geo to each CV in worldspace


This is especially powerful when you want to make use of lots of duplicate geometry using Duplicate Special and Instances. You can arrange everything in 3D space by "drawing out your points" using curves. Think of drawing curves for nHair but rather than using those CVs to shape Hair, you use your CVs to position geometry along your curves.

Below is an example of how I used this tool in an actual project. Prior to this step I created a mesh that would serve as a "base" for generating curves:




Of course, you can find lots more uses for GeoToCVs but in this case I created something more abstract since everything was going to be used as visuals for a VJ presentation. This tool would probably be great for motion graphics too.

Currently, I'm still finishing up this project but I rendered a still to get an idea of what the final might look like.


I think this goes to show you, a little python goes a long way—even when you initially write a tool for a very specific purpose. Who knows how else I'll end up using GeoToCVs though if anyone's interested in the tool themselves, here's a link to the code for your own project. If anyone finds another use for this or just creates something cool, let me know!