ラベル Maya の投稿を表示しています。 すべての投稿を表示
ラベル Maya の投稿を表示しています。 すべての投稿を表示

2026年1月12日月曜日

Yetiのライセンスの通し方

Mayaのグルーミングプラグイン、Yetiのライセンス通し回です。

ライセンスは個人用(Indie)になります。

数年ごとに仕事で買ったりするけど、毎回どうするんだっけってなるのでメモ。

2026/01/22 pgYetiMaya.modの記述が抜けていたので追記

仕様について

いくつかライセンスを通す方法はあるのですが、

今回紹介するやり方はバッチファイル(.bat)を作って、それで起動すればYetiの使えるMayaが立ち上がる方法です。

なぜこうするかと言うと、必要ない時にYetiを読み込むと、MayaシーンにYetiが入り込み、Yetiを読み込んでいないとMayaだとプラグインエラーを吐くからです。

それが結構うっとおしいので使うときだけ読み込むようにこの方式にしています。

あと、環境変数とか深いところに手を入れなくても使えるのも結構お気に入りポイントです。

やりかた

購入後必要なバージョンをダウンロードする。

https://peregrinelabs.com/pages/download

C:\Program Files直下にYetiフォルダを作って解凍したファイルを全部入れる。

メールでライセンスファイルが届くのでそれも入れる

こんな感じになると思います。

フォルダ名がYetiFiveTwoZeroなのはYetiのバージョンごとにフォルダを作成しているからです。管理しやすい名前で問題ありません。

④pgYetiMaya.modの内容を書き換える。

↓今回は以下の記述に書き換え

+ pgYetiMaya 5.2.0 C:\Program Files\YetiFiveTwoZero

⑤テキスト編集ソフトで.batを作成する

です。

テキストの中身は次で紹介します。

.batの中身



アーノルドの記述に関して、たぶんもっといい記述があると思うのですが、ローカル環境でアーノルドのレンダリングに問題が起きてないのでとりあえずこれでよしとしています。

次入れるときはちゃんと調べよう。。。

2025年3月7日金曜日

[Arnold][Maya]TX Managerのエラー回避方法

 MayaのTX Managerが最近のバージョンでエラーを吐き機能しないことがありました。

職場環境だとすごい人がどうにかしてくれるのですが、家でとても不便!ということで調べてみたら解決策をやっと見つけたのでメモがてら記事にします。

エラー内容

[mtoa.tx] 0: E:\lib\substanceMaterial\substanceSource\kimono\kimono_Base_Color.tif could not be updated

と出て、.txが作られない。

更に時々エラー吐いてそのままMayaが落ちることがある。

エラー回避方法


TxManagerのTx Optons欄のDefault Options(auto tx)

のチェックを外すとエラー無くtxファイルを作成できます。


解決方法

上記の方法だと根本解決には至りませんね。

どうやらMayaのColor ManagementのOCIOがデフォルトの

<MAYA_RESOURCES>/OCIO-configs/Maya2022-default/config.ocio

だとエラーを起こすようです。

↓この状態


デフォでも必要最低限使えるから業務で求められなければ変えなくていいやって思ってたけど、こちらもちゃんと設定しないといけないなと思いました。



2024年3月15日金曜日

[Arnold]SSS初級編

 CGで生き物の肌などを表現するときによく使われるSubsurface Scattering(以後SSSと記載)について書いていきます。

このアトリビュートをうまく扱えるとCGアセットの表現の幅が広がります。

今回のサンプルです。下の方にSSSを使ってないレンダー画像との比較も載せてます。

SSSとは?

光が半透明な物体の表面を透過し、内部で散乱した後に表面から出て行くメカニズムのこと。表面下散乱という訳語で呼ばれる事もある。by Wikipedia

手~のひらを太陽に~♪

上の画像の指と指の隙間など赤くなってるように見えると思います。これは肌の表面が赤いわけではないです。

肌の表面は半透明なので光が侵入し、内部で光が拡散して出てきた結果になります。

多くの場合内部組織の色に近い色が出ると思います。(人間の場合は体内組織の色から赤色)

これをCGで再現するのがSubsurface Scatteringです。

生き物の肌以外にも植物、大理石、ミルクなどの液体、光を通すプラスチックなどに使われます。

使用ソフトウェアとデータ

Maya 2022.5

Arnold MtoA5.3.3.1

Model Data digital emily 2

https://vgl.ict.usc.edu/Data/DigitalEmily2/

モデルはこちらからお借りしてます。

SSSの項目の紹介



Ai Standard SurfaceのSubsurface項目を見ていきましょう!


Weight

SSSをどれくらい効かせるかのパラメーターです。基本0か1かになると思います。

肌に汚れがついてる場合などマスクで数値を下げる等あると思いますが、数値入力で0.5みたいな小数値を入れると現実の質感とは違ったものになってしまうので非推奨です。

Subsurface Color

表面の色を決める項目です。カラーテクスチャとよく呼ばれる、BaseのBase Colorに刺すテクスチャと同じものを刺すことが多いです。

テクスチャの作り方も無機物と同じくAlbedoと呼ばれる、影要素の入っていないテクスチャの作り方で問題ないです。

Radius

SSSの光の散乱の強度を調整する項目です。

色を入れる項目ですが、RGBチャンネルの数値を見て動作しているのでテクスチャのカラースペースはsRGBではなくRawのほうがよいかと考えます。

しかし見た目で調整する項目ではあるので厳格にRawである必要があるわけではないとも思います。

Scale

上記のRadiusに掛け算してSSSの強さの調整をできます。

アセット制作の際には1、または0.1等仕様のシーンスケールに合わせて固定値にしてしまった方がいいと思っています。

質感調整の際にScaleとRadiusを両方いじると沼るので注意です。

Type

現状3種類準備されています。

デフォはRandomwalkです。だいたいの場合これでいいかなと思います。


上の画像は左からDiffusion,Randomwalk,Randomwalk.v2でのレンダリング比較です。

横で並べるとRandomwalkよりRandomwalk.v2のほうが明るく光が通っているようですが、レンダー時間は二倍くらいかかっているのがわかります。

Diffusionは淵の部分が少し色が暗く混ざって濁っているように見えてしまいますね。

Randomwalkの画像だと下の板は緑色が混ざって濁っていますが、こういうのはプロダクションだとRadius Colorを調整して濁らないようにします。

Anistoropy

この項目はRandomwalkのみで動作するようです。生き物の肌を再現する場合は使わない方が自然になると思います。

ここでは説明を省きます。

業務でもかなり特殊な場合(演出的に表現を調整したい場合)くらいしか使ったことはありません。

詳しく知りたい方はArnold User Guideを見てみてください。

SSSを使って人をレンダリングしてみる

SSSを人間モデルに使ってみるとどうなるでしょうか。

比較画像を準備してみました。

左がSSSをつけていないもの、Diffuseでレンダリングしています。

右がSSSを設定しているものです。

このスキャンモデルは少し肌の赤身が書かれているテクスチャではあるのですが、耳や鼻の影の部分を見るとSSSの方が柔らかく光が拡散してるように見えると思います。


以上がSSSの初級編になります。

SSSもかなり調整が難しいアトリビュートです。

うまく使いこなしてアセットをよりいいものにしていけるよう勉強していきましょう!


関連記事

[Arnold][チュートリアル]SSS「デジタルエミリーにスキンシェーダーを設定してレンダーしてみる編」

[Arnold]SSS Set Name



2024年3月1日金曜日

[Arnold]Displacement初級編

 Displacementは最近かなり手軽に使えるものになってきました。

CGでディテールのあるリアルなものを表現するには必須な項目とも言えるのではないかと思います。

このページではDisplacementとは何かのお話と、Maya,Arnoldでの使い方を紹介していきます。

使用ソフトウェアとデータ

Maya 2022.5

Arnold MtoA5.3.3.1

Model Data digital emily 2

https://vgl.ict.usc.edu/Data/DigitalEmily2/

モデルはこちらからお借りしてます。

Displacementとは

Displacementとはオブジェクトにテクスチャを張ることにより、ビューポート上のポリゴンよりもかなり高い解像度でディテルを再現することができるCGのシェーダー表現です。

Normal Map、Bump Mapはライトの影響をシェーディングに反映させるだけですが、Displacementは形状変化させます。

上の画像は左がNormal Map、右がDisplacement Mapをアサインしている球体です。

Displacementのほうがシルエットが崩れてるのがわかるかと思います。

Displacement Mapの種類

Displacementはグレースケール(一色)のものVector Dispalacementと呼ばれる3色のものの二種類があります。

この記事では一旦ベクターは置いておきます。別記事で紹介します。

グレースケールのDisplacementにも大まかに二種類あります。

それは中間値が0か0.5かというものです。

Displacementは中間値を基準にそれより明るければふくらみ、それより暗ければへこみます。

上の岩っぽいレンダー画像で使ったDisplacement画像がこちらです。

これは中間値(mid)0.5のものになります。

ディーテルを追加するときによく使われるBump Mapと同じ仕様です。

上の画像は中間値0のものです。

この画像はDigital Emilyのモデルに付属してるDisplacementマップです(ブログに張るように1kに落としてjpegですが見た目はこんな感じです。)

exrの32bit Floatという形式であればマイナス値や1以上の値も格納できますのでこういった見た目の画像になります。

マイナス値の確認は通常のビューワーではできないので少しわかりにくいですが、黒く見える部分にも情報が入っています。

Nukeで確認するとこんな感じです。

マイナス値が入っていることがわかります。

次の項で中間値の設定も含めた使い方を紹介します。

Maya,Arnoldでの使い方

それではMaya,Arnoldでの使い方を見ていきましょう。

今回は↑で紹介してるDigital Emilyさんを使わせていただきます。

Displacementを入れてないとこんな感じのレンダリングになります。

それでは設定しましょう。

①Displacement Shaderを作成

Tabから検索してもいいですし、上記の画像の場所から呼び出すこともできます。

②Shaderにつなぐ

ジオメトリにアサインしてるシェーダーのSG(Shading Engine)のDisplacement Shaderの差し込み口に刺します。

Displacement Shaderを作った際にできたSGは捨てて大丈夫です。


③Displacement MapのMidの確認

この画像は上記の通り中間値0のDisplacementです。

Displacementのシェーダーの中間値の設定は↓の画像の通りです。

Scalar Zero Valueが中間値になります。今回は0ですね。

デフォルトでチェックが入っているAuto Bumpはこのまま入れておいて大丈夫です。

Auto Bumpの細かい説明はまた別記事で紹介します。


④Displacement MapをDisplacement Shaderにつなぐ


Displacement MapをHyperShadeに読み込んでOut Color RをDisplacement ShaderのDisplacementに刺します。

Out Color Rをつなぐ方法のほかにAlpha is luminaceにチェックを入れてOut Alphaでつなぐ方法もあります。

こだわりが無いのならOut Color Rでつなぐ方が見た目もシンプルですし、エラー確認もしやすいのでオススメです。

Displacement MapのテクスチャのColor Spaceの設定はRawです。

Ignore Color Space File Rulesはチェックを入れておくと事故が減ります。


⑤Geometry(モデル)のSmooth設定


DisplacementをかけるGeometry(モデル)にも必要な設定をします。

Arnoldタブ→Subdivisionタブで設定していきます。

パラメーターは↓で紹介します。

---------------------------------------------

Type catclarkにします。

Iterations 今回は4にしています。数字を大きくするほどDisplacementの精度は上がりますが重くなります。コストとクオリティのバランスを見ながら設定します。

UV Smoothing 今回はpin_cornersにしました。スカルプトなど自分で作成したDisplacement Mapをアサインする際は作成方法に合わせた設定が必要です。

⑥レンダリングする

ここまで設定してレンダリングするとこうなります。

ディテールが入ってるのがわかりますね!

Displacementを使いこなすことでかなり表現の幅が広がるんじゃないかと思います。


関連記事

[Arnold][チュートリアル]SSS「デジタルエミリーにスキンシェーダーを設定してレンダーしてみる編」

[Arnold][Tips]複数のDisplacementMapをMayaで合成する方法

VectorDisplacementとは





2023年12月24日日曜日

[Arnold][Maya]アセットルックデブの際のオススメのレンダー設定

今回はMayaのArnoldでアセットのルックデブをする際のオススメレンダー設定を紹介します。

企業さんで作業するときは大抵プロジェクト用のテンプレートを準備いただいてますが、個人作業や自主制作だとそういうものがないので学生さんなどの参考になればと思います。

最後にスクリプトも準備してますのでそちら叩いてもらうと一発で設定できます。


使用ソフトウェアのバージョン

Maya 2022.5

Arnold MtoA5.3.3.1


Commonタブの設定


File name prefix

ぼくはよく<Scene>/<Scene>を入れています。これをいれることでレンダーした際にシーン名のサブフォルダーが作られてその中にシーン名の連番ファイルが作られます。

Merge AOVs

チェックを入れます。これを入れることでexr一枚に複数のAOVを入れることができます。

Nukeでコンプするならこれがいいと思います。

tif,jpgなどで出すときは必要ないです。

File/Animation ext

name.#.extにしています。

こうすることでシーン名.フレーム番号.拡張子になります。

例)untitled.1001.exr

Frame Range

Startを1001、Endを1010にしています。ここは必要に応じて変更します。

アセットルックデブの際はほとんと必要ないですが、1スタートだと前のフレームが必要なときマイナスになってしまうので101だったり1001だったりなことが多いです。

Image Size

WidthとHeightを1080にしています。

このサイズも自由です。キャラアセットの確認の際は16:9よりスクエアのほうが使うことが多いです。でもシルエット次第なところはあります。

1080にしてるのはNukeのNC(無料版)が1080まで対応してるからです。

Device aspect ratioは自動でかわらなければ1に変更します。


Arnold Rendererタブの設定

SamplingとAdaptiveSampling

Samplingは画像の通りです。Adaptiveを使うため低めに設定しています。

実際アセットによって必要な数値が違うので最初これくらいでスタートして調整していく形になります。

Ray Depth

DiffuseとSpecularの数値を上げています。

こちらの項目はまた詳しくは別記事に記載しますが、1だと低すぎると思います。

Auto-convert Textures to TX

オフにしています。

業務だとサーバーに投げるときにこれがオンだと不具合が生じます。

オートだと狙っていないタイミングで更新されてしまうこともあるので基本はTx Mangerを使って手動更新が無難です。

Tx更新の際は既存のキャッシュを削除してから作成する必要があります。

Txコンバートに関しては別記事で詳しく記載する予定です。


Systemタブの設定

Autodetect Threads

チェックを外し、-2入れています。

CPUのコア数のうち2コア分はレンダリングに使わないという設定になります。

CPU使用率100%にならないのでIPR回しながらシェーダーのパラメーター等いじっていても落ちにくく作業しやすいです。

マシンスペックによって-2のところは適した数値は違うと思います。探ってみてください。


AOVに関して

アセット毎に必要な要素を確認できるようにします。

これはまた複雑なので別記事で解説します。


今回紹介したレンダー設定のスクリプト

Script Editerのmelタブで以下コピーして打ち込むと設定完了です。

RendererをArnoldにしておく必要はあります。

[Arnold][チュートリアル]サブスタンスペインターで作成したテクスチャをアーノルドでレンダリングする。

この記事ではサブスタンスペインターで作成したテクスチャをArnoldでレンダリングして再現みようと思います。

これくらい結果が近くなります!


使用するソフトとバージョン

この記事でのソフトのバージョン、環境は以下です。

Maya 2022.5

Arnold MtoA 5.3.4.1

Substance Painter 8.2.0

ColorSpaceはACEScgでレンダリングします。


今回の題材

今回の題材はこちら!


上の画像はMayaのアーノルドでレンダリングしたものです。

金属に黄色い塗装がされて汚れているマテリアルです。

某黄色い車に変形するロボットを参考にテクスチャを作成しました。


サブスタンスのPBRShaderとArnoldのAi Standard Surfaceシェーダーは大きくは考え方が変わらないものになっています。

少ない項目をしっかり抑えることで簡単に再現できるようになっています。

それではやってみましょう。


Substance Painterのビューポート設定

Substance PainterでACESのルックにする設定はこちらです。

Tone MappingのFunctionをACESに変更します。

Substance PainterからTextureをエクスポート

まずSubstance PainterからTextureをエクスポートします。

テクスチャの書き出し設定はデフォルトのArnold UDIM Legacy(Ai Standard)で描き出します。


書き出すテクスチャはBaseColor,Roughness,Metalness,Normalの4種類です。


Mayaの設定

次にMayaの設定をしていきましょう!

まずはColorManagementの設定をします。

この項目はMayaのバージョン、Arnoldのバージョン、読み込んでるOCIOで表記が変わります。

Ai Standard Surfaceの設定

Ai Standard Surfaceを作成します。

テクスチャをインポートしてテクスチャノードを設定していきます。

UV Tiling Modeは今回はOffです。UDIMを使う場合UDIM(Mari)にします。
Color SpaceはBaseColorはsRGB、Roughness、Metalness、NormalはRawにします。

Ignore Color Space File Rulesにはチェックを入れておきます。


シェーダーのこの図のパラメーターにテクスチャを刺していきます。

シェーダーのパラメーターはいじりません。

BaseColorにBaseColorテクスチャ

MetalnessにMetalnessテクスチャ

Specular RoughnessにRoughnessテクスチャ

NomalCameraにAiNormalMapノードを刺してそのInputにNormalテクスチャ

を刺します。

レンダリングの設定

Ai Dome Lightを作成し、Substance PainterのHDRIを刺します。

SubstancePainterのHDRIの場所の確認はEnvironmentのタブで場所を確認したいHDRIの場所にカーソルを合わせ右クリック→Show in →Show in Explorerを押すとexplorerが開きます。


こちらからmayaに読み込みます。

このHDRIのColorspaceはscene-linear Rec 709/sRGBに設定します。

アーノルドのレンダリング設定は記事の最後に記載します。

レンダリングした結果がこちら


Substanceとの比較画像をもう一度

とくにシェーダーのパラメーターをいじらずにたったこれだけで再現可能です。

GI(Ray Depth)の設定が違ったりするので完全一致とはいきませんが細かい設定をせずにこれだけ再現できれば十分じゃないかと思います。

レンダーリングのサンプル設定はこちら↓

ライトのサンプルは2にしてます。


2023年12月22日金曜日

[Arnold]シェーダーパラメーター・Metalness初級編

ArnoldのAi Standard SurfaceのMetalnessのパラメーターに関してまとめてみました。

今回は初級編ということで挙動の説明になります。

シェーダーの挙動を把握して使いこなすことでよりよい質感のアセットになると思います。

Ai Standard SurfaceのMetalnessとは?


金属か非金属を定義するパラメーターです。

だと非金属

だと金属

になります。


Metalness 0


Metalness 1

どういう挙動をするの?

Metalnessを1にすると起きること

①BaseのColorがDiffuseではなくSpecularで出るようになります。書き出されるAOVもDiffuseがなくなりSpecularのみになります。



Metalness0の画像

DiffuseとSpecularが出ているのがわかります。



Metalness1の画像

Diffuseが無くなり、SpecularにシェーダーのBasecolorに入れていた赤色が反映されています。


②IORの入力がキャンセルされ金属の鏡面反射を再現するのに必要な数値に内部的に処理されていると考えられます。

IOR入力だと0または100のような大きな数値で同じような見た目になります。



Metalness1のレンダー画像とシェーダーパラメーター



IORを0、BaseのWreightを0にしてSpecularだけ出るようにしているレンダー画像とシェーダーパラメーター

上記二枚は微妙にレンダー結果は違いますがほとんど同じ状態の見た目と言えると思います。

とりあえずこの2点をおさえておきましょう。


Metalnessを扱う際の注意点

メタルネスの数値は基本的に0か1か、つまり金属か金属じゃないかを定義するために使います。

たとえば非金属に0.5とか小数点の数値を入れてスペキュラーの調整をするというのはPBR(物理的なレンダリング)的にはNGです。



画像はMetalnessの数値が左から0、0.5、1の画像です。

左はプラスチックのようで、右は金のようだが、真ん中のものはなんとも言えない質感です。

小数点を入力したときの問題点は、

① BaseのColorの色が多少Specular Colorに反映されてしまうこと

② 小数点の時にIORの数値が何として扱われてるのかが不明なこと

①は一部特殊な例をのぞいて多くの非金属のSpecular Colorは白(RGBすべて1の数値)が望ましいからです。

②はIORの数値は素材ごとに計測値があり、素材を再現するのに不明な数値を扱うのは物理的に正しくなく、環境によって望まない見え方をしてしまう可能性があるから問題になります。

小数点を入れるイレギュラーなものとして、サテン、ベルベットなどの光沢のある生地を簡易的に表現することに使われることがあります。こういう場合はプロジェクトの仕様的に問題なければ選択肢の一つに入れてもいいかもしれません。

↓このマテリアルはサテン生地ですが、Metalnessが少し入っています。

Cotton Pinpoint Shirt Satin

じゃあテクスチャを描くときに絶対0、1の二値化しないといけないのかというとそういうわけではない状況もあります。

うすいほこりが乗ってるような表現をテクスチャでする場合、その部分に0.3のほこりマテリアルが乗っかってMetalnessの数値が0.7になるかもしれません。

金属の上に何か乗っているというレイヤー的な考え方だと小数点を使ってマテリアルを混ぜることはありえると思います。

当然ほこりをモデリングしてモデルの上に配置するのが一番ではありますが、なかなかそうもいかないことが多いと思いますのでそういう時にこういう表現を使うこともあるかと思います。



↑金属のマテリアルの上に埃のマテリアルを薄く要所要所で乗せた例

まとめ

これにて初級編は終了です。

Metalnessは簡単に金属質感を再現できるとても便利なパラメーターです。

便利な故にいろいろ都合よく使われがちですが、しっかり仕様を把握して必要な表現に使えるといいと思います。

関連記事