忍者ブログ


~ 立ち上がれ ~
1  2 
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

MEL作成の参考にしたかったり、コマンドの内部処理を把握するために、Mayaを構築しているMELを直接参照して参考にしたりする。

C:\Program Files\Autodesk\MayaX.X\scripts

にあるので、文書内を検索して該当スクリプトを探すのだが、以前はうまく行った検索がどうにもうまくいかない。
WindosXPになってから、文書内検索ができなくなったらしいとの情報をキャッチ。
仕方がないので、フリーのソフトを探してきました。

Grape File Search
http://www.vector.co.jp/soft/winnt/util/se373049.html

しかし、なんでそんな仕様変更するかね、ゲイツさん。
PR
ちょっと重めのシーンを開いています。
シーンも読み込まれて、オブジェクトもウィンドウに表示されているんだけど、開いたとたんにMayaが反応しなくなる(フリーズ)、又は、開いたとたんに落ちてしまう(コアダンプ)場合があります。


これ、シェーディング表示にしたまま保存した、ファイル容量が大きなシーンファイルでおきることが多いです。
シーンファイルが大きいので、結構メモリ食ってしまい、シーンを開いた後のシェーディング処理負荷でMayaが対処しきれなくなるようです。

でももし、maya ascii で保存していたのなら安心。
シーンをテキストエディタ等で開いて、-displayAppearance を検索します。

createNode script -n "uiConfigurationScriptNode";

項目の、-displayAppearance フラグで、作業画面のシェーディング表示設定がされていますので、smoothShaded を wireframe と書き換えてしまいます。

-displayAppearance \"smoothShaded\"
-> -displayAppearance \"wireframe\"

-displayAppearance \\\"smoothShaded\\\"
-> -displayAppearance \\\"wireframe\\\"

複数ある場合があるので、くまなく探し、全て書き換えたら、別名で保存をします。

ほら、開いたでしょ。
たすかったぁ~。
カメラの、画角(Angle of View)、被写界深度(Focal Length)、撮像面サイズ(Camera Aperture)の関係が、少々ややこしい。

・Camera Aperture(Horizontal) をいじると、Focal Length 固定で Angle of View が変化
・Focal Length と Angle of View はお互いをいじると、その互いの値が変化

となっている。

この計算は

C:\Program Files\Autodesk\MayaX.X\scripts\AETemplates
AEcameraTemplate.mel

というスクリプトのプロシージャ

AEcalculateFOV (Angle of View の算出)

float $focal = `getAttr $focalStr`; //Focal Length値
float $aperture = `getAttr $horStr`; //横Camera AZperture値
float $fov = (0.5 * $aperture) / ($focal * 0.03937);
$fov = 2.0 * atan ($fov);
$fov = 57.29578 * $fov; //Angle of View値

AEadjustFocal (Focal length の算出)

float $fov = `floatSliderGrp -q -value fovGrp`; //Angle of View値
float $aperture = `getAttr $horStr`; //横Camera AZperture値
float $focal = tan (0.00872665 * $fov);
$focal = (0.5 * $aperture) / ($focal * 0.03937); //Focal length値

で計算されています。各定数は

0.03937 : Focal Lengthのミリ数-インチ換算(Camera Apertureはインチなので)
57.29578 : 角度-ラジアン変換
0.00872665は、1/(57.29578*2)

ですね。

Melを組むときは、ひとまずMaya上でその操作を実行した上で、Script Editorにコールバックされたコマンドやフラグを頼りしたりするのだが、中には、明確なコールバックが得られないときがある。

仕方がないので、これでは、というコマンドをコマンドリファレンスから見つけて実行してみたりするんだけど、微妙にうまくいかないときがある。trax の clip 作成 (character set も自動生成)がまさにそうだったんだけど、Option Window で入れられるはずの hierarcy の設定フラグがない??

これは怪しいぞと、

C:\Program Files\Alias\MayaX.X\scripts

でCreate Clip Optionウィンドウを構築しているmelを探り出し、実行ボタンを押したときに何が行われているかひとつづつ辿っていって内部的に実行されているコマンドを探り当てることにした。

Maya の GUI 自体が MEL の塊なので、分からないときにはココを探るとたいていのものが出てくる。

でね、これがまたシンプル極まりなくて拍子抜け。

performCreateClip false;

だそう。
しか~し、このコマンド自体が、コマンドリファレンスに載っていなくてフラグが立て方が分からないのです。いろいろ試した末、Create Clip Option Window で設定を保存( Edit -> Save Settings )した上でこのコマンドを実行させると良いことに気がつく。
やっとこGUI上で clip 作成したときと同じ結果になった。やれやれ。

もっとスマートな方法もありそうだけど、とりあえず行き着いたのがコレ。デザイナーの私に出来るのはここまでであります。

Mayaって、優しいんだか、不親切なんだか、たまに分からなるなぁ。

正攻法ご存知の方いらっしゃいましたら、是非ご教授ください。
ワークフロー構築のために、一日MELとにらめっこ。数年前は、作業時間の何割かは、スクリプトを書きながら処理してたんだけど、ここ1,2年は、そういうタイプの作業も少なくて、本格的に書くこともなかったので、頭が相当なまっていて大変。頭も固くなっているし、もう、うに状態な訳です。

プロジェクトの規模上、いろいろな工程をなんとか自分でできる範囲で片付けてきたが、さすが本職さんは違う。こんなことやりたいんだけど、とお伺いを立てると、今まで全く気づかなかった手法で、提案をしてくれる。
それが、どんぴちゃではまったときの爽快感。

僕の場合、実際にスクリプトを書く時間より、何使えば目的を果たせるのか、コマンドを探す時間が大半だったりするので、大助かり。

やはり、本職さんは違うと、いまさらながらに思うのでした。
前のページ <HOME> 









忍者ブログ│[PR]