2020年2月

Tips

modoのGLキャプチャ コマンド

modoのGLキャプチャ コマンドについて書いてみます。

3Dビューポートを記録するGLプレビューは、アニメーション作成には欠かせない機能です。重いシーンではアニメーションをリアルタイムに再生することができないため、GLプレビューを使用して動きやタイミングを確認します。
modoにはビューポートを記録する「GLプレビュー」と「プレイブラスト」機能が搭載されてます。

 

GLプレビュー

アクティブな3Dビューポートを記録する機能です。記録サイズはビューポートの表示領域をそのまま記録します。「GLプレビュー」は動画形式でビューポートを記録し、記録した動画を自動的に再生します。プレビューはTempフォルダに保存されます。

C:\Users\ ユーザー名) \AppData\Local\Temp

「GL録画」「GL画像シーケンス」はディレクトリを指定してファイルを保存する機能です。

 

プレイブラスト

カメラを指定してビューポートを記録する機能です。記録サイズはRenderアイテムのフレームサイズが使用されます。
プレイブラストは記録専用の3Dビューポートを生成するため、ビューポートの「シェーディングスタイル」や「グリッドを表示」を設定するオプションが用意されてます。

これらのGL記録機能は gl.capture コマンドを使用してます。

 

gl.capture コマンド

gl.capture コマンドには12個の引数があるので紹介してみます。「GLプレビュー」や「プレイブラスト」では使用することのできないオプションが用意されてるので、必要に応じて使用すると便利です。

 

record

「GL録画」と同じです。

gl.capture record:true

 

seq

「GL画像シーケンス」と同じです。

gl.capture seq:true

 

filename

ファイルパスと保存するファイル名の指定です。指定がない場合はファイル保存ダイアログが開きます。

gl.capture filename:”C:\Temp\GLPreview.mov”

 

frameS / frameE

記録の開始と終了フレームです。

gl.capture frameS:10 frameE:25

 

autoplay

動画記録の自動再生です。指定がない場合はautoplay:trueとして動作します。

gl.capture autoplay:false

 

preview

「GLプレビュー」と同じです。

gl.capture preview:true

 

scale

記録サイズを25%か50%に縮小して保存します。指定がない場合はscale:fullとして動作します。

gl.capture scale:quart
gl.capture scale:half

 

savealpha

背景をアルファチャンネルとして保存します。指定がない場合はsavealpha:falseとして動作します。

gl.capture seq:true savealpha:true

 

cleanGL

ビューポートコントロールと情報表示(アイコンや情報など)」を表示します。指定がない場合は cleanGL:trueとして動作します。

gl.capture cleanGL:false

 

useMonitor

GL記録のプログレスバーを表示する。指定がない場合は useMonitor:trueとして動作します。

gl.capture useMonitor:false

 

counter

フレームカウントを表示する。指定がない場合は counter:trueとして動作します。

gl.capture counter:false

 

使用例

複数の引数を使用する時の例です。「シーケンス保存+フレーム範囲指定+スケール50%+アルファ保存」

gl.capture seq:true filename:”C:\Temp\GLPreview.tga” frameS:10 frameE:25 scale:half savealpha:true

 

コマンドの引数は並び順で処理されるので、以下のように引数の値だけ省力して記述することもできます。

gl.capture true true “C:\Temp\GLPreview.tga” 10 25 false false half true

 

私の場合AfterEffectsを使用してフレーム単位で確認することが多いのでシーケンスを使用してます。
gl.captureのバグなのかわかりませんが、0フレームの画像として「ビューポートコントロール」が表示された状態のカレントフレームを出力します。繰り返しタイミングを見るとき邪魔なので、手動で削除するためにシーケンスを使ってるという事情もあります。

 

指定したサイズで3Dビューポートを開く

おまけとして、プレイブラストのように指定したサイズでビューポートを開くコマンドを紹介します。

プレイブラストでプレビューを作成する時にアドバンスドビューポートで記録したい時があります。プレイブラストには「ソース設定をコピー」するオプションがあるのですが対応状況が半端なため、見た目が変わってしまうことがあります。
そんなときは記録したいサイズのビューポートを作成して、手動で表示オプションを調整するといいです。

cmds.batch {Temp} {layout.create Camera width:1280 height:720 persistent:false style:palette layout:”BlankCamera Palette”} {view3d.shadingStyle gnzgl} {view3d.presetload AVPGoodQ}{view3d.sameAsActive true}

 

GLの記録とは異なりますが、プレビュービューポートにもアニメーションをレンダリングする機能があります。
プログレッシブレンダラーであるため1フレームのレンダリング時間を指定できるので、画像は粗くてもGLより最終レンダリングに近い画像でアニメーションを確認できて便利でした。

残念なことに11.1でUI変更されたタイミングで「最大時間」が動かなくなってしまい、短時間でレンダリングができなくなってしまいました。便利な機能だったので修正して欲しいです。

 

参考

https://community.foundry.com/discuss/topic/81912

 

参考資料

MAVERICKRENDER GRADIENT LIGHTS PRESENTATION

Maverick Renderのグラデーションライトの紹介ビデオ。HDR Light Studioっぽい機能ですね。カーブUIのグラデーション表示が使いやすそう。
https://maverickrender.com/gradient-lights/

グラデーションライト

Maverick Studioは、実物に近い製品の視覚化に関するものです。そして、その名前自体が示唆するように、完璧で使いやすいスタジオ製品照明は当社のソフトウェアの主な目標です。
Maverickはライトオブジェクトを作成および再配置する強力なツールを最初から提供しています。しかし、これらのパネルとスポットライトによって実際に照射される照明がソフトボックス、傘などの形をしている場合に、最良の結果が得られます。実際の写真スタジオのように。

シェイプのライブラリを作成しても私たちにとって十分な気分ではありませんでした。そこで、想像を絶するスタジオライトの形状を作成できる、非常に柔軟で完全にカスタマイズ可能なプロシージャノードを作成することにしました。しばらくしてマップ自体に入ります。しかし、プレゼンテーションビデオは、この新しい機能がどれだけの力をもたらすかをわずか60秒で理解できるほど説明的でなければなりません。

 

CG News

スミソニアンオープンアクセスを開始

280万の2D/3DデータをCreative Commons Zeroとしてパブリックドメインにリリースしました。3Dデータの数は2,200以上で、スミソニアンのデジタル化プログラムオフィスによって作成されてるとのことです。
https://3d.si.edu/
https://www.si.edu/openaccess/updates/21st-century-diffusion

本日、スミソニアンオープンアクセスを開始し、280万の2Dおよび3D画像と、173年にわたるスタッフが作成したデータをCreative Commons Zeroとしてパブリックドメインにリリースしました。スミソニアンオープンアクセスの目標は、世界中の人々が国のコレクションをあらゆる目的で利用できるようにすることです。発見を行い、新しい知識を構築し、新しいアートや創造的なプロジェクトを開発して、世界を少し違った視点で見られるようにすることです。

Creative Commons Zero

https://creativecommons.jp/sciencecommons/aboutcc0/

CC0 とは、科学者や教育関係者、アーティスト、その他の著作権保護コンテンツの作者・所有者が、著作権による利益を放棄し、作品を完全にパブリック・ドメインに置くことを可能にするものです。CC0によって、他の人たちは、著作権による制限を受けないで、自由に、作品に機能を追加し、拡張し、再利用することができるようになります。

3Dモデルは解像度に応じてフル、中、低の3種類からダウンロードできるようです。高解像度のテクスチャも含まれていました。
https://3d.si.edu/object/3d/orbiter-space-shuttle-ov-103-discovery:d8c636ce-4ebc-11ea-b77f-2e728ce88125

参考資料

JUMANJI ‘making of’ video

ジュマンジ/ネクスト・レベルのメイキングビデオの記事が公開されてます。カッコイイ。
https://www.fxguide.com/quicktakes/jumanji-making-of-video-and-digital-release/

 

Sprout

Sony Picture Imageworks(SPI)のチームは、映画のために社内ツールSpoutを広範囲に使用しました。Sproutは樹木、植物、岩などの高解像度のアセットを大量に含むデジタル環境を手作業で調整するためのSPI独自のMayaベースのツールです。
Spoutが開発されたのは、既存のパイプラインに完全に統合されたアーティストに優しいインタラクティブツールの必要性に対応するためです。

Sproutの開発前は、SPIでの環境ドレッシングは主にHoudiniで、またはレンダリング時にプロシージャル的に行われていたため、FX TDの領域でした。
Sproutでは、アーティストはPhotoshopを使用したことがある人なら誰でも使い慣れたブラシパラダイムを使用して、任意のアセットをロードし、インスタンスを他のジオメトリにすばやくペイントできます。
洗練された軽量OpenGL表現はパフォーマンスを軽快に保ち、すべてのインスタンスはアーティストによって完全に編集可能なままであり、高度にアート指向の環境のドレッシングを可能にします。Sproutは、SPIでの環境ドレッシングをより多くのアーティストに利用可能にしました。

Sproutのインタラクティブな使用とキングスマンでの使用説明

 

ジュマンジ/ネクスト・レベルは4K Ultra HDR、Blu-ray、DVDを発売予定だそうです。

Tips

modoのスタティックメッシュ

modoのスタティックメッシュについて書いてみます。

 

スタティックメッシュとは

スタティックメッシュはメッシュアイテムの種類の1つです。通常のメッシュアイテムと異なりコンポーネント(ポイント/エッジ/ポリゴン)を編集することができない代わりに、CADデータや樹木のような高密度のメッシュデータを開いたときのメモリ使用量を低く抑えることができます。レンダリング可能ですが、デフォーマ等で変形することはできなくなります。

スタティックメッシュは、ZBrushから出力した高密度なメッシュをmodoでリトポする場合に最適です。

 

メモリ使用量を比較

ZBrushのサンプルファイルでおなじみ、サムライスピリッツのアースクェイクをmodoに読み込んでメモリの使用量を比較してみます。ポリゴン数は 6,303,616(三角ポリ)です。

 

modo起動直後

modoを起動した直後のメモリ使用量は「0.45GB」くらい。

 

メッシュ

通常のメッシュとして読み込んだ場合のメモリ使用量は「6.7GB」くらい。

 

スタティックメッシュ

スタティックメッシュとして読み込んだ場合のメモリ使用量は「1.58GB」くらいで、およそ1/4程度になります。

 

スタティックメッシュの使用方法

スタティックメッシュを使用するには、アイテムリスト等で右クリックメニューから「タイプの変更 / Static Mesh」を実行します。

または、objファイル読み込みオプションで「スタティックメッシュとして読み込み」をONにします。

メッシュとスタティックメッシュは相互に変換することができますが、通常のメッシュをスタティックメッシュに変換すると全て3角ポリゴンになるので注意が必要です。

 

リトポ用の高密度なメッシュをmodoに読み込むと、メモリが足りなくなったりビューポートが遅く感じることがあります。そんな時はスタティックメッシュを使用するのがおすすめです。

マニュアルにはレンダリングにもおすすめと書かれてますが、レンダリング時のみ高密度メッシュを使用したいという用途ではレンダープロキシが向いてます。
モデリングが完全にFixしてる場合はディファードメッシュという機能もあるので、用途に応じて使い分けるといいと思います。

 

参考

参考資料

The Virtual Production of The Mandalorian, Season One

The Mandalorian,Season Oneで使われているバーチャル制作技術の舞台裏の紹介ビデオが公開されています。以前Epic GamesがUnreal Engineを使用したバーチャルプロダクションツールを研究していましたが、それを実戦投入という感じでしょうか。

マンダロリアン・シーズン1の50%以上がこの画期的な新しい方法論を使って撮影されたため、ロケの必要性はまったくなくなりました。その代わり俳優は、没入型の高さ20インチ、270度の半円形LEDビデオウォールと天井で、直径75インチのパフォーマンススペースを使用し、実際のセットピースと画面上のデジタル拡張機能を組み合わせました。

ILMによって作成されたデジタル3D環境は、撮影中にリアルタイムで編集されたLEDウォール上でインタラクティブに再生され、NVIDIA GPUを搭載したシステムによって高解像度でレンダリングされたピクセル精度のトラッキングとパースペクティブ補正3D画像を可能にしました。

環境はカメラの視点から照らされてレンダリングされ、リアルタイムで視差を提供します。まるでカメラが俳優や実用的なセットで正確なインタラクティブライトを使用して物理的環境を実際にキャプチャして、撮影中のビジュアルエフェクト主導の作業のために具体的な創造的な選択を行い、リアルタイムのカメラ内合成を実現します。

インカメラ合成とエフェクトをオンセットで使用するために実用的なものにするために必要なテクノロジーとワークフローは、Golem Creations、Fuse、Lux Machina、Profile Studios、ARRIなどのパートナーの創意工夫とILMのStageCraft仮想制作映画制作プラットフォーム、そして最終的にはUnreal Engineプラットフォームのリアルタイムインタラクティビティを組み合わせたものです。

CG News

Autodeskがメンテナンスプランを終了

Autodeskがマルチユーザーアクセスとメンテナンスによるサブスクリプションの終了を発表しました。該当プランを利用中のユーザーは、ユーザー単位管理の新しいレンタルプランに移行する必要があります。
https://www.autodesk.co.jp/campaigns/transition-to-named-user?referrer=%2Fcampaigns%2Ftransition-to-named-user
https://www.autodesk.co.jp/campaigns/transition-to-named-user/terms-and-conditions

現在「ネットワーク ライセンスの保守プラン」または「マルチユーザー サブスクリプション」のユーザーには「移行プログラム」が用意されており、保守プラン1ライセンスを「Standard サブスクリプション」 2 ライセンスに移行できます。

ユーザーが「移行プログラム」を拒否した場合、保守プランの価格は 2020 年 5 月 7 日に 20% 値上がりし、2021 年 5 月 7 日以降は更新できなくなります。

参考資料

リアルタム“Deepfakes”

スイスの世界経済フォーラム(WEF)でリアルタイムのインタラクティブな顔置換を実演したさいのインタビュー記事が公開されています。
https://www.fxguide.com/fxfeatured/real-time-deepfakes/

Pinscreenの研究には、新しいディープラーニング、データ駆動型、幾何学処理アルゴリズムの開発が含まれる。ハオ・リー氏自身は、アバターの作成、顔のアニメーション、髪のデジタル化、動的な形の処理、悪意のある偽物の拡散を防ぐための最近の取り組みなどで有名になった。
Pinscreenはディープフェイクを検出してユーザーに誤解を知らせる研究グループのリーダーだ。FacebookとGoogleもこの分野で積極的に活動している。GoogleのプレジデントであるSundar Pichai氏は最近、「ディープフェイクの発見は、私たちの前に立ちはだかる最も重要な課題の1つである」と投稿しており、Googleは合成ビデオの検出を支援するため、オーディオとビデオの両方のデータセットをリリースしている。
Pinscreenの研究は94%という高い検出精度レベルに達しているが、これは知られている著名人(実際の映像の大量のサンプルを使って)だけのものだ。

デモに使用しているのはRGBのみの普通のLogitech Webcam。リアルタイムで難しい部分は次のこと。

  • 大量のデータを処理し、より深いネットワークでより良いモデルを訓練する能力
  • 高解像度フレームを生成する機能
  • タスクを並列化/スケジュールする機能

リアルタイムでない場合はより高い解像度とより自然な結果を生成できるそうです。頭の回転や照明を自然に処理できるとのこと。

参考資料

Modo Essentialsが無料化

William Vaughan氏のModo Essentialsが無料公開されました。https://learn.foundry.com/course/3128/view/modo-essentials

Modo EssentialsはModoのツールと機能の操作と操作を分かりやすく説明するために作成された初心者向けのガイド本です。Modoの基本や便利なホットキーなどが解説されてます。
コアコンテンツに加えて、26のビデオと23のModoシーンファイルで構成される470 MBのボーナスコンテンツも含まれています。

参考資料

AIを使用した高解像度化サービス「AnimeRefiner」

AIを使用した高解像度化サービス「AnimeRefiner」のページが公開されてます。
https://animerefiner.com/

サンプルを見ると線がシャープな状態でクオリティーが高そうです。意図的なのかわかりませんが、サンプルが汚く縮小されてるのが気になります。あにめたまご2018作品なので、等倍ピクセルを4k、8kにしたサンプルが見てみたい気がします。

続きを読む

参考資料

無料のTwinmotionマテリアルコレクションがUEで利用可能

無料のTwinmotionマテリアルコレクションがマーケットプレイスで利用可能になったようです。レンガ、コンクリート、生地 、グラス、草と土、木材 、プラスチックなどのマテリアルが497個公開されてます。
https://www.unrealengine.com/en-US/blog/free-twinmotion-materials-collection-now-available-for-unreal-engine-on-the-marketplace
https://www.unrealengine.com/marketplace/ja/product/twinmotion-materials

現在Marketplaceで入手可能なこれらの豊富で強力なマスターマテリアルは、最新のレイトレーシングの進歩をサポートし、ベストプラクティスを使用して約500のPBRマテリアルの使用方法を定義しています。この作業には次のものが含まれます。

  • レイトレーシングの特定の最適化
  • レリーフが必要なマテリアルの視差オクルージョンマッピングなどの高度なシェーディングテクニックは、レンガなどのサーフェスに便利です。
  • オブジェクトのUVを使用したり、3平面マッピングを使用したりする機能。適切なUV座標が指定されていない可能性があるオブジェクト上のテクスチャを自動的に位置合わせすることで、テクスチャの位置合わせを支援します。
  • 実世界のスケールを定義する機能

参考資料

Chaos GroupのProject Lavinaオープンベータ開始

Chaos Groupが2019年のシーグラフでデモしていたProject Lavinaのオープンベータが開始されました。使用するには利用可能なV-Ray Next Renderライセンス(V-Ray Next製品に付属)が必要です。
https://www.chaosgroup.com/lavina

このソフトウェアはNvidia RTXグラフィックスカード使用する、RTXの技術プレビューとして2018年のシーグラフで発表していました。

Vrayシーンをロードして、レンダリングするオブジェクト、カメラ、または環境ライティングを編集することができます。Project Lavinaは主にV-Rayシーンのルックを反復したり、肩越しのレビューで探索したりするための環境として意図されています。

ユーザーは非常に大きな.vrsceneファイルをLavinaに非常にすばやく読み込むことができます。ChaosGroupはV-Ray自体で開くのに数分かかるシーンが数秒で読み込めると話してます。

現在はマテリアルを編集したりライトを配置したりすることはできませんが、新しいアセットをマージして、インタラクティブに配置またはスケーリングし、LUTまたはHDRIマップを読み込んでシーンの照明を変更することができます。

静止画やウォークスルーをリアルタイムで、または高品質のオフラインレンダリングとして生成するだけでなく、LavinaでV-Rayレンダリングのカメラ位置を設定する環境として使用できます。

Tips

Mayaのバッチレンダリングをバッチコマンドで便利にする

Mayaのコマンド ライン レンダラを使用したバッチレンダリングのしかたを紹介したことがありますが、今回はその応用編として、バッチコマンドを使用してMayaのバッチレンダリングを少し使いやすくする方法について書いてみます。

 

MayaはメジャーバージョンやSPごとに細かな不具合が多く発生します。このためコマンド ライン レンダラを使って各Mayaバージョンでレンダリングを実行し、どのバージョンからバグったか調べたりします。
しかし、Mayaは基本的にデザイナーに優しい動作をしないため、Maya標準動作が不便に思うことが多々あります。そこでバッチコマンドを使用して、Mayaのバッチレンダリングを少し使いやすくする方法を紹介したいと思います。

以下は指定したファイルをレンダリングする、基本的なバッチファイルの記述です。これを元に使いやすくしていきます。

“C:\Program Files\Autodesk\Maya2018\bin\Render.exe” -r sw -s 1 -e 120 -of png -log “C:\BatchFolder\Output\Cut001.log” -rd “C:\BatchFolder\Output” “C:\BatchFolder\Cut_001.ma”

 

バッチ実行後にウィンドウを閉じないようにするコマンド

cmd /k

通常コマンドプロンプト ウィンドウは、バッチファイルのコマンドを実行すると自動的にウィンドウが閉じます。バッチファイルの最後にコマンドを追加すると、コマンドプロンプト ウィンドウが閉じなくなります。

基本的になくてもよいですが、バッチの実行結果を確認したい時に使用します。バッチファイルが意図した通り動作するまではコマンドを入れておくとよいです。

“C:\Program Files\Autodesk\Maya2018\bin\Render.exe” -r sw -s 1 -e 120 -of png -log “C:\BatchFolder\Output\Cut001.log” -rd “C:\BatchFolder\Output” “C:\BatchFolder\Cut_001.ma”
cmd /k

 

変数 コマンド

set

変数を設定するコマンドです。
変数とは「値」や「文字列」を出し入れできるアイテムボックスみたなもので、「値」や「文字列」に好きな名前をつけてバッチファイル内で使うことができるようになります。

例えばログファイルと画像ファイルを同じ名称にしたいとき、バッチファイル内を2箇所書き換えるのが面倒です。そこでバッチファイル内で変数を定義し「set FileName=Cut001」、置換したい箇所に変数の展開「%FileName%」を記述します。下の例では変数「FileName」を「Cut001」という文字列に置き換えられてバッチが実行されます。

set FileName=Cut001
“C:\Program Files\Autodesk\Maya2018\bin\Render.exe” -r sw -s 1 -e 120 -of png -log “C:\BatchFolder\Output\%FileName%.log” -rd “C:\BatchFolder\Output\%FileName%” “C:\BatchFolder\Cut_001.ma”

レンダリングに使用するシーンファイルなど、書き換える頻度が高いものを変数として使用すると便利です。

set MayaFile=BatTest.ma
set FileName=Cut001
“C:\Program Files\Autodesk\Maya2018\bin\Render.exe” -r sw -s 1 -e 120 -of png -log “C:\BatchFolder\Output\%FileName%.log” -rd “C:\BatchFolder\Output\%FileName%” “C:\BatchFolder\%MayaFile%

 

カレントディレクトリ コマンド

%~dp0

バッチファイルのあるディレクトリを指定するコマンドです。
バッチファイルとMayaファイルを同じディレクトリで管理して使用するとき、画像ファイルの出力先のパスを毎回書き換えるのは面倒です。相対パスで記述しておけばパスを書き換える必要がなくなって便利です。

例えば下の画像のようにバッチファイルとMayaファイルを同じディレクトリに入れて使用するとします。

絶対パスでは「C:\BatchFolder\Cut_001.ma」のような記述になりますが、相対パスでは「%~dp0\Cut_001.ma」で済みます。

set MayaFile=Cut_001.ma
set FileName=Cut001
“C:\Program Files\Autodesk\Maya2018\bin\Render.exe” -r sw -s 1 -e 120 -of png -log “%~dp0\%FileName%\%FileName%.log” -rd “%~dp0\%FileName%” “%~dp0\%MayaFile%”

 

フォルダ作成 コマンド

mkdir

フォルダを作成するコマンドです。
Mayaは画像の出力先のディレクトリがなかった場合、自動的にフォルダを作成してくれます。しかしログ作成「-log」はフォルダを作成してくれません。このためログファイルを出力する場合はあらかじめフォルダを作成する必要があります。

下の例では変数を使用してフォルダを作成してます。

set MayaFile=BatTest.ma
set FileName=Cut001
mkdir %FileName%
“C:\Program Files\Autodesk\Maya2018\bin\Render.exe” -r sw -s 1 -e 120 -of png -log “%~dp0\%FileName%\%FileName%.log” -rd “%~dp0\%FileName%” “%~dp0\%MayaFile%”

 

ファイル削除コマンド

del

ファイルを削除するコマンドです。
ログ作成は「-log」は、レンダリングを繰り返すたびファイルにログを追加し続けます。私の場合は最新のログしか必要ないので、レンダリング前にログファイルを削除します。

set MayaFile=BatTest.ma
set FileName=Cut001
mkdir %FileName%
del %FileName%\%FileName%.log
“C:\Program Files\Autodesk\Maya2018\bin\Render.exe” -r sw -s 1 -e 120 -of png -log “%~dp0\%FileName%\%FileName%.log” -rd “%~dp0\%FileName%” “%~dp0\%MayaFile%”

 

バッチファイルを参照する

call

バッチファイルから別のバッチファイルを呼び出すコマンドです。
例えばMayaのバージョンを変数で管理したいとき以下のように記述します。Mayaのバージョンが多くなると見にくくなると思います。

set Maya2016=C:\Program Files\Autodesk\Maya2016.5\bin
set Maya2017=C:\Program Files\Autodesk\Maya2017\bin
set Maya2018=C:\Program Files\Autodesk\Maya2018.5\bin
set Maya2019=C:\Program Files\Autodesk\Maya2019\bin
set Maya2020=C:\Program Files\Autodesk\Maya2020\bin

set MayaVersion=2019
set MayaFile=BatTest.ma
set FileName=Cut001

call set MayaVersionPath=%%Maya%MayaVersion%%%
mkdir %FileName%
del %FileName%\%FileName%.log
%MayaVersionPath%\Render.exe”-r sw -s 1 -e 120 -of png -log “%~dp0\%FileName%\%FileName%.log” -rd “%~dp0\%FileName%” “%~dp0\%MayaFile%”

Mayaのパスだけ別のバッチファイル「MayaPath.bat」に記述し、このバッチファイルを他のバッチファイルから参照することができます。

set Maya2016=C:\Program Files\Autodesk\Maya2016.5\bin
set Maya2017=C:\Program Files\Autodesk\Maya2017\bin
set Maya2018=C:\Program Files\Autodesk\Maya2018.5\bin
set Maya2019=C:\Program Files\Autodesk\Maya2019\bin
set Maya2020=C:\Program Files\Autodesk\Maya2020\bin

「call」を使用して他のバッチファイルを指定します。

call C:\BatchFolder\MayaPath.bat

set MayaVersion=2019
set MayaFile=BatTest.ma
set FileName=Cut001

call set MayaVersionPath=%%Maya%MayaVersion%%%
mkdir %FileName%
del %FileName%\%FileName%.log
“%MayaVersionPath%\Render.exe”-r sw -s 1 -e 120 -of png -log “%~dp0\%FileName%\%FileName%.log” -rd “%~dp0\%FileName%” “%~dp0\%MayaFile%”

Mayaのパスを分けるのはバッチファイルが長くなるのを避けることができることの他に、将来的にMayaのバージョンが増えた場合に、ファイルの書き換えが1ファイルの編集だけで済むというメリットもあります。考え方としては3Dソフトのリファレンス機能と同じです。

バッチファイル完成!これでバッチファイルの使い勝手がよくなりました。バッチコマンドを使いこなせば、フォルダ内の全てのMayaファイルを全てレンダリングするようなこともできます。

 

個人的にはバッチファイルやCUIは苦手なので使いたくないのですが、Mayaはスクリプトやらコマンドプロンプトやら色々知ってること前提のソフトなので、GUIベースのソフトで育った人には辛い。