LoginSignup
0
2

More than 3 years have passed since last update.

StudioLibraryをPythonから操作してみる。【Anim Save編】

Posted at

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にしています。分かり次第追記。

実行結果

実際に動かすとこんな感じになります。

image.png

image.png
ちびたぬはいいぞ

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でのアニメーション読み込み方法を書きます。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2