カテゴリー別アーカイブ: Maya

【MEL】UVsetを指定してコピーする

UVのコピー元・コピー先を指定してUVをコピーするMEL。

0番目のUVで作業してたはずがいつのまにか意図しないUVsetで作業してることがよくあって、

いちいちぽちぽち直すのがめんどくさかったので作りました…

知らぬ間に身に覚えのないUV増えてたりするのほんとよくわからない…

 

BaseUVにコピー元のUV番号、TargetUVにコピー先のUV番号を入力する。

 

 

 

 

↑これだと、0番目のUVを1番目のUVにコピーします。

 

※使用は自己責任で…

 

////////GUI////////

global proc UVcopyGUI(){

    if(`window -exists UVcopyGUI`)
    deleteUI UVcopyGUI;

    window UVcopyGUI;
    deleteUI -window UVcopyGUI;
    windowPref -remove UVcopyGUI;

    string $window = `window -title "UVcopy" UVcopyGUI `;
    columnLayout -adjustableColumn true;

    //コピー元のUV番号を入力させる
    text -label "BaseUV" -align "center";
    textField -text "0" -w 60 TEXT_FIELD1;

    //コピー先のUV番号を入力させる
    text -label "TargetUV" -align "center";
    textField -text "1" -w 60 TEXT_FIELD2;

    separator -h 10 -w 300;

    //実行ボタン
    button -command "UVcopy()" -h 25 -label "COPY !!";

    separator -h 10 -w 300;
    setParent ..;

    showWindow $window;

}

UVcopyGUI();

////////UVcopy////////

global proc UVcopy(){

    SelectHierarchy;
    string $Sel[] = `ls -sl -type "mesh"`;

    for ($i = 0; $i < (`size $Sel`); $i++)

        {
    
            int $BaseUV = `textField -q -text TEXT_FIELD1`;
            int $TargetUV = `textField -q -text TEXT_FIELD2`;

            string $UV_List[] = `polyUVSet -q -allUVSets $Sel[$i]`; //UVをリスト化

            string $BaseUVSet = $UV_List[$BaseUV];

            polyUVSet -currentUVSet -uvSet "$BaseUVSet"; //BaseUVをCurrentUVにset

            string $TargetUVSet = $UV_List[$TargetUV];

            polyCopyUV -uvSetNameInput $BaseUVSet -uvSetName $TargetUVSet -ch 1 $Sel[$i]; //BaseUVをTargetUVにcopy

        }

};
Pocket
[`evernote` not found]

【MEL】DoubleSidedをオフにする

Unity・UE4に持っていって初めて「ウワッこのモデル片面しかないやん!!」って気づくことが多々あります。

こうした面倒をなるべく防ぐために、MayaのRenderStatsであらかじめ両面表示をオフにしています。

 

以下自分用める

////////////////////////////////////////////

global proc DoubleSideOff(){

SelectHierarchy;

string $obj[] = `ls -sl -type “mesh”`;

for ($objSel in $obj)

{

setAttr ($objSel+”.doubleSided”) 0 ;

}

}

DoubleSideOff();

 

////////////////////////////////////////////

 

MayaLT、コンポーネントエディタとリファレンスエディタくらいは標準で搭載してほしいですね、、

 

Pocket
[`evernote` not found]

【MEL】選択したオブジェクトに新規UVを追加し自動UV展開

 

選択したオブジェクトに新規にUVを追加し、AutoでUV展開するMEL!

ライトマップ用のUVをちゃちゃっと作ります。

オブジェクト一括選択してからMEL実行です。

使用は自己責任でお願いします…!!

////////////////////////////////////////////////////////////////////////

 

//選択したオブジェクトに”LightMapUV”というUVを追加してAutoMapping

global proc CreateLightMap(){

SelectHierarchy;

string $obj[] = `ls -sl -type “mesh”`;

$NewUVSetName = “lightMapUV”;

for ($i = 0; $i < (`size $obj`); $i++){

string $currentUVSets[] = `polyUVSet -q -currentUVSet`;

polyCopyUV -uvSetNameInput $currentUVSets[$i] -uvSetName $NewUVSetName -createNewMap 1 -ch 1 $obj[$i];

polyAutoProjection -lm 1 -pb 0 -ibd 1 -cm 0 -l 2 -sc 1 -o 1 -p 6 -ps 0.8 -ws 0 $obj[$i];

}

}

CreateLightMap();

 

////////////////////////////////////////////////////////////////////////

 

似たようなMELばっかり更新してますね…。

 

Pocket
[`evernote` not found]

【MEL】1番目のUVを2番目のUVにまとめてコピーする

 

1番目のUVを2番目のUVにまとめてコピーするMEL。

UVをコピーしたいオブジェクトを選択して実行。

※使用は自己責任でお願いいたします

 

////////////////////////////////////

global proc UVcopy(){

string $Sel[] = `ls -sl `;

for ($i = 0; $i < (`size $Sel`); $i++)

{

string $UV_List[] = `polyUVSet -q -allUVSets $Sel[$i]`; //UVをリスト化

string $PriUVSet = $UV_List[0];

polyUVSet -currentUVSet -uvSet “$PriUVSet”; //0番目のUVをCurrentUVにset

string $LastUVSet = $UV_List[1];

polyCopyUV -uvSetNameInput $PriUVSet -uvSetName $LastUVSet -ch 1 $Sel[$i]; //0番目のUVを1番目のUVにcopy

}

}

UVcopy();

////////////////////////////////////

 

 

MELは楽しいなあ(棒読み)

 

 

 

ちなみに、

ライトマップ用に新規のUVを作って、1番目のUVを複製したいときはこっち。

スタティックメッシュをアンリアルにインポートするときなどに。

拾い物です。

 

////////////////////////////////////

string $Sel[] = `ls -sl -fl -l`;

$NewUVSetName = “lightMapUV”;

for ($i = 0; $i < (`size $Sel`); $i++)

{

string $currentUVSets[] = `polyUVSet -q -currentUVSet`;

polyCopyUV -uvSetNameInput $currentUVSets[$i] -uvSetName $NewUVSetName -createNewMap 1 -ch 1 $Sel[$i];

}

////////////////////////////////////

Pocket
[`evernote` not found]

【Maya】Physical sun and skyでsssを有効にする

自分のメモがてらに更新。

Physical sun and skyでsssを有効にする方法。

1.sssマテリアル⇒アトリビュート欄⇒misss_fast_lmap_mayaを選択。

*もし項目がなければ、ハイパーグラフからシェーディングを選択すると出てくる。

2.Lightmap Sample⇒Include Indirect Lightingにチェック。

sss

 

 

 

before

before

after

after

 

 

Pocket
[`evernote` not found]