エクスプレッションエディタが立ち上がらない問題の対処

2017.04.24 (Mon)
エクスプレッションエディタを開こうとすると

// エラー: file: C:/Program Files/Autodesk/Maya2016/scripts/others/expressionEditor.mel line 2221: オブジェクト 'EEmultiText' が見つかりません。 //

などのエラーが出て、エディタが開かない場合があります。
調べたら以下の手順で解決できました。


■ いったんMayaは閉じる。

■ 「C:\Users\(ユーザー名)\Documents\maya\(自分のMayaバージョン)\ja_JP\prefs\userPrefs.mel」
これをメモ帳か何かで開いて、「EEexprEdTextEditor」の項目を検索します。

■ 「 -iv "EEexprEdTextEditor" 0」的な項目がヒットするので、数字を1に変更して保存。

■ Mayaを再度起動し、エクスプレッションエディタを開いてみる。


userPrefs.melを修正することで直るので、Maya上で何か設定を変えたとき、
もしくは古いバージョンから設定を引き継いだ時に発生するものかもしれません。


Category: MAYA | Comment(0)

Mayaでテクスチャの自動更新

2016.08.23 (Tue)
  最近のMayaって、MaxやSoftimageみたいにテクスチャ自動更新してくれるんですね。
今日一番のショックな発見。
今まではフォトショップでテクスチャ修正 > Mayaに戻って、Melか何かで更新させる 
> フォトショップに戻ってまた修正 ...みたいなことをしていました。
MaxやSoftimageも仕事で経験しているので、Mayaだけ機能不足に感じてましたが、
どうやら20152014あたりからMayaにも自動更新機能が追加されたみたいですね。

ただし、この自動更新は、デフォルトではオフになっているので、
以下の操作をしてオンにしないといけません。

■ プリファレンスウィンドウを開く。(ウィンドウズ > 設定/プリファレンス > プリファレンス)
■ 設定 > ファイル/プロジェクトタブに移動。
■ イメージファイル項目の「更新されたイメージファイルを自動的にリロード」にチェックを入れる。

英語版だとこんな感じ。
Windows -> Settings/Preferences -> Preferences ->
File/Projects -> Image Files -> Check: Automatically reload updated image files

追記 : もし、「更新されたイメージファイルを自動的にリロード」がグレイアウトされていてチェックできない場合は、
プラグインマネージャからmodelingtoolkit.milをロードします。
テクスチャ自動更新機能は、モデリングツールキットの付属機能のようです。


上記操作でオンにしたら、以降、フォトショップ(または、その他の画像編集アプリ)で
セーブするたびに、Mayaに戻らなくてもテクスチャが更新されます。

Category: MAYA | Comment(0)

MAYAから書きだしたfbxファイルを使って、Softimageにデータを持ち込む話

2015.12.25 (Fri)
最近softimageをつかう仕事(しかも2011)があったので、メモ代わりに。
書き出したFBXはfbx2013、インポートするSoftimageは2011。

0. Softimageからfbxを書き出す際に、使用されているマテリアルによって、書き出しができずSoftimageごと落ちることがあった。
デフォルトのマテリアルを張りなおして書き出すことで解決。

1. MAYAから書き出す際に、モデルにテクスチャが張られていないと、Softimageに持ってきた際にUVがついてこなかった。
書き出す際に、ダミーでいいので、テクスチャを張って渡すように。

2.softimageでは、Mayaのfileノードの名前が、そのままTexture_Coordinates_AUTOの名称になる。予めfileノードの名前を「Texture_Projection_Default」にしておくと、fileノード一つ分の手間が減る。

3.ポリゴンクラスターを分けたい場合は、MAYA上でクラスターを分けたいポリゴンごとに別々のマテリアルを適用(一つのモデルに複数マテリアルを適用)

4. この時、マテリアルの名前が、ポリゴンクラスターの名称になる。

5. fbxインポート時にhard edgeにチェックをいれることで、MAYAで設定したハードエッジを持ってくることができる。
モデルデータに「Edge_AUTOxx」のクラスターが追加されるので、必要に応じて削除する。

6. fbxでスキン情報やアニメーションを持ってくることができるので、インポートしたモデルのウェイトをSoftimageに用意されたジョイント単層に適用することで、Mayaで設定したウェイトを再現できる。
(もちろんMayaとSoftimageで同一名称、同一構造のジョイントを使う事が前提)

7. インポート後の作業
正規のマテリアルを張りなおし、FBXから来たマテリアルは削除。
Geometry Approximationの不連続性を設定。
Texture_Projection_Defaultの名称設定、ポリゴンクラスターの名称設定。
正規ジョイント単層へウェイト移植。モデルを正規の単層に移動する。
などなどを必要に応じて。
Category: MAYA | Comment(0)

MAYAでウィンドウが画面外に表示された場合の解消方法

2015.11.03 (Tue)
デュアルモニタからシングルに変えた場合などに、アウトライナーや、グラフエディター、
自作MELのウィンドウなどが画面外に表示されてしまって、ツールに触れなくなる場合の解消方法です。

MAYAは、windowPrefs.melにフローティングウィンドウの表示場所を記録するので、
一番手取り早いの手段はwindowPrefs.melを削除して、すべてリセットしちゃう方法。
特にこだわりがなければ、これで解決できます。

手順は、
■ MAYAが起動中であれば、終了させる。

■ windowPrefs.melを削除

■ MAYA再起動。

(windowPrefs.melは以下の場所にあります。)
C:\Users\ [ユーザ名] \Documents\maya\ [バージョン番号] \ja_JP\prefs\windowPrefs.mel




でもこれだと少し大げさな気もします。ウィンドウ一つの表示位置を変えたいだけなので、
そのウィンドウの表示位置を再設定してあげればいいと思いました。

windowPrefs.melで管理してるならMEスクリプトでも直せるだろうと、
実際windowPrefs.melを開いてみると、以下のようなMEL文が並んでいるのがわかります。

windowPref -topLeftCorner 8 540 -widthHeight 546 976 -parentMain true outlinerPanel1Window;
windowPref -topLeftCorner 0 4 -widthHeight 708 514 -parentMain true hyperGraphPanel1Window;

「windowPref」というコマンドに、「-topLeftCorner」で位置、「-widthHeight」で大きさを設定しているわけですね。
つまり、「outlinerPanel1Window」、「hyperGraphPanel1Window」などのMAYA内部でのウィンドウの名前がわかれば、そこを修正すればいけるということです。

(詳しくはリファレンスを参照。)
http://download.autodesk.com/global/docs/maya2013/ja_jp/Commands/index.html



後は、以下の手順で目的のウィンドウのみの表示位置を直せます。
■ まず、名前を調べます。「outlinerPanel1Window」、「hyperGraphPanel1Window」など、
windowPrefコマンドの右端の名前からそれっぽいものを探します。
(自作MELとかはわかりやすいです。何せ自分で名前を振るわけですから)

■ windowPrefs.melをMAYAのスクリプトエディターや、メモ帳などで開きます。

■ 「outlinerPanel1Window」、「hyperGraphPanel1Window」など、
目的のウィンドウの行に移動し「-topLeftCorner」の値を、「-topLeftCorner 0 0」に変えます。
(すべて半角)

■ windowPrefs.melを別名に保存し、MAYAは閉じます。

■ windowPrefs.melを上書きしてMAYAを起動します。
(MAYAを閉じたままwindowPrefs.melを編集したなら、別名保存じゃなくてもいいです。)

■ MAYAを再起動して、目的のウィンドウが画面左上に表示されればOK。
もし表示されなかったら、指定した名前は違うウィンドウだったってことなので、
ほかの行を探して、最初からやり直します。



MAYAの再起動すらもいやなら、MAYA上で該当コマンドを直接実行してもいいです。
■ 目的のウィンドウは閉じた状態にします。
(開いたままだと、後から画面外座標が上書きされるため)

■ 左下のコマンドラインに以下のコマンドを打ち込みます。
windowPref -e -topLeftCorner 0 0 [ウィンドウの内部名];

■ 目的のウィンドウを再度開いてみます。

説明が大雑把ですが、これで解決できると思います。
もうウィンドウが画面外にいても怖くありません。
Category: MAYA | Comment(0)
back-to-top