myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

Maya | AutoKeyFrame Color

元々Mayaユーザーのデザイナーは今の案件の都合によってSoftimageを使っています。 Softimageユーザとして少しアドバイスしたりしていて、キャラクターのポーズを付ける時にオートキーフレームにした方が楽かもよーと教えたら、Softimageの画面のフチが赤くなったことに驚きました。 これは分かりやすいですね!
Mayaだとオートキーが付いているのを忘れて、色々失敗してしまいますね。

そっか、Mayaにはないですね。こういう目印。
Softimage 2011 か 2012 までもそうだったから、良く分かります。オートキーに気付かずにキーを打ちまくるからなるべくオートキーは使わないようにしていました。

で、Mayaでもなんとか出来ないかなと考え、このやり方を思い出した。

Maya | UIの色変更

これをイベントにすればなんとかなるじゃん!
と思ったけど、実行してみると、エラーが出ました。

そっか、Maya 2017 はPySide2だね・・・。そんな簡単には行かないか。

2、3ヶ月程前に社内ツールを2017に変換しようとして色々試していて、何日も掛けても失敗し続けていた絶望的な時に出会えた神モジュールがあります。

Qt.pyです。

なんとなくUIを作っているだけで、正直PySideとか良く理解していないですw

それでも、これを使えばなんとかなるんじゃない?と思いながら色々やってみて、ネットでサンプルを探してみたら、出来ました!
これで2015,16,17,18 は同じコードで動きます! (16と17でしか試していないけど)

Qt.py、すばらしい。

MayaColor2.gif

コードはこんな感じです。

#Python
from Qt import QtWidgets
from maya import cmds

class autoKeyFrameColor():
def __init__(self):
cmds.scriptJob(conditionTrue=['autoKeyframeState', self.changeMenuStyleSheetRed] )
cmds.scriptJob(conditionFalse=['autoKeyframeState', self.changeMenuStyleSheetDefault] )

def changeMenuStyleSheetRed(self):
QtWidgets.QApplication.instance().setStyleSheet("QMenuBar {background: rgb( 155, 10, 10 );}")

def changeMenuStyleSheetDefault(self):
QtWidgets.QApplication.instance().setStyleSheet("")


このモジュールを読み込んで、クラスを実行すれば良いだけです。

例:
autoKeyFrameColor.py というファイルに保存して、このファイルをMayaのScriptsフォルダに入れます。

Mayaの「userSetup.py」に

import autoKeyFrameColor
autoKeyFrameColor.autoKeyFrameColor()


を書いておけば、Mayaが立ち上がるたびにこのイベントが登録されます。
これだけで、オートキーがONと感知したら、メニューの色を赤にしてくれる。OFFにすると、元に戻してくれる。

もちろん Qt.py ファイルを Scripts フォルダに入れないと動かないですよ。


Qt.py の開発者の皆さん、ありがとうございます!

Maya | Move like XSI

ムーブツールですね。初めてMayaを使った時から欲しいと思っていた機能です。
初めて使ったのはMaya 7 だったっけ?6だっけ?・・・。

で、2009 あたりかな?MayaにTweakモードが追加されてちょっとだけSoftimageのMove ツールっぽい作業が出来るようになりました! と思ったら、全然使い辛かった。

Nexプラグインが出て、ムーブツール以外に色々優秀なツールが付いていた為、Autodeskに買収され、2014で終了。

2013あたりにDiamantTools というプラグインがでました。これもなかなか良い感じのMoveツールが付いていますが、2017以降は対応されていません。そしてUS$200もします。ムーブツールしか要らないけど、US$200ですか・・・。2017版のムーブだけ安く売ってくれないかな。

Maya 2014からデフォルトにNexのような「Modeling Toolkit」が追加されました。追加されたばかりだった為ほぼNexそのままでした。まるでプラグインが付いているだけのもの。

2016以降はやっと使えるツールになってきましたね。(ある程度)
少しずつ使いやすくなってきています。もっと頑張ってくださいAutodeskさん。まだ選択し辛いです。

しかし、相変わらずあっちこちクリックしてからやっと使えるようになります。
1クリックで出来そうなことはユーザーに5クリックぐらいさせないと気がすまないMaya様ですからね。

毎回色々クリックするのは面倒だから、ショートカットのようなスクリプトを作り始めました。
書いてるうちにもっとSoftimageのMoveっぽくしたくなって、機能を増やしていたらアイコンまで作っちゃって、結局こうなりました。

この記事に色々書いたけど、単純にMayaのTweakにSoftimageっぽいUIを付けてみました。
はい、それだけです。

それだけで、僕のストレスがほんの少しだけ軽減されます。

ModelingToolkitの情報がなさすぎて、書くのはそこまで簡単じゃなかったけどな。
あんまりなっとく行くような書き方になっていないが、動くからいいや。

あと、この動画に出すのを忘れていましたが、一応CTRL とか ALT を押しながら実行するとオプションパネルが出てきます。


Maya xsiMove from myara on Vimeo.




DL:

https://www.dropbox.com/s/hjdmcup21zm0sly/xsiMove.zip?dl=0

インストール方法
Scripts フォルダに解答してください。
こんな感じのパスになるはずです:

C:\Users\myara\Documents\maya\scripts\xsiMove


で、この中に:
icons
__init__.py
xsiMove.py
ファイル2つとアイコンフォルダ1つになれば、OKです。

実行方法:
MayaのPythonで:

from xsiMove import xsiMove
xsiMove.main()



SI | mTextureEditor

現プロジェクトとその前のプロジェクトでUVの細かい作業が多くて、少しずつUVツールを作っていました。
今更ですが、SoftimageのUV周りのスクリプトの書き方が分かってきて、色々書いて出来たものはこのmTextureEditorです。

まだ調整が必要な部分があるけど・・・もう良いっか。EOLじゃなかったらもうちょっと頑張れたけどな。

Softimageまだ使っている人がいるのかな?
弊社ではまだSoftimageプロジェクトは2つが走っています。もちろん少なくなってきているけど、あと2年ぐらいSoftimageの案件があるのかな?

以下はmTextureEditorのマニュアル・ウェブサイト
http://skymill.co.jp/tools/Softimage/mTextureEditor/mTE_help.html



SI | mGridUV 1.1 更新

mGridのコードは色々修正しました。
今度こそ上手く動くはずです^^;

ダウンロードリンクは同じです。

■DOWNLOAD
https://www.dropbox.com/s/o8b10x9eaap1o5j/mGridUV.js?dl=0

前回の記事

そしてmTexture Editorはほぼ完成です。マニュアルや動画を取れば公開しようかな。
以下は最初のプロトタイプ版です。


mTextureEditor from myara on Vimeo.

Maya | UIの色変更

あるプロジェクトでそのプロジェクト専用のプラグインやシェーダーを使うために Maya 2016.5 とPythonの環境パスを set MAYA_SCRIPT_PATH と PYTHONPATH でバッチファイルで変えています。

他のプロジェクトも同じMaya 2016.5 を使っているので、今どのMayaが立ち上がっているかは分からなくなってしまうという問題が出てきました。プロジェクトの専用プラグインちゃんと動いているかどうかは確認すれば済む話ですが、ミスを防ぐために一見で見分けられるようにしたい。

とりあえず、-style cleanlooks などを試してみようと思いました。

こんな感じです:

C:\Program Files\Autodesk\Maya 2016.5\bin\maya.exe -style cleanlooks


使えるスタイルは:
gtk, cleanlooks, windows, windowsxp, windowsvista, macintosh, cde, motif, plastique, monolith

MayaColor2.jpg

白っぽくて一発で違うMayaを使っているのが分かります。

しかし、見づらいな・・・。

元々のグレイバックグラウンドが残っているけど、文字が黒に変わってしまっているところが多くて、見辛い。
色設定で色々カスタマイズすればなんとか使えるようには出来ると思いますが、やっぱり元のUIのままで1ポイントだけ変えたいと思って、色々調べてみたら、QtGuiコマンドで変更が出来ました。

from PySide import QtGui
QtGui.qApp.setStyleSheet("""
QMenuBar {
background: rgb( 68, 100, 35 );
color: rgb( 225, 225, 225 );
}
""")

background は 背景の色で color は文字の色。0 ~ 255の数値で設定が出来ます。

以上のコードを実行すると、こうなります:
MayaColor.gif

有効期限はそのセッションが終わるまで。

なので、Mayaが立ち上がるたびに自動的にこの色になって欲しい場合はuserSetup.py にこのコードを入れれば、毎度この色に変更されます。

因みに、userSetup.py をこのプロジェクトのMAYA_SCRIPT_PATHに入れれば、このプロジェクトを立ち上げる時だけに実行されます。

例えばプロジェクトはProjectXという名前にしよう:

- プロジェクトXのMayaスクリプトフォルダ: D:\ProjectX\Scripts
- D:\ProjectX にMaya.bat を作成する
このMaya.bat の中身は:

@set MAYA_SCRIPT_PATH = Scripts
@start "" "C:/Program Files/Autodesk/Maya2016.5/bin/maya.exe"



そして、userSetup.pyの中身は:

# -*- coding: utf-8 -*-

def changeUIColor():
from PySide import QtGui
QtGui.qApp.setStyleSheet("""
QMenuBar {
background: rgb( 68, 100, 35 );
color: rgb( 255, 255, 255 );
}
""")
changeUIColor()

userSetup.pyに色々入れているので、コードの整理と管理しやすくする為にファンクションに入れましたが、別に直下でもOK。

Maya 2011 から QtGui を使っているので、2011以降でしたら、こんな感じでUIの色は簡単に変えられます。QtGuiは色々調べれば、色々カスタマイズが出来そうですね・・・。
Next page