mayaの環境を構築していく　2日目

引き続きmayaの環境を構築していきます。

そもそも何でmayaを自宅環境に復旧させたかというと、
勉強がてらリグ組んだり、ツール(python)を作ったりしたいなぁと思ったからなんです。

さてbatの作成で大好きな英語UIに出来たわけですが、最近のmayaで必ずやることが幾つかあります。

**追記**
認識に間違いがあったので、一部やり直しました。
mayaの環境を構築していく　2日目　やりなおし https://qiita.com/9boz/items/391e6d6dece44f74aa1e

プリファレンスの設定
--
まずはevaluationモードですな。
デフォルトはこんな感じ。申し訳ないけどもこの設定で安定した事はないので
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/63e73f0c-143d-6f48-eda3-648776b9e36e.png)
こうしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/91f4b109-5eab-ab28-0273-5148b7a62c70.png)
特に　GPU Overrideは必ずOFFにしてます。
デフォルトパラレルにしておくと、パラレルに対応できてないデータを開いた際にタイムスライダースクラブした瞬間落ちたりするので、とりあえずDG。
GPUオーバーライドはパラレル使用する際、場合によっては落ちたり、不思議なデフォーム結果を招く原因になるのでOFF。
※詳しい理由は佐々木さんのmayaの仕組みセミナーの内容見て勉強すれば良いと思います。

あとは個人的な好みでundoをデフォルトの無限ではなく50回に。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/d421c1f3-4974-41b1-1356-8d16a7caa0b9.png)

※今はデフォルトOFFですが、登場当時であればこれもOFFってたかな
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/abbd4556-5580-afa7-c05b-d1dbd80eb288.png)


pythonパスの設定
--
先述の通り、pythonでのツール開発とかもしたいのでpythonパスを追加せねばならない。
デフォルトでこれらの場所にpathは通ってるので、ここで開発すればいいのですが

    C:/Users/9boz/Documents/maya/2020/prefs/scripts
    C:/Users/9boz/Documents/maya/2020/scripts
    C:/Users/9boz/Documents/maya/scripts

なんか気分が乗らないので、いつも別途用意するのです。
環境変数にpythonPathを足さねばならないのですが、
どうせ後から　**あ、やっぱ置き場所変えよ！**　とか　**名前変えよ！**　とか言い出すので
その辺変えても割と簡単に対応できるようにしてしまおうかと思います。

batの改修
--
bat実行時に **任意のpathを環境変数に追加して実行** するようにしてしまいます。

フォルダを掘って・・・・
そこにbatファイルとpythonフォルダを作成して・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/6f1e0142-1814-e2c7-a7ca-3ea00d8e973f.png)
batファイルの中身をこんな感じに変更

    SET MAYA_UI_LANGUAGE=en
    SET PYTHONPATH=%PYTHONPATH%;D:\maya2020Env\python;
    "D:\Program Files\Autodesk\Maya2020\bin\maya.exe"

2行目でpythonPathにこのpathを追加することで、maya実行時にpathが通ってる状態になる。

実際あった失敗例：

    SET MAYA_UI_LANGUAGE=en
    SET PYTHONPATH=%PYTHONPATH%;"D:\maya2020Env\python";
    "D:\Program Files\Autodesk\Maya2020\bin\maya.exe"

追加する pathは "" で囲むと読んでくれなくなる。

ただこれだと、**あ、置き場所変えたい**　となった時に書き換えないといかんので

    SET MAYA_UI_LANGUAGE=en
    SET PYTHONPATH=%PYTHONPATH%;%~DP0\python;
    "D:\Program Files\Autodesk\Maya2020\bin\maya.exe"

こうしておこうかと思う。
%~DP0 というのが実行しているファイル自身のpathを意味しているので、
**batファイルが置いてある場所にあるpythonフォルダ**にpathを通すようになる。

pathの確認
--
実際path通ってるのかどうかを確認したいので　batファイルを使ってmayaを起動。
スクリプトエディター(python)にて下記を実行

    import sys
    for i in sys.path:
        print i

スクリプトエディターにpathがいっぱい表示されるので確認すると・・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/bc2c4d75-9403-51aa-a613-92af45d86f41.png)
ok 通ってる。

※path通せるからといって何も考えずに追加しまくると、実は数に上限があるので突然誤作動を起こします。
※なので、pythonのパスを追加で通す時はなるべく一か所にまとめてしまうようにしてます。

追記(2022/02/26):
正確に言うと数に上限があるのではなく、環境変数の総文字数に上限がありますね。

https://atmarkit.itmedia.co.jp/ait/articles/1510/30/news041.html#:~:text=%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AB%E3%81%AF%E3%80%81%E3%80%8C1,%E3%81%BE%E3%81%A7%EF%BC%89%E3%81%A8%E3%81%84%E3%81%86%E5%88%B6%E9%99%90%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82


ついでにuserSetup.pyを足す
--
めでたくpythonPathを追加できたので、ついでに userSetup.pyも作ってしまおうかと思います。
userSetup.pyってなんじゃい？って場合は調べると出てきますね。

後々拡張するつもりではありますが、mayaが強制終了したりとかで↑で設定したプリファレンスが飛ぶとイラっとするので
userSetup.pyで設定してしまおうかと。

とりあえずファイルを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/94abb756-6798-2df3-d37e-3559dd161900.png)

中身はこんな感じに

    import maya.cmds as cmds
    import maya.utils
    import sys
    sys.dont_write_bytecode = True

    def setPref():
        cmds.evaluationManager(mode = "off")

        if "deformer" in cmds.evaluator(q =True,name =True):
            cmds.evaluator(name = "deformer",enable=False)
            cmds.optionVar(intValue = ["gpuOverride",0])

        cmds.savePrefs(general =True)

    maya.utils.executeDeferred(setPref)

起動時に必ず　DGモードに設定　GPUOverrideをOFF　が実行されるようになりました。
※プリファレンスを設定後保存してやらないと、なんかうまく反映されなかった気がする。
※GPUOverride optionVarなんすか・・・・
追記：cmds.evaluator( name = "deformer",enable=False) でGPUOverride　OFFにできる。

もうmayaの環境構築終わったも同然なので、続きは次回。


参考：
https://www.borndigital.co.jp/seminar/14517.html
https://cgpipeliner.info/2021/09/13/environmentalvariables/
http://melpystudio.blog82.fc2.com/blog-entry-57.html