どうも!Maya太郎です!
Unityの関連の記事はヒット数が少ないので
あまり掘り下げませんが…
今回も「かるーく」他の環境との連携のお話しを…
とある事情で
久しぶりにUnity(ゲームエンジン)を起動させました。
前回の使用から9ヶ月ぶりぐらいでしょうか…
もちろん当時からバージョンも上がっていて、バージョン表記が5.X→2017.Xに
変わっていました。
使い方もかなり忘れていたのですが、基本的な部分は覚えていたので
基本操作は、なんとなく使えていますが…
もともと以前(9ヶ月前)と時からよく理解できておらず
適当に触った程度なのですが
新バージョンでもやっぱりむずかしというか
どこが変わったのかよく分からないというか…
と、ここから本題。
当時、適当に設定していたUNITYのマテリアル設定ですが
あれからArnoldをいろいろ使っていると
今回、設定項目にすんなり理解できる部分があり
ちょっと驚いたことがあるので記事にします。
繰り返しますが、UNITYは相変わらず触ってみた程度のレベルのお話しですよ…
ArnoldのシェーダーはExportに不適
ちょっと遠回りになりますが別件の実験を…
以前、ハロウィンネタ用に作成したこのシーンを
UnityにExportしてみました。
FBX経由でやりとりしたのですが…
FBXの出力時には、ArnoldのStandardSurfaceシェーダーの
情報はほとんど保持されないようです(カラーテクスチャーすらも)
ですので
Unityで読み込むとテクスチャーが何一つ反映されていないので
このように大雪原になってしまうのでした…
これはおためしでやってみただけなので
シーンをセットアップする気にはならないので、このまま没にします。
(当初はUnityでハロウィン的なシーンを再現したかったのですが、時間がかかるのであきらめました、暇な時に再開しますw)
Unityに持っていく場合はランバートやフォンなどの
Mayaの標準的なシェーダーを使って作っておくべきですね。
この場合、カラーテクスチャーなどは持っていけそうです。
自作で変換ツールなどをmelなどで作れる方は
arnoldのシェーダー設定でも、
ある程度の属性を保持したままUnityに書き出せるのかもしれませんね。
Unityのマテリアル設定
Unityを使っていなかった9ヶ月の間
Arnoldはバージョンが5になり
シェーダーが現在主流のPBR(フィジカルベースドレンダリング)に
よく見られるワークフローに近くなったような気がします。
ですのでUnityの現行のスタンダードシェーダと
ある程度基本設定の共通部分のようなものが見受けられます。
初めてUnityのマテリアル設定をしようとしたとき
設定項目の少なさに唖然としたものですが…
Opaqueがあった!(笑)
Arnoldでは透明物として扱う場合
オブジェクトのアトリビュートの「Opaque」(不透明度)のチェックを外さなければいけないという
よく忘れがちになりますが重要な「通過儀礼」があります。
ちなみにOpaqueは「オペーク」とカタカナ読みするのがオススメですが
現場レベルでは「おぱきゅー」と読んでもかまわないと思います。
Arnold使いの中では十分通じると思いますよw
Unityのマテリアル
この最初にいきなりOpaqueの項目があります。
Arnoldに慣れた方なら「にやり」でしょうw
Unityも初期状態は不透明設定からスタートするようです。
この設定は以下の様に切り替えできるようなのですが
まだこれらを使い分ける作業はしていないのでスルーします。
Arnold5からStandardSurfaceに加わった
Metalicの項目((ArnoldではMetalness)もあります。
なんだか設定項目が物足りないと思っていると
Standardシェーダーにも
何種類かあるようで
ラフネスやスペキュラーなど
Arnoldでもおなじみの設定項目でセットアップできるように
切り替えが出来るようです。
この設定ではラフネスが使えます。
というか、ラフネスがこのモードでしか使えないというのは
他のモードは実質ラフネス系の調整ができないという事?
(本来これがデフォルト設定になるべきでは??)
スペキュラーでの設定も可能です。
やっぱり調整の幅は少ない感じがします。
やっぱりラフネスがないのは
まとめ
Unityを初めて触っても
Arnoldの経験がある程度あれば
用語や挙動の部分で
なんとなく勘で分かる部分があるということです。
個人的には
シェーダーの挙動に関して
あまり意識していなかった9カ月前よりも
格段に理解度が深まったような気がしました。
気がしただけですが…
PBRのワークフローは
レンダラーによって実装度に多少の違いはあるものの
考え方としては共通していることが多いので
移行や移植時など
ある程度役立つのでは無いかと思います。
ゲームエンジンの場合は
制約が多いので完全再現は難しいでしょうが…
(特に反射や屈折はゲームエンジンでは擬似表現になるので考え方が全く異なります)
ということで、
今回もMaya太郎の個人的な考察でした。
では!