Maya クラッシュログ 出力場所 TEMP 環境変数 変更


まず意図的にクラッシュさせないといけないのでここに書いてあるmelコマンドを使います。
https://area.autodesk.jp/column/tutorial/maya_atoz/do-what-you-can-do-it/

global proc test(,int $test) {}

やりたい事:MayaのCrashLogを指定のフォルダに出力したい。

putenv "TMP" "出力パス";

をmelで実行すれば変わる。以下は色々しらべて試した結果だから読まなくてもいい。

Q:クラッシュログの出力場所はどこか?
A:クラッシュログはOSに設定されている環境変数TEMP,TMPに書かれてるパスに出力される。

Q:Mayaでクラッシュログの出力場所を変えたい時はどうすれば良いか。
A:環境変数TMPとTEMPをmelのputenvで書き換える。

Q:調べるとwindowsのMayaはTEMPとTMPDIRを書き換えると書いてあるが?
A:やってみればいい。変わらないから。

Q:putenv TEMP "出力パス" putenv TMPDIR "出力パス"してgetenvしたら変わっているが?
A:melの表示上は変わっているがクラッシュさせても結局変わらなかった。

Q:putenv "TMP" "出力パス" でlogは指定のパスに吐かれたがクラッシュ前の.maは前のパスに吐かれたけど?
A:maya起動用のバッチを作成して、起動前に環境変数をセットしないと変わらない。

以下バッチから環境変数を変える事に成功したコード
/---
rem @echo off
setlocal enabledelayedexpansion
set MAYA_PATH="C:\Program Files\Autodesk\Maya2018\bin\maya.exe"
rem クラッシュログが出力されるパスの変更
set TEMP=C:\crashLog
rem Mayaの起動
call %MAYA_PATH%
/---

Q:バッチからMaya起動とかありえんのだが?そんな事しないといけないの?
A:CEDECでMayaの資料漁ってこい。SEGA任天堂はバッチ起動で環境を統一してるぞ?
 
Q:Maya.envにTEMP系の環境変数設定しておけば変わるって書いてあったけど?
A:変わるかもしれないが私は変わらなかった。やり方が間違っていたかもしれない。
 Maya.envの後に環境変数が何かのスクリプトで書き換えられてたかもしれない。
 挑戦してみて。

Q:userSetup.melで環境変数変えたけど.maは相変わらず前のパスに吐かれたけど?
A:Maya起動バッチを作成する他ない。諦めるんだ。

Q:で、結局どうすればクラッシュログのパス変えられるの?
A:Mayaが立ち上がった後に
 putenv "TMP" "出力パス";
 を実行TEMPとTMPDIRは設定しても意味なかった。
 保険で
 putenv "TEMP" "出力パス";
 も実行する。意味ないと思うけど。

Q:なんでwindowsはTEMPとTMPとか環境変数二つあるの?Mayaはどっちつかってるの?
A:mayaはTMPを使っているらしい。ぶっちゃけ両方書き換えるのが安全。
 二つある理由はwindowsが作られる前の話になるから調べて。

Q:Mayaがクラッシュした瞬間をキャッチしたいのだが?
A:私もしたい。調べて教えてください。

最後に個人的な1番オススメなやり方は起動バッチを作ること。
そこで皆の環境を統一させる。環境不一致によるエラーや問題に振り回されたくなかったらそうするべき。

わからない場合はTwitterにリプください。Mayaのプラグインを作る仲間がほしいです。
全然情報出てこないので。

ラーメンたべたい。

以上です。