Technical Notes

Screen_shot_2011-09-26_at_12
I recently started documenting technical issues that I encounter or things that I learn during my Maya scripting projects, and decided to share the notes with the public. I hope others will find it useful when troubleshooting. Click here to see the docs.

Posted by Daniel Vasquez
 

Curve Vectors Tool

This script finds a vector from a curve. I needed it for orienting a follice to the same direction as the curve's base, which corresponds to the first two cvs. After writing it, I realized that using edit points (ep) or curve points (u) would give a more accurate direction. Good enough for now, but will rewrite it.

UPDATE: Turns out that I could just use the pymel function tangent to accomplish the same thing (i.e. finding the tangent at a given point on a curve). For example, to find the tangent at parameter 0, which is the start of the curve, execute curv.tangent(0)

Posted by Daniel Vasquez
 

Hair From Particle Paths

(download)

I got hooked on my last script (see previous post) and decided to extend it by creating a hair system out of the particle paths. I'll post the script when it's working more smoothly, but here are a couple screencaps.

Posted by Daniel Vasquez
 

Curves From Particle Paths

(download)

Wrote a little script today. It generates cv curves from the path of a particle object or individual particles. Click here to see the code and a demo.

Posted by Daniel Vasquez
 

Gitting With It

Just learned about Github embedding with Gist. To celebrate the excitement, here are small pymel snippets you may find useful!

Posted by Daniel Vasquez
 

Rudo The Awkward Alien

(download)

This is Rudo - the awkward alien. Modeling, rigging, and rendering done in Maya.

 

 

 

 

 

 

 

 

 

Posted by Daniel Vasquez from Vancouver, Canada
 

Selecting Vertices Sharing Two Edges

Screen_shot_2011-04-08_at_1
Here's a Python snippet that selects vertices sharing only two edges (using maya.cmds as mc):

With the mesh object selected,

obj = mc.ls(sl=True)[0]
vertCount = mc.polyEvaluate(obj, v=True)
vertList = ['{0}.vtx[{1}]'.format(obj,vert) for vert in range(vertCount) if len(mc.polyInfo('{0}.vtx[{1}]'.format(obj,vert), ve=1)[0].split(':')[1].split()) == 2]
mc.select(vertList)

The if statement containing the polyInfo command does the filtering by counting the number of edges around the queried vertex. Unfortunately this returns a line of values in a string, so I had to split it a couple times to retrieve the edges count. For example, vertex 302 of 'polySurface' is shared by the edges 506, 489, 484, and 485:

mc.polyInfo('polySurface.vtx[302]', ve=1)[0]
# Result: u'VERTEX 302: 506 489 484 485 \n' #


UPDATE: A vertex sharing two edges is called 'winged'. Here's another way to select winged vertices using PyMEL (as pm)...

obj = pm.ls(sl=True)[0]
vertList = [obj.verts[v] for v in range(len(obj.verts)) if len(obj.verts[v].connectedEdges()) == 2]
pm.select(vertList)

Posted by Daniel Vasquez
 

Cache Cloud Is Out

Finally posted my script! It's a utility that creates Maya Particle Disk Cache (PDC) files from a sequence of point cloud data. You can find more information here. Hope you enjoy it as much as I do.

UPDATE: I modified the script so that it contains more classes and documentation (v0.9.0). Unfortunately, it's almost twice as slow as the original release (v0.8.4). Feel free to download the code from my website: http://folio.heylight.com/#958712/Code

Posted by Daniel Vasquez
 

Cache Cloud finished

Screen_shot_2011-03-15_at_9

The past couple of weeks I've been working on a python script that I named Cache Cloud. With all the point cloud data being generated with Kinect hacks and 3D scanners, I thought this would be a useful Maya utility. It writes Maya Particle Disk Cache files using an animation of point cloud data. It's finished, but I'll post some sample videos before releasing the script within the next couple of days. Thanks to this video, I was inspired to write Cache Cloud. Next I'd like to write another one to make nParticle cache files.

 

UPDATE: I added another feature that removes zero-value points; and cleaned up some code which is now making it twice as fast to process.

Posted by Daniel Vasquez
 

Installing Amazon EC2 API tools in Linux

It took a couple of days, but I finally found out how to configure linux in order to run Amazon EC2 Tools commands. I found some instructions here and there, but I'll provide instructions that are clearer (I hope) to the new Linux user, particularly, running Fedora (RPM-based Linux). Much of it is derived from the aforelinked instructions, so look at those for extra information. You should already know some basic linux commands - and remember that these instructions worked for me in Fedora. 

First of all, what is Amazon EC2? 

Read the rest of this post »

Posted by Daniel Vasquez
 

Importing Point Cloud Data

(download)

I was inspired by the making of a music video and wanted to try the same thing using their data with Python in Maya. I also ended up trying it with the House Of Cards data. Eventually, I'll make a GUI that allows for easy point cloud data import into Maya. I wonder how this data can be used for polygon modelling - something else to try.

 

Posted by Daniel Vasquez
 

Mark V Helmet

(download)

I finally found some time to work on the helmet again and finally arrived at a point where happy with the model. Now I can move on to some shading tweaks and detailing the textures in Mudbox. It's way too crisp and shiny. Although, this probably won't get done until I get back from South America in a few months. A la proxima...

Posted by Daniel Vasquez
 

Stellated Dodecahedron

My_hipstaprint
Last Monday, I learned some modular origami with friends at VHS' Crafter Night (organized by Emily). Check out some of the photos here and here. Thanks to Mathew Arthur for teaching us the ways!

Posted by Daniel Vasquez from Vancouver, Canada
 

Wiggle Stereoscopy

Flowers

I tried out this Processing code to make some 'wiggle stereoscopy'. It would be cool to use this technique in a video.

Posted by Daniel Vasquez
 

Thermal camera effect test.

Testing to emulate a thermal camera as close as possible with After Effects. As a reference, I used a video that was recorded with the FLIR camera. First I tried a tutorial where they use Photoshop, but it turns out that the Colorama effect in After Effects works just as well. 

I still need to figure out a good algorithm that translates a color sample to a temperature value (click here for a simple example). There's a few more details that I need to work on. For example, if you watch the real footage, you may notice the shifting in the color phase, as indicated in the right-side gradient bar. This is also accompanied by the shift in the high/low threshold temperatures. Hopefully I'll get a decent-looking thermal camera effect for a piece I'd like to do.

Posted by Daniel Vasquez