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.

 

Share This:

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

Share This:

I had some hours to kill and time to think about cool little problem

I recently encountered a very simple problem that took too many mouse clicks to solve. In a scenario where you have a character that needs to have its head separate from its body, it can be a pain in the ass to have the skinning on the edges of the two meshes to match up.

Continue reading

Share This:

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()

Share This:

The name game

There are a gazillion renaming scripts out there… and now there are a gazillion + 1 renaming tools. If you’ve been using Maya for some time I’m going to assume you already have something to scratch whatever renaming itch you might have, but I decided to group the things I find I need the most. Feel free to use or abuse it as always 🙂

Continue reading

Share This: