VStudio Plugin Build Environment for Maya_2012-x64 and Beyond

maya2011_thumbFree yourself from relying on other people to compile your beloved 3rd party plugins.  If you are interested in learning to write plugins it’s a great exercise to do it yourself.  Also take a look at the source code.  If it doesn’t make sense at first, sooner or later it will if you are dedicated to learning c++ or python or other OOP language for that matter.

Here are some concise steps to downloading, editing, and building the source of Micheal Comet’s poseDeformer yourself.  I’m not supplying the link to the source but you should do a quick search to find it.  If you weren’t aware of this awesome plugin dig in to figure out what it does by reading all about it and actually look into the code!  There are also download links out there that have the plugin completely compiled for you on Windows up till 2014.  To really learn, try building it from just the source and then undo from last to first the steps to setup the environment to see what happens when a project fails and actually read the debug output to try and make the connections yourself.

Windows 7 SDK:

  1. Download and install the Windows Software Development Kit version 7.1. Visual C++ 2010 Express does not include a 64 bit compiler, but the SDK does. A link to the SDK:http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx

To make a VC Studio 2010 project:

  1. Start a new empty project in a directory other than source, name it poseDeformer
  2. Add the source files and header files by right clicking > add > add existing > choose files from extracted source.
  3. Right-click on the project and choose “properties”
  4. It’s probably a good idea when you’re following along to click “apply” after each step when you’re editing in the “properties” dialog
  5. Pull up the “configuration manager”
  6. Find your project, hit the Platform drop-down, select New, then select x64. Now change the “Active solution platform” drop-down menu to “x64.”  ”copy from” drop down can read <empty>
  7. Change your toolset. In the Properties menu of your project, under Configuration Properties > General, change Platform Toolset from “v100″ to “Windows7.1SDK”
  8. Go to General under Configuration Properties
  9. Set the target extension to “.mll”
  10. Set the platform toolset to “Windows7.1 SDK”
  11. Set the configuration type to “dynamic link library (.dll)”
  12. Go to the VC++ Directories panel
  13. Append “;C:\Program Files\Autodesk\Maya2012\include” to the include directories
  14. Append “;C:\Program Files\Autodesk\Maya2012\lib” to the library directories
  15. Navigate to C/C++ and Preprocessor
  16. Append “;NT_PLUGIN;REQUIRE_IOSTREAM” to Preprocessor Definitions
  17. Navigate to Linker and Input
  18. Append to additional dependencies the following list: “;Foundation.lib;OpenMaya.lib;OpenMayaUI.lib;OpenMayaAnim.lib;OpenMayaFX.lib;OpenMayaRender.lib;Image.lib”
  19. This step is optional, some instructions out there say to append: /export:initializePlugin /export:uninitializePlugin to Linker > Command Line Additional Options.  Don’t do it and run debug compilation to see if it works first!
  20. Open up poseDeformer.cpp and poseDeformerEdit.cpp and append this line at the top of the includes: #include <maya/MIOStream.h>
  21. Build

Next up:  Speed up build for future Maya releases with precompiled Maya headers & compile for Linux.

Helpful source link:
 

[Maya-Config] Maya Environment: Phase I.I

maya2011_thumbThis post includes some additional important support material for what was discussed in [Maya-Config] Phase I.  I felt it needed a bit more elaboration than what I had time for.  I will continue with Phase II next time.

Felix Baumgartner Red Bull Stratos Space Jump Oct 14 2012

Felix Baumgartner Red Bull Stratos Space Jump Oct 14 2012

Continue reading

 

[Maya-Config] Maya Environment: Phase I

maya2011_thumb

How do you tame the beast that is your ever growing collection of mel, cpp/python plug-ins, and python scripts?

Curate a library of cross-platform, multi-language extensions!

Teach yourself how to setup a proper library of Maya tools by following the steps outlined here. This is by no means the only way to do it. [edit: This is strictly for learning purposes and not intended for production use, but by all means apply what you learn to your specific production needs at your discretion!] It can get as sophisticated as time permits and as your production demands. To put it simply, this is a great starting place for people wanting to learn some of the basics of how to manipulate your Maya environment. The techniques described are simple, however this isn’t a Maya beginner task so I assume the reader knows a bit about scripting, how to use a shell or command line, and other Maya internals of course. I am willing to break it down in further posts of course. There is a lot of information to go over so this topic will be have to be continued in a series of posts.

Arctic Waves!

Surfers Dane Gudauskas, Alex Parker and Keith Malloy normally carve up the golden beaches of sunny California but made the trip to the Arctic, where temperatures as low as just 2-3C, after hearing about the smooth waves.

Continue reading

 

Custom Maya Startup: Adding User Python Site-Packages

 
 

Say you have an environment variable named PYROOT with a lis of a few paths where python libs are stored. Use python’s site module to add your lib directories as site directories like this:

import os
import site
PYTHONPATHS = []
if os.environ.has_key('PYROOT'):
	if os.pathsep in os.environ.get('PYROOT'):
		for p in str.split(os.environ.get('PYROOT'), os.pathsep):
			PYTHONPATHS.append(p)
	else:
		PYTHONPATHS.append(os.environ.get('PYROOT'))


if len(PYTHONPATHS):
	for j in PYTHONPATHS:
		site.addsitedir(j)

This quick script works cross-platform using os.pathsep to test for environment variable separators ‘;’ (win) and ‘:’ (linux) and using that to split the PYROOT string variable appending each of the paths to the PYTHONPATHS buffer list. By using the site.addsitedir module, python will treat these directories as normal site-package directories with all the built-in abilities to customize such as sitecustomize module and .pth files. If subdirectories are already organized into packages using __init__.py then they are already ready to be used and imported into Maya right away, or else if the directory has a .py file and no __init__.py just add an empty one.

To add your custom user site-packages directory just append the lines of code or create a new userSetup.py and make sure it is on your PYTHONPATH when you start up, previously explained here, or just put it in any one of the default maya scripts areas.

 

Character TD Demo – The Kaylee Rig (Sticky)

Fighting the urge to be unproductive, I locked myself in the house for the past few days to get some work done on a new character TD demo.  Been under the weather anyhow and didn’t feel like doing much else, not even surf *gasp!*.  Here it is in all it’s beautiful animator friendly simplicity.  I plan on extending this demo with character animation tools.  I can’t wait to get away from creating demos and rendering video and go back to actually programming and rigging stuff!  I have so much more advanced rigging techniques to show and some that haven’t gotten to a finished stage on my characters yet so stay tuned.

Continue reading

 

Massive Sunday Pipeline VRay Shader Library

I took the VRay shader library from what Oliver Markowski, creator of Full Blown Images, compiled and married it with the shader warehouse resources provided by Sunday Pipeline, took out this and that, renamed, dusted off, and reorganized everything.  All assets were renamed according to strict naming convention to minimize confusion and to facilitate faster searching.  All this on my free time, which I’ve had quite a lot the past few days.  Well, go ahead and grab it because it’s quite a library to have in your arsenal.  It’s all free to use.

Sunday Pipeline is the way to go.  If you haven’t installed it yet, head over there, read up on it, and give it a try.  They are updating it with new scripts often.  It’s a simplified asset manager that houses everything from shaders to geometry to a script repo, and best of all, programmed in Python.

I’ll be updating this .rar from time to time now with VRay shaders from the internet and what I create or use on my own.

Sunday Pipeline Warehouse hosted by CGHijinks

All links in this post

 
 

Warehouse Browser

Browser for the Asset Library

Warehouse Create UI

Add and Remove Assets

Strawberry Jam

Create/Customize/Get Crazy!

Continue reading

 

Hephaestus Animated Short Film Work

hephaestus header

From Director/Animator Alex Curtis comes his debut animated short that I luckily got to work on as a freelance pro bono character rigger/td.  Here’s a work in progress reel and Kaylee the character I rigged and supervised rigging the hair and goggles with the help of my friend Suchan.  Keep in mind this demo is months old at this point and a newer one is out that is password protected so I cannot share until later.

Kaylee showin' off her moves

Stay tuned!  The final is looking good!  Should be any day now…

 

Indie Facial Performance Capture R&D

Suchan, a buddy from Nepal, just broke the independent game dev facial performance capture animation barrier.  He deserves kudos for getting it to this stage.  This would be such a valuable asset to any gaming company if he brings it to the next level or even at this stage I suspect.  Suchan is on a solo climb of Mount Mocap and while he is a base camp right now, I expect he could make the difficult summit by himself!  ;)   Nice job!

I wonder how much harder it would be to actually be able to do facial mocap from your smart phone directly to a character in Maya or Unity app without any markers, to me that’s Everest.  It is, however, a tangible goal these days for developers and all the freely available mocap tech that’s on the market these days.

 

Character Development and Rigging for Facial Animation Part 1

This demo illustrates the steps taken to develop a character from concept sketches to finished facial rig in a simplified format. This is an actual rig I developed with the use of proprietary rigging tools in Maya utilized daily at work so I’m not going to demo those tools. However, future installments will incorporate the use of tools that I have written and that you can use to aide the building of complex facial rigs such as this, and include overviews of more advanced rigging techniques. I would also like to break the process down into chunks to really go into more detail about things you should be thinking about if you are trying to rig a face. This is an ongoing process so stay tuned, I have lot’s of useful tips to share.

Continue reading