StudioLibraryでのアニメーション登録をPythonから操作する方法を紹介します。
製作者様のGitHubにサンプルが公開されているので、まずはこちらを確認して頂くのがオススメです。
https://github.com/krathjen/studiolibrary/blob/master/src/studiolibrarymaya/README.md
環境
- python2.7
- maya2019.2
- studiolibrary2.7.1
Animationの登録
選択しているリグのアニメーションをDドライブにTanuki.animとして保存する場合。
スクリプト
# studiolibrary2.7.1
import os
import maya.cmds as cmds
from studiolibrarymaya import animitem
path = os.path.join("D:/studiolibrary/root/dev", "Tanuki.anim")
objects = cmds.ls(selection=True) or []
# Saving an animation item
if objects :
animitem.save(
path,
objects = objects,
frameRange = (0, 40),
fileType = "mayaAscii",
thumbnail = "D:/studiolibrary/image/tibitanu.jpg",
comment = "This is Tanuki",
bakeConnected = False,
)
saveで使用するフラグの解説
-
path
str
- アニメーションの保存先の指定します。
D:/studiolibrary/xxx/xxx/hoge.anim
-
objects
[str, str, str, str]
- アニメーションを登録するオブジェクトを指定します。
- サンプルの実装では
cmds.ls(sl=True)
で選択しているオブジェクトのアニメーションを保存しています。
-
frameRange
(int, int)
- 登録するアニメーションの範囲を指定します。
- 数値を指定しない場合は、アニメーションの始まりと終わりが自動的に検出されその値で登録されます。
-
fileType
-
str
- 作成されるMayaファイルの保存形式を指定します。
-
MayaAScii
もしくはmayaBinary
-
-
thumbnail
-
str
- サムネイルに使用する画像のファイルパスを指定します。
-
D:/studiolibrary/image/tibitanu.jpg
- 登録時に.animフォルダに画像がコピーされ
thumbnail.jpg
という画像が自動生成されます。
-
-
comment
-
str
- コメントです。
-
-
bakeConnected
- どういう機能なのか分からなかったのでOffにしています。分かり次第追記。
実行結果
実際に動かすとこんな感じになります。
studiolibrary2.5.7より前のバージョンの場合
studiolibrary2.5.7より前のバージョンを使っている場合は書き方が少し異なります。
一度itemをインスタンス化する必要があるので注意しましょう。
# studiolibrary2.5.7
import os
import maya.cmds as cmds
from studiolibrarymaya import animitem
path = os.path.join("D:/studiolibrary/root/dev", "Tanuki.anim")
objects = cmds.ls(selection=True) or []
item = animitem.AnimItem(path)
# Saving an animation item
if objects :
item.save(
objects = objects,
frameRange = (0, 40),
fileType = "mayaAscii",
bakeConnected = False,
)
次回はPythonを使ったStudioLibraryでのアニメーション読み込み方法を書きます。