月別アーカイブ: 2017年7月

【MEL】選択したオブジェクトのUVを一括で展開する

MELネタ。

ライトマップ用にざっくりとUV用意したかったので作りました。

Mayaのアウトライナでオブジェクトをまとめて選択して、実行。

数行のMELですが前の会社の先輩に教えてもらいながら作りました…感謝。

 


global proc AutoMapping()

{

SelectHierarchy;

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

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

{

polyAutoProjection $obj[$i];;

}

}

AutoMapping();


 

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]

【UE4】ライティングビルドを分散する方法

こんにちは。
久々の更新です。

今回は、UE4のライティングビルドを複数台のマシンに分散する方法です。

UE4のライティングビルドはかなり時間がかかり、やり直しがし辛いのが難点ですよね。

これを複数台のマシンに分散すれば、その分だけ計算が早くなります。

 

 

ライティングビルドを分散する方法

分散できるマシンの条件

1.マシン同士がネットワークでつながっている

2.UE4(SwarmAgent)がインストールされている

この2点だけです。

レンダーサーバーや帰宅後マシンでゴリゴリライティングしてクオリティアップを図りましょう!

 SwarmAgentについて

分散するための設定は、アンリアルではなく、ライティングビルドしたときに起動するSwarmAgentでおこないます。

ライティングビルドするとこっそりとタスクバーに起動していますので、ダブルクリックで開きます。

もしくは、インストールフォルダの”Engine\Binaries\DotNET”内にあるSwarmAgent.exeを起動します。

 

Settingsを開いて、下記の画像を参考に設定を変更します。

swarmAgentの設定項目

swarmAgentの設定項目

 SwarmAgentの設定

AgentGroupNameとAllowedRemoteAgentGroupを同じ名前にする。

例)AllowedRemoteAgentGroup を Defaultに変更。

 

AllowedRemoteAgentNamesに分散させたいマシン名前を入力する。

PC-01に投げたいときは、PC-01と入力する。

PC-01とPC-02に投げたいときは、PC-01;PC-02と入力する。

とにかく分散可能なマシン全部に投げたいときは、*(アスタリスク)を記入する。

 

CoordinatorRemotingHostに自分のマシン名(ホストとなるマシン)を入力する。

例)自分のマシン名がPC-01だった場合は、PC-01と入力する。

 

SwarmCoordinator

SwarmAgentの設定が完了したら、SwarmCoordinatorを起動します。

SwarmCoordinatorはビルドしても起動したりはしないので、

インストールフォルダの”Engine\Binaries\DotNET”内のSwarmCoordinator.exeを起動します。

 

すると、分散可能なマシンが一覧となって表示されていると思います。

 

SwarmCoordinatorで接続マシンを確認

SwarmCoordinatorで接続マシンを確認

 

 

確認ができたら、ホストのマシンでライティングビルドをスタートしてください。

SwarmAgentのSwarmStatusで、分散マシンのライティング進捗状況が確認できれば成功です。

 

分散が成功した場合

SwarmAgentで分散マシンの進捗を確認

 

分散すればするほど計算時間が短縮されるので、1台で1晩かかっていたのが1時間程度で終わります。

レンダーサーバーを所有しているプロダクションの皆さんは、全台にアンリアルをインストールしてもらいましょう…!

 

注意点

・SwarmAgentが複数起動しているとライティングビルドが失敗するので、注意してください。

・UE4のバージョンがバラバラでもビルドできるそうです。(4.12と4.10の頃で試しました)

・SkyLightが複数回バウンスするLightmass.exeを使っていても問題ありません。

 

 

 

 

 

Pocket
[`evernote` not found]