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」となるようにしてあげています。