Crossbow Update
The costume / mods have been updated. Goggles are near complete and made some progress on the xbow.
http://bangrevolution.com/wordpress/?page_id=199
The costume / mods have been updated. Goggles are near complete and made some progress on the xbow.
http://bangrevolution.com/wordpress/?page_id=199
Great article/interview on Gamasutra talking with Nathan Martz and Tim Schafer of Doublefine regarding their new Sesame Street Kinect Game:
http://www.gamasutra.com/view/feature/6295/capturing_the_spirit_of_sesame_.php
Now first let me say that I rarely quote myself, but occasionally I spout something that after reading I’m proud to say I wrote it. Today was one of those occasions. A co-worker had asked me what I think of the recent changes at work. This was my reply.
“I am a hopeful optimistic. Life is too short and this space too small to have a negative outlook.
Change is always difficult no matter where you are in this industry (or life for that matter).
The abilities to reach out, speak up, react and adapt are admirable qualities that few possess and fewer still acknowledge.
With that said, change never comes easy, but for those willing to work hard, work together, and more importantly execute they will reap the benefits. I believe we have a really good crew and if we can stay focused I have 100% confidence that what we turn out will be nothing short of greatness.”
http://gigaom.com/2008/04/17/pixars-brad-bird-on-fostering-innovation/
older article, but very relevant information for ALL companies
http://www.gamasutra.com/blogs/PascalLangdale/20101115/6440/Whats_missing_from_cutscenes.php
interesting article discussing interaction of cutscenes and conveyance of emotion.
As I continue to learn more about python and maya I’m finding more efficient ways of gathering data. Yesterday during a code review I used the following way to grab the base path from a Maya filename.
import maya.cmds as cmds
fileName = cmds.file(sceneName=True, q=True)
baseFileName = fileName.split('/')
del baseFileName[-1]
basePath = "/".join(baseFileName)
print basePath
It seemed to do the job for me, it would return the base path to the maya file that was currently open but drop off the last obj in the array.
My buddy JT reviewed the code and suggested I check out the os. commands. So in a quick exercise I did just that, and found I can do the exact same thing with even fewer lines of code.
import maya.cmds as cmds
import os
fileName = cmds.file(sceneName=True, q=True)
basePath = os.path.dirname(fileName)
print basePath
Really great py module for reading .xls files. Instead of having to export excel to .csv and then parse, you can use this module to read/open/print info from whole excel files or from selected rows/cells. Research for this came about while trying to figure out at easier way to pull data from a particular portion of an excel sheet.
After you have installed xlrd the code is simple:
import xlrd
wb = xlrd.open_workbook('simple.xls')
wb.sheet_names()
sh = wb.sheet_by_index(0)
sh = wb.sheet_by_name(u'Sheet1')
for rownum in range(sh.nrows):
print sh.row_values(rownum)
Thanks to John Machin Author of:
http://pypi.python.org/pypi/xlrd/0.7.1
A buddy at work has been motivating me to try to script more things as I am going through my daily routine and I’m starting to realize the power that is there. We have a number of minor repetitive tasks that we do every day in our jobs as tech artists, and as one-offs they might take 30 secs or a minute and seem trivial. Now take that ‘one-off’ and think about how many times we actually do it in any given day…10, 20, 50? That time savings adds up exponentially over the course of a week, month, year…What can one say, except, the AWESOME power of scripting continues to amaze!

A small task that we need to do is assign all of our physics objects a physics shader. Now normally you have to create the shader, change it’s color to red, and then assign it to the physics objects in your scene. Not exactly rocket-science, nor does it take an hour to do, nonetheless it IS repetitive. Well I started thinking about it and found out it’s not too difficult to do with script. With a bit o’ help from a tutorial I found here: I was quickly able to create a script to do exactly what I was looking for.
import maya.cmds as cmds
import maya.mel as mel
def createMaterial( name, color, type ):
cmds.sets( renderable=True, noSurfaceShader=True, empty=True, name=name + 'SG' )
cmds.shadingNode( type, asShader=True, name=name )
cmds.setAttr( name + ".color", color[0], color[1], color[2], 'double3')
cmds.connectAttr( name + ".outColor", name+"SG.surfaceShader" )
def assignMaterial (name, object):
cmds.sets(object, edit=True, forceElement=name+'SG')
def assignNewMaterial( name, color, type, object):
createMaterial (name, color, type)
assignMaterial (name, object)
cmds.select("*_physobj*")
mrSelection = cmds.ls(sl=True)
assignNewMaterial( 'Physobj' , (1, 0, 0), 'lambert', mrSelection )
Give it a try. This will toss all of your named meshes of _physobj in your scene into an array and assign them with a shader that is red with the name Physobj.
Cool!
Step 2 will then be to mark the faces as Physics and NoDraw, but I’ll save that for when I’m actually at work