XSIユーザーから観たMELスクリプトについて 其の二十一
ではここからはサイトに書いてある、
コマンドをしてみます。
以下MELコマンドの説明。
currentUnit -q -linear
長さの確認です。
センチとかミリとかですね。
SIではこの単位がSoftimage単位?
って言われ、定義は各々がすることになっていますね。
一応デフォルト状態で、グリッド一個で10センチ(ミリ、メートルなんでも可)
としてます。このグリッドの大きさはこんな感じで取得できます。
Logmessage(GetValue("Camera.camvis.disustep")); Logmessage(GetValue("Camera.camvis.disvstep"));
今回はカメラビューのみ変更しています。
currentUnit -q -angle
角度の設定確認ですね。
デフォだとラジアンみたいです。
SIは基本というか変換噛まさない限り
ラジアンなんで設定自体はないですが、コマンドこれです。
XSIMath.RadiansToDegrees( rad );
これめちゃくちゃ使いますね。
currentUnit -q -time
時間の単位確認できますね。
デフォはフレーム。
SIではフレーム以外変更できないんですね。
about -cd about -ct
現在の日時取得と現在の時刻を取得できます。
これSIだとJsの関数使ってますね。
date = new Date(); year = date.getYear(); month = date.getMonth() + 1; day = date.getDate(); hours = date.getHours(); minutes = date.getMinutes(); second = date.getSeconds();
new Date();で日時のオブジェクトを作成し、
それぞれを取得します。
currentTimeUnitToFPS
FPSを取得できます。
SIではこのフレームレート自体は取得できないんですが、
(ありますか???)
表示することで確認できます。
SetValue("Camera.camvis.vsyncinfo", true, null);
次、
commandEcho -state on
全ての操作をログに残せるみたいです。
ただこれONにするととてつもなくログが長くなるので注意が必要です。
ってかこれSIにも欲しい。
ログでないんのん多いんですよね。。
次MAYA外のファイル名を変更できるコマンド
例
chdir "D:\images" for($i = 100 ; $i >= 1 ; $i--) { $old = "test.iff."+ $i; $new = "test.iff."+ ( $i + 30 ); sysFile -rename $new $old; }
なんでかファイル操作ですねww
こんな感じらしいです。
「 test.iff.1 から test.iff.100 までの画像ファイルを test.iff.31 から test.iff.130 に番号を付け換え」
ツール使いますよね普通w
SIというか、Javascript(Jscript)ではこんな感じですかね?
var ObjFSO = new ActiveXObject( "Scripting.FileSystemObject" ); var objFolder = ObjFSO.GetFolder( "D:\images" ); var em = new Enumerator( objFolder.Files ); var i = 31; for( em.moveFirst(); !em.atEnd(); em.moveNext() ) { var Name = em.item().Name; var Index = Name.lastIndexOf("."); var Extention = Name.substring(Index); var BaseName = ObjFSO.GetBaseName(em.item()); em.item().Name = BaseName + i + Extention; i = i + 1; } ObjFSO = null;
これなんとかいけるかも。。
ただ、これ名前と拡張の間に番号入れてるだけなんで、
一回実行した後もっかいすると、
Test31.js→Test3131.js
になってしまいますw
workspace -lfw
現在アクティブなプロジェクト名とフルパスを取得
これSIだとめちゃ使います。
Logmessage(ActiveProject2.Path); Logmessage(ActiveProject2.Name);
こう見るとMAYAは色々コマンド少ないっすね。。。
workspace -q -act
現在のプロジェクト名のみ取得
SIだと上とほぼ一緒です。
Logmessage(ActiveProject2.Name);
次、
workspace -q -rd
フルパスを取得
これも一緒。
Logmessage(ActiveProject2.Path);
次、
file -q -shortName -sceneName file -q -sceneName
現在のシーン名とシーンパスを取得
SIだとプロジェクトとほぼ同じです。
var Project = ActiveProject.Path; var Scene = ActiveProject.ActiveScene.name; Logmessage(Project+"\\scenes\\"+Scene);
すみません。
今これしか出て来ません。
なんかあったんはずなんですが。。
about -v
MAYAのバージョンを取得
これ使うのかな?
まぁSIだと
LogMessage( Application.Version() );
次、
about -os about -nt
OSを取得
windowsかどうかを取得(Bool)
SIにはリナックスとWINのビット確認しかできません。
まぁSIにMAC版無いし。
LogMessage(Application.Platform);
次、
getenv MAYA_LOCATION
MAYAがインストされているパスを取得
SIだとこんな感じ。
Logmessage(InstallationPath(siProjectPath));
とりあえずこれだけ。
まだあるんで、続きはまた。。
では…