MayaとDeadlineを使用したレンダリングの手順
※MayaとDeadlineはインストール済みの前提で記しています。
はじめに
Deadlineってなーに?
すっごく時間のかかる計算を、ネットワークに接続している複数のPCを使用して、効率よく行ってくれるつよつよソフトだよ!
目次
①mayaのセットアップ
(mayaにDeadlineスクリプトを追加する)
●まずDeadlineのLunch Monitorを起動
タスクバー右下のインジケータの中にあるdeadlineアイコンを右クリックし、メニューからLunch Monitorを起動
●スクリプトの場所
左上の〇部分をクリックするとなんかウインドウが出てくる
●そこに記載されたRepository Pathをコピー
(Deadlineのファイル内に格納された、スクリプトの場所を教えてくれてる)
●エクスプローラーを開き、アドレスにペーストしてパスを開く
・submission > Maya > client の中にファイルが2つある。
これがmaya用のdeadlineスクリプトなので、2つともコピー
・ドキュメント > maya > scripts にペースト
(mayaは任意のバージョン)
・mayaをすでに起動していれば再起動し、
シェルフのタブの並びにDeadlineタブが追加されているのを確認する。
これでmayaからDeadlineにレンダリングを依頼する(ジョブを追加する)準備は整ったぜ・ω・
②mayaからジョブを追加する
レンダリングを設定する前に最大の注意点があり、
●そもそもmayaプロジェクトファイルをネットワーク上に置かないといけない。
deadlineはネットワーク上のデータを、そこに接続している各PCがレンダリングするので、ローカルのフォルダにプロジェクトセットしても動作しない。
なのでレンダリングを行う前に、deadlineでレンダリングに使用するすべてのPCから接続可能なネットワーク上にProjectFileを置く作業が必要。
ジョブを追加する際のProject setは、ネットワーク上に置いたファイルに設定しよう。
・上記のProject setを行ったうえでmayaでレンダリングシーンを開き、
レンダリング設定が完了したら、mayaのDeadlineタブからdeadline windowを開く。
Submit Maya job to Deadline みたいなやつ。
(ここでシェルフ上にDeadlineタブがなかったら、①に記載したスクリプトの追加を再度行おう。)
windowを開くと、ワァ~!入力項目がいっぱ~い!オロロロ…
土壇場でレンダリング失敗したくないなら、いっこずつチェックしようね。ワクワクさんとの約束だよ。
●失敗しないために確実な設定が必要な3項目を記載します。
これをしくじるとやばいって、全身が悲鳴を上げているのがわかるぜ…(遊戯王DM)
①job Name
mayaのレンダリング設定ウィンドウで入力した出力ファイル名と同じにする。
違うと失敗するのでコピペが安定。
②Project Path
現在set projectしているprojectフォルダを選択する。
(前述のとおり、ネットワーク上になければならない)
③Output Path
レンダリング完了したファイルを出力するフォルダを選択する。
(ネットワーク上になければならない)
④Submit Job
これを押すとdeadlineのジョブリストに追加される。
Succes!とか成功っぽいウインドウが出たら、mayaは閉じてOK。
追加されると、Deadlineメニューから最初に起動したLunch Monitorから確認できる。
=ネットワーク上のPCでlunch slaveを立ち上げた時点でレンダリングが始まる。
Deadlineの便利な点として、
ジョブは一度追加が成功した時点でmayaを閉じていいので、どんどん次のレンダリングシーンを開いてレンダリングの順番待ちに追加することができる。
追加してしまえば、slaveを起動しているマシンでのみどんどん次のジョブをレンダリングしてくれるから、寝ててもタピオカ飲んでてもいいよ。
③レンダリングを回すマシンのセット
Deadlineをインストール済みの、ネットワークで接続されたPCで、deadlineリストに追加したレンダリングを回すことができるよ~
①lunch slaveを立ち上げる
タスクバー右下のインジケータの中にあるdeadlineアイコンを右クリックし、メニューからlunch slaveを起動。
おわり。
slaveは起動しているとマシンの能力の10%程度を計算に使うらしい(人に聞いただけなので不確か)ので、2Dとか軽めの作業なら並行可能(PCスペックによる)
台数が多いとやっぱり爆速で進むよ(PCスペックによる)
slaveが稼働しているマシンとレンダリングの進行状況は、
Lunch Monitorから確認できる。
④ジョブを追加する際の注意点・補足
・lunch Monitorの内容はネットワーク上で動いてるジョブとPCをリスト化して表示しているだけなので、ジョブの追加&閲覧はどこのマシンからしてもよい。すごい。
・レンダリング進行してるっぽく見えてcompleted!て出てても上手くレンダリングされない(真っ黒になる)ケースもあったので、レンダリングし終わったデータはきちんと確認しようね(原因不明)こわ・・・
※業務で使用しているわけではなく、あくまで一個人の情報なので何か記載ミスがありましたらご教示ください。
【TURTLE】AOを頂点カラーにベイクする
ドラえも~ん、 maya2017以降でアンビエントオクルージョンを頂点カラーにベイクしたいよ~
そんなときは~~~
TURTLE~~
もくじ
①ベイクレイヤーを作成
Lighting/shadingメニューから、Bake Layer Editor(TURTLE)を起動。
新規のベイクレイヤーを作成するか、デフォルトベイクレイヤ―を使用してもおk
ベイクしたいオブジェクトを選択して、TurgetSurfacesにAdd。
outliner上の任意のTurtleBakeLayerからAttlibute設定できるぞ。
②ベイクレイヤーの設定
●Customにチェックを入れる
●Custom Shaderにilr Occ Samplerをアサイン
これをアサインするとilr Occ Samplerのアトリビュートに飛んじゃうけど、
まだベイクレイヤーの設定が済んでいないので、TurtleBakeLayerのattributeに戻る。
●RenderType [Vertecsys]
頂点情報にベイクする設定
●VB Alpha Blend→ [None]
頂点カラーをベイクするときに頂点アルファを上書きしたくないときはNone
アルファも上書きしちゃっていい場合はReplice(うろ覚え)
●VB colorSet :colorSet1
ベイクするカラーセットを指定
③レンダリング設定
レンダラー: TURTLE
RenderType: Baking
以上を設定してレンダリングボタンポチーすればベイクされるよ~
ほかにも便利な設定あったらおしえてくだしゃい・・・
参考サイト
shaderFXとシェーダの基本的な部分メモ
shaderFXとシェーダの基本的な部分メモ
高校数学は早々に諦めた&プログラミング経験赤ちゃんなので、できるだけチンプンカンプンにならないよう分かりやすい表記にしております。
間違いがあればご指摘いただけますとありがたいです。
作業する前に設定しとくと便利なオプション[shaderFX]
〇Settings > Show Property Panel
オンにするとShaderFX上で数値いじれる。
(HyperShadeやAttributeをいったりきたりするのが面倒)
〇Settings > Toggle Advanced Mode
詳細なシェーダ設定を編集できるモード。
関数(おぼえるといいことがある)
●[IfElseBasicOp]でマップを切り替える
[boolValue]を[condition]につなぐことでtrueとfalseを切り替えることができる。
boolは[expose as Material Attribute]をonにするとパラメータ化する。
メリット:どのUVsetアサインするか、ノードをつなぎ変えなくても、アトリビュート上のチェックで制御できるようになる。
複数のパターンを用意しなければならない時にも使えそう。(マスクの位置を変えてランダム感を出す)
参考記事
Unity ShaderLab ノート
https://qiita.com/nmxi/items/bfd10a3b3f519878e74e
GLSLについてのメモ
https://qiita.com/edo_m18/items/71f6064f3355be7e4f45
グラフの外観をカスタマイズする
とりあえずやってみました ShaderFX (上編)