3dsMax2021からArnoldレンダラーがデフォルトのレンダラーに変更になりました。
そこでArnold Renderでできることを紹介します。
はじめに
Arnold でできること
キックアス
Arnoldレンダラーでは、kickと呼ばれるコマンドからAss(Arnold Scene Source)ファイルをレンダリングすることが可能になります。
ちなみにassの日本語訳は...
「ロバ、ばか、がんこな人」
assをキックしてレンダリングするなんて、
言葉のセンスが面白いですよね。
オペレータ
Arnold シーンの一部をオーバーライドし、プロシージャル(ASS または Alembic)内のパラメータ(シェーダなど)の変更することができるようになります。
プロシージャル
プロシージャルにファイルを読み込むことで、レンダリングシーンの構築を自動で差し替えたり上書きできるようになります。
USDを使用して背景を非破壊で共同作業したり、MateriarlXを使用してマテリアル情報をテキストで管理したりできます。
この記事はテクニカル好きなアーティスト向けです。Pixar社のパイプラインの考え方を学ぶことを目的としています。 USD とは、Universal Scene Description (ユニバーサル シーン ディス[…]
この記事は、ArnoldレンダラーがサポートしているMaterialXについての内容になります。 MaterialX とは? MaterialXは、2012年にルーカスフィルムで創設され、 『スターウ[…]
Arnold SDK
SDK インストール
SDKとは、特定のソフトウェアを開発する際に必要なツールのセット(APIのライブラリ、サンプルプログラム、技術文書などが含まれる)のことです。 software development kitの略称であり、日本語ではソフトウェア開発キットと訳します。
- インストール:Arnold SDK
- 環境変数のpathに追加
<インストールルート>\Arnold-6.0.3.0-windows\bin
arnold sdk をインストール後 kick commandからより詳細な情報を取得可能になります。
kick command
どんなノードがあるのか?
kick -nodes
ジオメトリには何ができるのか?
kick -info polymesh
common
Type | Name | Default |
NODE[] | shader | (empty) |
BOOL | matte | false |
BOOL | opaque | true |
BOOL | receive_shadows | true |
BOOL | self_shadows | true |
BYTE | visibility | 255 |
polymesh
Type | Name | Default |
BYTE | visibility | 255 |
BYTE | sidedness | 255 |
BOOL | receive_shadows | true |
BOOL | self_shadows | true |
BOOL | invert_normals | false |
FLOAT | ray_bias | 0.0 |
MATRIX[] | matrix | (empty) |
ENUM | transform_type | rotate_about_center |
NODE[] | shader | (empty) |
BOOL | opaque | true |
BOOL | matte | false |
BOOL | use_light_group | false |
NODE[] | light_group | (empty) |
BOOL | use_shadow_group | false |
NODE[] | shadow_group | (empty) |
STRING[] | trace_sets | (empty) |
FLOAT | motion_start | 0 |
FLOAT | motion_end | 1 |
UINT | id | 0 |
UINT[] | nsides | (empty) |
UINT[] | polygon_holes | (empty) |
UINT[] | vidxs | (empty) |
UINT[] | nidxs | (empty) |
UINT[] | uvidxs | (empty) |
UINT[] | crease_idxs | (empty) |
FLOAT[] | crease_sharpness | (empty) |
BYTE[] | shidxs | (empty) |
VECTOR[] | vlist | (empty) |
VECTOR[] | nlist | (empty) |
VECTOR2[] | uvlist | (empty) |
BOOL | smoothing | false |
ENUM | subdiv_type | none |
BYTE | subdiv_iterations | 1 |
FLOAT | subdiv_adaptive_error | 0 |
ENUM | subdiv_adaptive_metric | auto |
ENUM | subdiv_adaptive_space | raster |
BOOL | subdiv_frustum_ignore | false |
ENUM | subdiv_uv_smoothing | pin_corners |
BOOL | subdiv_smooth_derivs | false |
NODE[] | disp_map | (empty) |
FLOAT | disp_padding | 0 |
FLOAT | disp_height | 1 |
FLOAT | disp_zero_value | 0 |
BOOL | disp_autobump | false |
BYTE | autobump_visibility | 1 |
FLOAT | step_size | 0 |
FLOAT | volume_padding | 0 |
STRING | name |
オペレータ
リンク:https://docs.arnoldrenderer.com/pages/viewpage.action?pageId=113247041arnold for 3dsmax user guide
Autodeskのシニアソフトウェア開発マネージャーであるFred ServantとThe MillのVFXスーパーバイザーであるSid Harrington-Odedraが語る、Arnoldへのオペレーターによる、オーバーライド、シェーダー割り当て、および MaterialXによるlookdev方法の動画。
サンプル
表示/非表示
visibility = 0 visibility = false
ライトの含むに追加
use_light_group = on light_group[0] = "ArnoldLight001"
subdivのオーバーライド
subdiv_type = 'catclark' subdiv_iterations = 1
差し替え
- *.(@node==’alembic’) selects all Alembic procedural nodes
- Match matches any file name that ends with “_proxy.abc”
- Replace replaces “_proxy.abc” with “.abc”
シーン内にあるalembicファイル名の最後が“_proxy.abc”だったら“.abc”に置き換えることができます。
selection
Selection Expressions
- or (union)
- and (intersection)
- not (negation)
- and not (exclusion)
- () for nested scoping
(例) Teapot001 or Teapot002
Collection
"#big_collection"
Matching Node Entries
*.(@node == 'polymesh')
*.(@type == 'shape')
*.(@derived == 'procedural')
最後に
プロシージャルなデータでレンダリングシーンを構築するようなワークフローを構築するのは大変ですが、モデルの差し替えや質感の差し替えなどがスムーズに行えるようになるので、大規模なプロジェクトでは協力なツールになりますね!