1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MayaAdvent Calendar 2023

Day 18

maya スタジオライブラリをちょっといじる

Posted at

スタジオライブラリをちょっといじる

※ver 2.9.11 でのお話
※最新ver 2.14.1 では対応されてました。

書き出せない

アニメーションを書き出そうとするとこんなエラーが出て
image.png

なんか謎のCURVEが生成される
image.png

スクリプトエディタも盛大にエラーを吐いている状態

# Traceback (most recent call last):
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\mutils\animation.py", line 652, in save
#     maya.cmds.pasteKey(dup_node)
# ValueError: More than one object matches name: nurbsCircleShape1
# # 
# During handling of the above exception, another exception occurred:

# Traceback (most recent call last):
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\studiolibrarymaya\basesavewidget.py", line 448, in accept
#     self.save(path=path, thumbnail=thumbnail)
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\studiolibrarymaya\basesavewidget.py", line 473, in save
#     **kwargs
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\studioqt\decorators.py", line 24, in wrapped
#     return fn(*args, **kwargs)
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\studiolibrary\libraryitem.py", line 655, in safeSave
#     self.save(*args, **kwargs)
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\studiolibrarymaya\animitem.py", line 272, in save
#     bakeConnected=kwargs.get("bakeConnected")
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\mutils\animation.py", line 135, in saveAnim
#     bakeConnected=bakeConnected
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\mutils\decorators.py", line 42, in wrapped
#     ret = fn(*args, **kwargs)
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\mutils\decorators.py", line 55, in wrapped
#     return fn(*args, **kwargs)
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\mutils\decorators.py", line 133, in wrapped
#     return fn(*args, **kwargs)
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\mutils\decorators.py", line 102, in wrapped
#     return fn(*args, **kwargs)
#   File "K:\tools\maya\scripts\python\studiolibrary\studiolibrary-2.9.11\src\mutils\animation.py", line 706, in save
#     maya.cmds.delete(deleteObjects)
# ValueError: More than one object matches name: ['nurbsCircleShape1']

予想

CURVEというオブジェクトは 選択したコントローラーのアニメーションを書き出すために、
複製したノードで、最終的に削除するはずがshape名がオリジナルと被ってしまって削除できない

的な?

とりあえずコケてるところを眺めてみる

この辺かなぁ
image.png

とりあえず順にみてみる

image.png

ターゲットとなるノードを複製するんだけど、

  • transformノードの場合はtransformノードのみでそれをlistに追加
  • transfromノード以外の場合はshape名をlistに追加

(´A)?
locator とか mesh とか nurbsSurfaceとかはshapeを指定しない限りはtransformノード扱い

elseの方に流れる可能性があるのは jointくらいかぁ・・・・・・

(・A・)あ

実はアニメーションが書き出せなかったコントローラーですが、
実体はjointなんですね。
joint に nurbsCurveShapeをparentして、 joint自体は drawStyle = Noneで非表示に
image.png

これはelseの方に流れ込んでますね。

試しに改修

jointも仲間に入れてあげて と 雑に改修してテスト

image.png

書き出せた!
image.png

書き出せたものの

ツール全体を把握してる訳ではないので、ここだけ直したところで他に影響がないかどうかはもう少し詳しく確認しないと解りませんね。

なので
問題が無いなら 最新版を使った方がいい と思います!

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?