Coconut Curves

I’ve always liked this way of rigging faces. By constraining joints to the curves moving the curves around, you get some nice fall off that makes everything feel squishy and soft. Which works really well on cartoony characters. Not posting the entire┬ácode because it’s pretty messy, pretty long and spread across multiple files. Take a look at the YouTube video to see how it works and feel free to comment or ask if you want to.

 

Skin weight copy/export

Using Maya’s own deformerWeights command, I managed to write a neat little tool that works very fast and very reliable.

All skinning information can be saved in offline files or as a custom node in the actual scene itself, so it never gets lost.

The code needs some tinkering before I put it up, but take a look at the video to see how it works.

 

Copying Channel Box information between objects

I’ve spent a lot of time in Unity and as anyone who’s spent a lot of time in Unity, you’re using the Transform component quite a lot. One thing that I’ve always like about Unity’s Inspector is the ability to copy a component and paste it either as a new component on another object, or just copy the component values. I’m in the middle of doing some hard surface modeling and things need to line up pretty accurately. The manual way of getting Channel Box information from one object to another is first selecting the object that needs to be adjust, shift select the other you want to adjust to and then tab-enter your way through the Channel Box. It works and it’s actually quite fast. But it’s not the one click solution I’m usually after.

Continue reading

Recover Maya files after crash

I had Maya crashing on me a couple of times in the last past days and trying to get my files back was just not fun. So I wrote a little script that allows you to recover whatever file(s) Maya managed to save before crashing. Your mileage my vary whether or not the files actually open, but you can always give this a try.

Grab it here – recoverAfterCrash.zip.

  • Put the files in your Maya scripts folder
  • On line 32, set uiFilePath to the path where you saved the ui file. Probably C:\Users\[USERNAME]\Documents\maya\scripts
  • Add the following python script to your shelf:
  • import recoverAfterCrash
    recoverAfterCrash.CreateUI()
    

The code of the script:


##############################################
#
#
# recoverAfterCrash.py
# nielsvaes@gmail.com
#
#
##############################################


#PySide
from PySide.QtCore import * 
from PySide.QtGui import *
from PySide import QtGui as QTGui
from PySide.QtUiTools import *
from shiboken import wrapInstance


#Maya
import maya.cmds as cmds
import maya.mel as mel
from maya import OpenMayaUI as omui

#Python std lib
import os
import tempfile

ui = None

#Change this path to the location of the nameTools.ui
uiFilePath = "<PATH TO THE LOCATION OF>/recoverAfterCrash.ui"

def CreateUI():
	global ui
	global uiFilePath

	mayaMainWindowPtr = omui.MQtUtil.mainWindow()
	mayaMainWindow = wrapInstance(long(mayaMainWindowPtr), QWidget)

	loader = QUiLoader()
	file = QFile(uiFilePath)
	file.open(QFile.ReadOnly)

	ui = loader.load(file, parentWidget = mayaMainWindow)
	file.close()
	
	ui.btnTryToRecover.clicked.connect(TryToRecover)

	Awake()

	ui.setWindowFlags(Qt.Window)
	ui.show()

def Awake():
	tempDir = tempfile.gettempdir()

	foundfiles = []
	for file in os.listdir(tempDir):
		if file.endswith(".ma"):
			item = QListWidgetItem(file)
			ui.lvFiles.addItem(item)

def TryToRecover():
	tempDir = tempfile.gettempdir()
	selectedFile = tempDir + "/" + ui.lvFiles.currentItem().text()

	try:
		cmds.file(selectedFile, open = True)
	except:
		cmds.warning("Couldn't open file or no file selected")

#CreateUI()