2012年10月26日金曜日

[MEL]文字列関連のメモ

何かとよく使う、文字列に関係するMELのメモをいくつか。


【現在のシーンのフルパスを取得する】
 file -q -sceneName;

file -q -sceneName;
// Result: C:/Users/mmb_jp/Documents/maya/projects/sample/sample.mb //



【現在のシーンファイル名を取得する】
 file -q -shortName -sceneName;

file -q -shortName -sceneName;
// Result: sample.mb //



【テクスチャのパスを取得する】
 getAttr ファイルノード名.fileTextureName;

getAttr file1.fileTextureName;
// Result: C:/Users/mmb_jp/Documents/maya/projects/sample/sample.tga // 



【フルパスからファイル名のみ(拡張子なし)を取り出す】
 basenameEx("フルパス");

basenameEx("C:/Users/mmb_jp/Documents/maya/projects/sample/sample.mb");
// Result: sample //



【文字の置換】
 substituteAllString("文字列", "検索", "置換後");

substituteAllString("Maya_Memo_Blog", "Maya", "Softimage");
// Result: Softimage_Memo_Blog //


置換の応用、文字列の一部を削除する。

substituteAllString("Maya_Memo_Blog", "Memo_", "");
// Result: Maya_Blog //



【文字列の分割】
 tokenize "対象文字列" "分割文字" $string[];

分割文字は1文字のみ。
複数文字の場合は分割文字が2種という扱いになる。
戻り値は分割数。文字列はstringの配列で受け取る。

string $result[];
clear $result;
tokenize "Maya_Memo_Blog" "_" $result;
print $result;

Maya
Memo
Blog



【文字列の中にダブルクォーテーションを含める】
 \" ("の前に\)

 $str="Maya\"Memo\"Blog";
// Result: Maya"Memo"Blog //