オブジェクトの「外観」を定義する場合の最も基本的な手順は、マテリアルとサーフェイス シェーダをオブジェクトに割り当てることです。マテリアルを 1 つまたは複数のオブジェクトに割り当てるには、いくつかの方法があります。次の操作を実行できます。
新しいマテリアルを作成し、選択したオブジェクトに割り当てる。「新しいマテリアルを作成してオブジェクトに割り当てる」を参照してください。
新しいマテリアルを作成するが、割り当てない。「新しいマテリアルを割り当てずに作成する」を参照してください。
既存のマテリアルを選択したオブジェクトに割り当てる。「オブジェクトに既存のマテリアルを割り当てる」を参照してください。
新しいマテリアルまたは既存のマテリアルを階層に割り当てる。「階層へのマテリアルの割り当て」を参照してください。
新しいマテリアルまたは既存のマテリアルをポリゴン クラスタまたは選択したポリゴンに割り当てる。「選択したポリゴンおよびポリゴン クラスタにマテリアルを割り当てる」を参照してください。
マテリアルを複製するか、あるオブジェクトのマテリアルを別のオブジェクトにコピーする。「マテリアルを複製する」を参照してください。
サーフェイス シェーダがアタッチされた新しいマテリアルを作成し、即座にオブジェクトに割り当てることができます。この方法でマテリアルを作成すると、割り当て先のオブジェクトの既存のマテリアルが、作成したマテリアルに置き換えられます(オブジェクトの既存のマテリアルはオブジェクトから消えますが、削除されたわけではありません)。
Ctrl+7キーを押すか、[Render]ツールバーから[修正](Modify) [マテリアル](Materials)を選択して、Material Managerを開きます。
Material Manager のコマンド バーで、次のいずれかを実行します。
[マテリアル](Materials) [新規マテリアルの作成](Create New Material)を選択するか、アイコンをクリックして、デフォルトの[Phong]シェーダに基づいた新しいマテリアルを作成します。
[作成](Create)メニューからマテリアルを選択して、選択したシェーダ タイプ([Lambert]、[Blinn]、[Strauss]、[トゥーン]、[Phong]など)に基づいた新しいマテリアルを作成します。
デフォルトで、新しいマテリアルには[サーフェイス]ポート、[シャドウ]ポート、[フォトン]ポートに接続されたサーフェイス シェーダ(デフォルトの[Phong]など)がアタッチされます。
Material Managerのコマンドバーで[マテリアル](Materials) [選択オブジェクトにマテリアルを適用](Assign Material to Selected Objects)を選択するか、アイコンをクリックします。
表示されるメニューから、サーフェイス シェーダを 1 つ選択して新しいマテリアルに適用します。以下の 2 つの処理が行われます。
サーフェイス シェーダのプロパティ エディタが開きます。これでパラメータを編集できます。
一般的なサーフェイス シェーダのプロパティの詳細については、「Working with Surface Shaders(サーフェイス シェーダを操作する)」を参照してください。
任意のマテリアル ライブラリに新しいマテリアルを作成し、どのオブジェクトにも割り当てないでおくことができます。後から、これらのマテリアルをオブジェクトに割り当てることができます。詳細については、「オブジェクトに既存のマテリアルを割り当てる」を参照してください。
新しいマテリアルは、Material Manager または Explorer を使用して作成できます。
Ctrl+7キーを押すか、[Render]ツールバーから[修正](Modify) [マテリアル](Materials)を選択して、Material Managerを開きます。
Material Manager のコマンド バーで、次のいずれかを実行します。
[マテリアル](Materials) [新規マテリアルの作成](Create New Material)を選択するか、アイコンをクリックして、デフォルトの[Phong]シェーダに基づいた新しいマテリアルを作成します。
[作成](Create)メニューからマテリアルを選択して、選択したシェーダ タイプ([Lambert]、[Blinn]、[Strauss]、[トゥーン]、[Phong]など)に基づいた新しいマテリアルを作成します。
デフォルトで、新しいマテリアルには[サーフェイス]ポート、[シャドウ]ポート、[フォトン]ポートに接続されたサーフェイス シェーダ(デフォルトの[Phong]など)がアタッチされます。
新しいマテリアルを簡単にライブラリに追加するには、マテリアルの Preset Manager を使用します。
[マテリアル](Materials) [プリセットマテリアルのブラウザを開く](Open Preset Materials Browser)を選択するか、アイコンをクリックして、Preset Managerを開きます。
デフォルトでは、Preset Manager にユーザ パスの現在の Data¥DSPresets¥Materials フォルダが開きます。
Preset Manager のマテリアル プリセットを Material Manager の目的のライブラリにドラッグします。ライブラリに新しいマテリアルが作成されます。
ライブラリにあるマテリアルは、シーン内のさまざまなエレメントに割り当てることができます。マテリアルは、オブジェクト、クラスタ、階層、グループ、パーティションなど、マテリアルを受け付けることが可能な任意の対象に割り当てることができます。
Material Manager を使用する。「Material Manager を使用してマテリアルを割り当てる」を参照してください。
Render Tree を使用する。「Render Tree からマテリアルを割り当てる」を参照してください。
Explorer を使用する。「Explorer を使用してマテリアルを割り当てる」を参照してください。
[Render]ツールバーの[取得](Get) [マテリアル](Material) [マテリアルの適用](Assign Material)コマンドを使用する。「マテリアルの適用コマンドの使用」を参照してください。
Material Manager を使用すると、簡単にマテリアル ライブラリにアクセスし、ライブラリのマテリアルをシーン内のエレメントに割り当てることができます。Material Manager を使用してマテリアルを割り当てる場合、数多くの方法があります。
Ctrl+7キーを押すか、[Render]ツールバーから[修正](Modify) [マテリアル](Materials)を選択して、Material Managerを開きます。続けて、シェーダボールが表示されているシェルフで、該当するタブをクリックして必要なライブラリを選択します。
割り当てるマテリアルを含むシェーダボールをクリックし、選択したオブジェクトのいずれかにドラッグ アンド ドロップします。
選択されていないオブジェクトにシェーダボールをドラッグアンドドロップすることもできます。この場合、一度に 1 つのオブジェクトに適用されます。
Material Managerのコマンドバーで[マテリアル](Materials)[選択オブジェクトにマテリアルを適用](Assign Material to Selected Objects)を選択するか、アイコンをクリックします。
マテリアルを Explorer から割り当てるには、割り当てるマテリアルを選択して、割り当て先にドラッグ アンド ドロップするだけです。マテリアルを 1 つのオブジェクトに割り当てる場合は、この方法が最も便利です。
[マテリアルの適用]コマンドは、マテリアルを適用するときの選択対象に応じて、動作が異なります。
1 つまたは複数の[オブジェクト](objects)が選択されている場合:
[コンポーネント](components)(サブサーフェイス、ポリゴン、ポリゴン クラスタなど)が選択されている場合:
マテリアルを選択するか、選択したコンポーネントに割り当てるマテリアルを持つオブジェクト(クラスタやサブサーフェイスなど)を選択します。
選択セッション中もクラスタ選択フィルタがアクティブになっているため、コンポーネントを選択して、そのマテリアルを選択対象に割り当てることができます。
1 つの[マテリアル](material and)および 1 つまたは複数の[オブジェクト](objects)が選択されている場合:
階層にマテリアルを割り当てるには、このセクションの最初(「Creating and Assigning Materials(マテリアルの作成と割り当て)」)に記載されている方法を使用してマテリアルを階層の親オブジェクトに割り当てます。階層の子は、マテリアルがローカルに割り当てられていない場合、親のマテリアルを継承します。
たとえば、テーブルのようなオブジェクトでは、テーブル トップとテーブルの脚の色は同じにしたいでしょう。親(テーブルトップ)のカラーを指定するマテリアルを割り当てると、マテリアルの定義はその子(テーブルの脚)にプロパゲート(適用)されます。
階層に割り当てられたマテリアルは、その他のプロパティと同じプロパゲーション規則に従います。プロパゲーションの規則については、「プロパティのプロパゲーション」を参照してください。
マテリアルを階層に割り当てる場合、マテリアルをオブジェクトに割り当てるための方法はどれでもできますが、異なる点が 1 つあります。それは、オブジェクトを選択するときにマウスの中央ボタンをクリックしてオブジェクトをブランチ選択することです。
[マテリアルをローカルに設定]コマンドを使用して、階層のすべてのマテリアルを、その階層に対してローカルにすることができます。[マテリアルをローカルに設定]コマンドは、ブランチ選択されている場合と同様に任意の選択を処理し、すべてのマテリアルがブランチの階層に対してローカルになるように、必要に応じてマテリアルをコピーします。コピーは階層内のオブジェクトに割り当てられ、オリジナルのマテリアルは引き続き階層外のオブジェクトに割り当てられたままになります。
階層内のメンバーが共有していたマテリアルは、その階層内で共有されるようになります。しかし、もともとそのマテリアルを共有していたメンバーのうち、その階層の外にあるメンバーからはマテリアルが共有されなくなります。
上に示すスケマティック ビューには、立方体の子として円柱、球、トーラスが表示されています。立方体はマテリアルをグリッドと共有し、円柱はマテリアルを円錐と共有しています。球とトーラスはマテリアルを共有しています。
この立方体を選択して、[マテリアルをローカルに設定]コマンドを適用すると、立方体の階層内のオブジェクトと階層外のオブジェクト間で共有しているマテリアルがコピーされます。コピーは階層内のオブジェクトに割り当てられます。つまり、「im_exotic_frog」マテリアルのコピーは立方体に、「im_dino」マテリアルのコピーは円柱に割り当てられます。球とトーラスで共有しているマテリアルは、階層外のオブジェクトでは使用されていないため、影響を受けません。
マテリアルは、選択したポリゴンにローカルに割り当てられるほか、ポリゴン メッシュ オブジェクトのポリゴン クラスタに割り当てられます。後者の場合、選択したクラスタが自動的に作成されます。クラスタのローカル マテリアルは、常にオブジェクト全体に割り当てられたマテリアルよりも優先されます。
Explorer では、クラスタのマテリアルは、オブジェクトのノードの下に直接表示されず、クラスタのノードの下に表示されます。アクセスするには、オブジェクトの[ポリゴン メッシュ](Polygon Mesh) [クラスタ](Clusters)([クラスタ名](name of cluster))ノードを展開します。
マテリアルは、クラスタから消去されると、割り当て先のマテリアルまたはオブジェクトによって継承されているマテリアルを継承します。
Material Manager を使用するなど、「Creating and Assigning Materials(マテリアルの作成と割り当て)」に記載されているその他の方法を使用します。
マテリアルをポリゴン クラスタに適用するのは簡単な作業ですが、クラスタがオーバーラップする場合には手の込んだ作業になることがあります。ところが、このような場合にも、Softimage にはオーバーラップしたポリゴン クラスタ上のマテリアルを処理する機能があります。別のクラスタにオーバーラップするクラスタまたはポリゴン選択領域にマテリアルを割り当てると、次のようなダイアログ ボックスが表示されます。
オプションごとに結果が変わります。たとえば、次の図のグリッドから作業を開始し、選択したクラスタにサーフェイス シェーダを適用してみましょう。
左の図に示すグリッドには 2 つのクラスタがあります。選択されていないクラスタにはローカル マテリアル(赤)が適用されていますが、選択されているクラスタには適用されていません。
[はい](Yes)を選択すると、[選択した](selected)クラスタからオーバーラップ領域が削除されます(下図のようになります)。
選択したクラスタからオーバーラップを消去するように指定し、[選択した](selected)クラスタにローカル マテリアルを適用すると、この図のようになります。クラスタがオーバーラップしているポリゴンが、[選択した](selected)クラスタから消去されます。
[いいえ](No)を選択すると、[既存の](existing)クラスタからオーバーラップが消去されます。
[既存の](existing)クラスタからオーバーラップを削除するように指定して、選択したクラスタにローカル マテリアルを適用すると、この図のようになります。クラスタがオーバーラップしているポリゴンは、[既存の](existing)クラスタから消去されます。
[キャンセル](Cancel)を選択すると、クラスタのオーバーラップが許可されます。
オーバーラップを許可するように指定して、選択したクラスタにローカル マテリアルを適用すると、この図のようになります。最後に適用されたマテリアル(この例では青色)が表示されます。
オーバーラップしているクラスタにマテリアルを適用するたびに入力を要求されるのを避けたい場合は、前のセクションに示した動作のいずれかをデフォルトとして設定できます。
作成した各クラスタには、[並び替え順序](sort_order)値が割り当てられます。ローカル マテリアルが重なっているクラスタの場合は、この値によってそれらを描画する順序が制御されます。クラスタの[並び替え順序](sort_order)の値が低いほど、描画される順序が先になります。このため、[並び替え順序](sort_order)値の最も高いクラスタは、オーバーラップしているクラスタの最上部に常に描画されます。
新規に作成したクラスタには、シーン内で最も高い[並び替え順序](sort_order)値が自動的に指定されるため、デフォルトでは最後に作成されたクラスタが最上部に描画されます。ただし、クラスタの[並び替え順序](sort_order)値を変更すると、そのクラスタの上下に重なっているクラスタを基準に、クラスタの描画順序を変更できます。
ここで示されているグリッドでは、3 つのポリゴン クラスタがオーバーラップしており、それぞれに固有のマテリアルがあります。また、各クラスタは一意な[並び替え順序](sort_order)値を持ちます。つまり、赤色のクラスタは [100]、青色のクラスタは [102]、緑色のクラスタは [104] です。
緑色のクラスタの[並び替え順序](sort_order)値を[99]に変更すると、このクラスタは赤色のクラスタと青色のクラスタの下に描画されます。ただし、青色のクラスタは、[並び替え順序](sort_order)値が最も高いため、赤色のクラスタの上に描画されます。