FPSの設定と取得を便利にする!




MayaでFPSを設定したり、取得しようとすると、「currentUnit」を使用するのですが、これが思ったものと、、、

違うんです
(●`ε´●)

FPSが15なら「game」、FPS24なら「film」といったようになるんです。。。

できれば、「FPSを24にしたまえ!」とか、「FPSはいくつだい?24でございます!」っというように、数値ベースで、、、

したい!
(*´ω`*)

今回は、そのための関数のコードをご紹介いたします!(`・ω・´)ゞ

FPSの取得

from maya import cmds
def getFPS():

	unit = cmds.currentUnit(q=True, t=True)
	fps  = 0

	if unit == 'game':		fps = 15
	elif unit == 'film':	fps = 24
	elif unit == 'pal':		fps = 25
	elif unit == 'ntsc':	fps = 30
	elif unit == 'show':	fps = 48
	elif unit == 'palf':	fps = 50
	elif unit == 'ntscf':	fps = 60
	else:
		temp = unit.replace('fps', '')
		fps  = int(temp)

	return fps

「currentUnit」で取得したFPS情報を、if文で分岐していきます。既定値以外のFPSは「75fps」といった形で返ってくるので、「fps」の文字列を消して「int型」にキャストしています。

FPSの設定

from maya import cmds
def setFPS(value):
	if value == 15:		unit = 'game'
	elif value == 24:	unit = 'film'
	elif value == 25:	unit = 'pal'
	elif value == 30:	unit = 'ntsc'
	elif value == 48:	unit = 'show'
	elif value == 50:	unit = 'palf'
	elif value == 60:	unit = 'ntscf'
	else:				unit = '%sfps' % fps

	cmds.currentUnit(time=unit)

既定値のFPSの場合は、それぞれ対応する文字列になるようにします。それ以外は「数値fps」となるようにしてあげています。