Thursday, 18 April 2013

a nice alternative to a quick Rigid Bodies sim: Dynamica Plugin

If you're after a quick little rigidbody sim, I'd suggest giving this a try. Simple, quick, fairly consistent and reliable (so far!).
Just make sure you keep organised and clean the scene up straight after baking, crashes do happen...

Details:
http://bulletphysics.org/mediawiki-1.5.8/index.php/Maya_Dynamica_Plugin

Downloads:
https://code.google.com/p/dynamica/downloads/list

Siggraph 2011 vid:
http://mbakr.squarespace.com/blog/siggraph-2011-destruction-dynamics-for-film-and-game-product.html



Thursday, 28 February 2013

quick update



Been mega busy last 6 months, alot of changes, not much time to work on personal stuff, but had a great learning curve so plenty to look into once things slow down.

Sunday, 26 August 2012

[Maya][Python] Querying soft selection

Handy little script modified from here to query and select the soft selection influenced components.

import maya.cmds as mc
import maya.OpenMaya as om

def softSelection():
    selection = OpenMaya.MSelectionList()
    softSelection = OpenMaya.MRichSelection()
    OpenMaya.MGlobal.getRichSelection(softSelection)
    softSelection.getSelection(selection)
    
    dagPath = OpenMaya.MDagPath()
    component = OpenMaya.MObject()
    
    iter = OpenMaya.MItSelectionList( selection,OpenMaya.MFn.kMeshVertComponent )
    elements = []
    while not iter.isDone(): 
        iter.getDagPath( dagPath, component )
        dagPath.pop()
        node = dagPath.fullPathName()
        fnComp = OpenMaya.MFnSingleIndexedComponent(component)   
                
        for i in range(fnComp.elementCount()):
            elements.append('%s.vtx[%i]' % (node, fnComp.element(i)))
        iter.next()
    return elements
    

mc.select(softSelection())
mc.softSelect(softSelectEnabled=False)

This one instead returns the influenced objects. Great for quickly querying the objects within a specific distance of another object.

import maya.cmds as mc
import maya.OpenMaya as om

def softSelection():
    selection = om.MSelectionList()
    softSelection = om.MRichSelection()
    om.MGlobal.getRichSelection(softSelection)
    softSelection.getSelection(selection)
    dagPath = om.MDagPath()
    
    iter = om.MItSelectionList(selection)
    elements = []
    while not iter.isDone(): 
        iter.getDagPath(dagPath)
        dagPath.pop()
        elements.append('%s'%dagPath.fullPathName())
        iter.next()
    return elements

def getObjectsInRadius(radius=20.0):
    mc.softSelect(softSelectEnabled=True,softSelectDistance=radius,softSelectFalloff=2)
    return softSelection()

print getObjectsInRadius(mc.ls(sl=True)[0])[1:]

Monday, 2 July 2012

ROME II announced


What I'm currently working on here at CA.

Thursday, 31 May 2012

Update



Thought i'd update, considering it has been a month or two.
Been pretty busy lately with the moving, new job and 5-hour commute (temporary), so I haven't had much time to work on any of my own stuff, or do... well... anything.
Once settled i'll probably get back on it.

Friday, 13 April 2012

Script: ld_selectMe (v2)

Re-wrote my free selection-set creation script, 'ld_selectMe' in python.
Updates include a more dynamic UI, faster set creation and overall, a much better write of the actual selection script, allowing the same functionality but only much, much faster than its mel counterpart.

You can download the re-write for free here (mediafire.com)
or creativecrash here.

Any comments/suggestions welcome.

Tuesday, 3 April 2012

The Animated Sparrow

Really lovely animation (modeling and texturing) on the finished Sparrow rig by Geraint Wright.