オペレータ スタック

 
 
 

オペレータ スタック(モディファイア スタックまたはコンストラクション ヒストリとも呼ばれる)は、Softimage でのモデリングの基本です。オペレータ スタックとは、オブジェクトに適用されたすべてのオペレータ(デフォーメーションやトポロジ変更など)の履歴で、モデリング用、アニメーション用、およびシェイプ用に分類されます。あるオペレータの出力は次のオペレータの入力となり、オペレータのエフェクトはスタックの上方に向かって継承されます。いつでも前に戻ってオペレータの修正や削除を実行できます。

注:オペレータ スタックは、イミディエイト モードをオフにしている場合に限り保持されます。詳細については、「イミディエイトモード」を参照してください。

オペレータを表示および修正する

[フィルタ]メニューの[オペレータ](Operators)をオンにすると、オブジェクトのオペレータ スタックが Explorer に表示されます。Explorer では、オブジェクトの第 1 サブノードの下にオペレータ スタックが表示され、一般的には[ポリゴンメッシュ](Polygon Mesh)[NURBSサーフェイスメッシュ](NURBS Surface Mesh)[NURBSカーブ一覧](NURBS Curve List)[ヌル](Null)などの名前が付いています。

たとえば、プリミティブ ポリゴン メッシュ グリッドを取得し、ツイストを適用した後にランダマイズを適用した場合を例に挙げます。オペレータ スタックには、適用されたオペレータが表示されます。任意のオペレータのプロパティ ページを開き、値を修正できます。変更内容はヒストリに渡され、最終的なオブジェクトに反映されます。

たとえば、次のような作業を実行できます。

  • グリッドのサイズ変更

  • サブディビジョン数の変更

  • ツイスト オペレータのツイストの角度、オフセット、軸の変更

  • ランダマイズ オペレータでのランダム ディスプレイスメント パラメータの変更

プロパティ エディタを表示する

スタック内の任意のオペレータのプロパティ エディタを表示し、そのパラメータを変更できます。

注:編集可能なパラメータを持たないために、関連付けられたプロパティ エディタを持たないオペレータもあります。

単一オペレータのプロパティ エディタを開くには

指定したオペレータのプロパティ エディタを開くには、Explorer ビューを使用するか、メイン コマンド エリア内の[選択](Selection)ボタンからの Explorer を使用します。

  • Explorer ビューを使用する場合は、[フィルタ]メニューの[オペレータ](Operators)をオンにしてください。そのオペレータを持つオブジェクトは選択する必要はありません。

  • [選択](Selection)ボタンを使用する場合は、そのオペレータを持つオブジェクトを選択してください。

どちらの場合も次のいずれかの操作を実行します。

  • オペレータのアイコンをクリックします。

    または

  • オペレータを選択して[Enter]キーを押します。

    • 開いているプロパティ エディタが「属する」オブジェクトが選択されていない場合、そのオブジェクトは、既定では薄い青色のワイヤフレーム モードで表示されます。

    • プロパゲーションを通してプロパティを継承している未選択オブジェクトは、ピンク色で表示されます。

オブジェクトに最後に適用されたオペレータのプロパティ エディタを開くには

  1. オブジェクトを選択します。

  2. [Ctrl]+[End]キーを押すか、[編集]パネルから[編集](Edit) [プロパティ](Properties) [スタックの最後のオペレータ](Last Operator in Stack)を選択します。

オブジェクトに適用されたすべてのモデリング オペレータのプロパティ エディタを開くには

次のいずれかの操作を実行します。

  • Schematic または Explorer ビューでオブジェクトを右クリックし、[モデリングプロパティ](Modeling Properties)を選択します。オブジェクトを選択する必要はありません。

    または

  • 3D ビューで[Alt]キー(Linux の場合は[Ctrl]+[Alt]キー)を押しながらオブジェクトを右クリックして[モデリングプロパティ](Modeling Properties)を選択します。この場合も、オブジェクトを選択する必要はありません。

    または

  • オブジェクトを選択し、[編集]パネルから[編集](Edit) [プロパティ](Properties) [モデリングプロパティ](Modeling Properties)を選択します。

単一のプロパティ エディタが開き、それぞれのタブで各オペレータのパラメータを利用できます。

オペレータのグループ化

オブジェクトに同じ操作を続けて何度も適用する際に同じオペレータが複数発生すると、スタック内の拡張フォルダ下でそれらが自動的にグループ化され、グループ化された数が括弧内に表されます。

これにより、Explorer 内の表示が単純化されます。たとえば、数百もの[MoveComponent]ノードの代わりに、1 つの[MoveComponent]フォルダ ノードが表示されます。そのフォルダ名をクリックすると、フォルダ内のすべてのオペレータが選択されます。

オペレータを削除する

スタック内のオペレータを削除するには、オペレータを選択して[Delete]キーを押します。

オペレータの分類

オペレータにより変更される情報の種類に基づいて、オペレータは複数のカテゴリに分類されます。

  • [ジェネレータ](Generators)は、オブジェクトを作成します。[取得](Get) [プリミティブ](Primitive)メニューから選択できるオペレータや、[作成](Create)の下から選択できるオペレータの多くはこれに属します。たとえば、[ジオメトリ](プリミティブ)、[カーブクリエイション]、[ロフト]、[NURBSをメッシュに]などがあります。

  • [トポロジ オペレータ](Topology operators)は、ジオメトリを変更します(コンポーネントの追加や削除など)。[修正](Modify)から使用できるオペレータの多くが含まれ、 [カーブのシフト]、[サーフェイスノット挿入]、[ポリゴンのサブディバイド]などが該当します。

  • [デフォーメーション](Deformations)は、ポイントの位置を変えてオブジェクトの形状を調整します。[デフォーム](Deform)メニューから使用できるオペレータのほか、[コンポーネント移動]オペレータと[エンベロープ]オペレータが含まれます。

コンストラクション モードとコンストラクション領域

コンストラクション ヒストリは、4つの主要な領域、[モデリング](Modeling)、[シェイプ モデリング](Shape Modeling)、[アニメーション](Animation)、および[2 次シェイプ モデリング](Secondary Shape Modeling)に分けることができます。これらのカテゴリにより、オペレータを用途別に分類してコンストラクション ヒストリを整理できます。たとえば、デフォーメーションを適用する際には、オブジェクトの基本ジオメトリを構築する操作(モデリング)、シェイプ アニメーションに使用するシェイプ キーを作成する操作(シェイプ モデリング)、アニメーション エフェクトを作成する操作(アニメーション)、エンベロープ オブジェクトを調整するためのシェイプ キーを作成する操作(2 次シェイプ モデリング)が考えられます。

特定の領域にオペレータを追加するには、モデリング操作を実行する前にコンストラクション モードを選択します(「コンストラクション モードを設定する」を参照)。間違ったモードでオペレータを誤って追加してしまった場合は、正しい領域にオペレータを移動することができます(「オペレータの順序を変更する」を参照)。

作業中は、最終結果(すべての領域のすべてのオペレータの結果)を表示したり、現在のモード(現在の領域とその下位にあるすべてのオペレータの結果)だけを表示できます(「各種領域の結果を表示する」を参照)。

既定では、各ビューに現在のコンストラクション モードとディスプレイ モードに関する情報が表示されます。このフィードバックの表示/非表示は切り替えられます(「現在のモードのフィードバックを取得する」を参照)。

ICE シミュレーションで使用するための、さらに 2 つのコンストラクション領域があります。ICE シミュレーション オペレータを作成すると、これらの領域が自動的に表示されます。コンストラクション領域の詳細ついては、「ICE ツリーとコンストラクション スタック」を参照してください。

コンストラクション領域について

4 つの主要コンストラクション領域には、それぞれ異なる用途があります。

  • [モデリング](Modeling)領域は一番下にある領域です。デフォメーション オペレータとトポロジ オペレータの両方を使用して、オブジェクトの基本的なシェイプやトポロジを定義する場合は、この領域を使用できます。

    この領域は、パフォーマンスを向上させるためにフリーズしたい場合があります。[モデリング]領域は、他の領域に影響を及ぼさずにフリーズすることができます(「オペレータ スタックをフリーズする」を参照)。

    必要に応じて、モデリング領域にはアニメートされたオペレータを含めることができます。たたし、モデリングをフリーズするとアニメーションは失われます。さらに、スタック内のアニメートされたデフォメーションの上にシェイプ アニメーションが存在する場合は、ポリゴンが相互衝突するときにそのシェイプが「跳ねる」恐れがあります。

  • [シェイプモデリング](Shape Modeling)領域は、[モデリング]領域の上にあります。この領域ではクラスタ シェイプ合同ノードが含まれているだけでなく、デフォメーションを適用してシェイプ アニメーションのシェイプキーを定義することができます。[シェイプモデリング]モードでシェイプ キーを保存すると、この領域のオペレータのエフェクトがシェイプ キーに保存されます。キーを保存または適用してシェイプ クリップを作成すると、この領域にあるオペレータだけが削除されます。そのため、[アニメーション]領域のアニメートされたデフォーメーション(エンベロープなど)は削除されません。

  • [アニメーション](Animation)領域は、[シェイプモデリング]領域の上にあります。この領域は、モデリングをフリーズしたり、エンベロープ、ウェーブ、ケージ、ラティス、スパイン、または振幅がアニメートされた単純な Push などのデフォメーションを適用する場合に、削除したくないアニメートされたデフォメーションに対して使用することができます。

  • [2 次シェイプモデリング](Secondary Shape Modeling)領域は一番上にある領域です。この領域を使用して、エンベロープ加工されたキャラクタの表面の筋肉の隆起などに対応するシェイプ キーを作成できます。この領域のオペレータのエフェクトは、[シェイプモデリング]領域と同様に、[2 次シェイプモデリング]モードでシェイプ キーを保存したときに保存されます。また、この領域のオペレータは、キーを適用してシェイプ クリップを作成した時点で削除されます。

    すべてのシェイプ キーは、2 次シェイプ モデリング モードで作成されたシェイプを含めて、シェイプ モデリング領域の一番下にあるクラスタ シェイプ合同のレベルで適用されることに注意してください。つまり、Softimage はシェイプ キーを作成する際に、アニメーション領域にあるすべてのオペレータの反転デフォメーションを計算しなければならないことを意味します。その結果として、アニメーション領域にエンベロープ オペレータしか存在しない場合にはシェイプは問題ありませんが、アニメーション領域にエンベロープ以外のデフォメーションが存在する場合は、必ずしも意図した結果になるとは限りません。すべてのデフォメーションに反転デフォメーションがあるわけではないため、この問題は避けられません。

Explorer では、各領域の最上位は、プレースホルダとして機能する特別なマーカーで示されます。マーカーは最初のオペレータを適用すると同時に自動的に作成され、他のオペレータのように移動できます(「オペレータの順序を変更する」を参照)。ただし、あるマーカーを別のマーカーの上下に移動してマーカーの順序を変更することはできません。また、[クラスタシェイプ 合同]は必ず[シェイプモデリング]領域の最下位になければなりません。

注:

Softimage のバージョン 3.5 以前で作成されたシーンまたはモデルを開いたり読み込みをした場合は、以下のように処理されます。

  • オブジェクトにシェイプ アニメーションがあれば、[Cluster Shape Combiner]ノードの位置によって[シェイプモデリング]領域の開始点が決まります。

  • オブジェクトにシェイプ アニメーションがなければ、すべてのオペレータが[モデリング]領域に配置されます。

その後はオペレータを特定の領域に移動することができます(「オペレータの順序を変更する」を参照)。

コンストラクション モードを使用する

ここでは、コンストラクション モードを使用する場合のワークフローを簡単に説明します。

  1. コンストラクション モードを設定します(「コンストラクション モードを設定する」を参照)。

  2. 新しいオペレータを適用しながらオブジェクトのモデリングを続けます。

    新しいデフォーメーションは現在の領域の最上位に適用され、新しいトポロジ モディファイアは常に[モデリング]領域の最上位に適用されます。

    オペレータの適用後にスタック内でオペレータを移動してオペレータの領域を変更することができますが、通常の注意事項は変わりません(「オペレータの順序を変更する」を参照)。

  3. 作業中はいつでも、最終結果(すべての領域のすべてのオペレータの結果)を表示したり、現在のモード(現在の領域とその下位にあるすべてのオペレータの結果)だけを表示したりできます(「各種領域の結果を表示する」を参照)。さらに、異なるビューで別の表示を行うことも可能です。たとえば、エンベロープやその他のデフォーメーションの実行結果を確認しながら、モデリング モードのビューでのポイントの表示や移動ができます。

    既定では、各ビューに現在のコンストラクション モードとディスプレイ モードに関する情報が表示されます。このフィードバックの表示/非表示は切り替えられます(「現在のモードのフィードバックを取得する」を参照)。

コンストラクション モードを設定する

現在のコンストラクション モードによって、新しいデフォーメーション オペレータが追加されるコンストラクション領域が決まります。このモードは、目的に応じて選択できます。

たとえば、スパインによるデフォーメーションを適用したいとします。

  • スパイン デフォーメーションでオブジェクトの基本シェイプを整形し、終了後にフリーズする場合は、[モデリング]モードを使用します。

  • スパイン デフォーメーションを使用して基本シェイプ用のシェイプ キーを保存する場合は、[シェイプモデリング]モードを使用します。

  • スパイン カーブのシェイプをアニメートしてオブジェクトをアニメートする場合は、[アニメーション]モードを使用します。

  • スパイン デフォーメーションを使用して、筋肉バルジなどのシェイプ キーをエンベロープ オブジェクトの上に(つまり、エンベロープのアニメーションを基準として)保存する場合は、[2 次シェイプモデリング]モードを使用します。

    注:トポロジ オペレータは、現在のコンストラクション モードに関係なく、必ず[モデリング]領域の最上位に追加されます。

コンストラクション モードを設定するには

  • メイン メニューバーのセレクタから、希望のコンストラクション モードを選択します。

    モード セレクタが表示されない場合は、メイン メニュー バーの空白領域を右クリックし、[コンストラクションモード](Construction Mode)を選択します。

    モードを再度変更するまでの間は、新しいデフォーメーションは対応するコンストラクション領域の最上位に追加されます。

自動的にコンストラクション モードを変更するには

[モデリング]プリファレンス([ファイル]>[設定])にある[コンストラクションモード]-[自動更新有効](Construction Mode - Enable Auto Update)オプションは、特定の操作の実行時にコンストラクション モードを自動的に変更するかどうかをコントロールするものです。このオプションをオンにすると、以下の変更が自動的に起こります。

  • トポロジ オペレータを適用すると、自動的に[モデリング]モードに切り替わります。

  • アニメーション領域でエンベロープを適用し、プロンプトに対して[はい]を選択すると、自動的に[アニメーション]モードに切り替わります。

  • [モデリング]モードでシェイプ キーを保存すると[シェイプモデリング]モードに、[アニメーション]モードでシェイプ キーを保存すると[2 次シェイプモデリング]モードに切り替わります。

各種領域の結果を表示する

コンストラクション ディスプレイ モードは、3D ビューでのオブジェクトの表示方法を決定するものです。次の値を指定できます。

  • [結果(トップ)](Result (top)): 現在のコンストラクション モードに関係なく、常にすべてのオペレータの最終結果を表示します。

  • [現在のモードと同期](Sync with construction mode)では、現在のコンストラクション領域とそれ以下の領域にあるオペレータの結果を表示します。

どの領域が表示されているかにかかわらず、デフォーメーションおよびトポロジ オペレータを適用し続けることができます。さらに、異なるビューで別の表示を行うことも可能です。たとえば、エンベロープやその他のデフォーメーションの実行結果を確認しながら、モデリング モードのビューでのポイントの表示や移動ができます。

単一のビューのコンストラクション ディスプレイ モードを設定するには

  • 次のいずれかの操作を実行します。

    • ビューの[表示]メニューで、[コンストラクションモード ディスプレイ](Construction Mode Display)サブメニューから希望のオプションを選択します。

      または

    • ビューの[表示]メニューから[ディスプレイオプション](Display Options)を選択します。[カメラ表示](Camera Display)プロパティ エディタの[モード](Modes)タブで、[コンストラクションレベル ビューイングモード](Construction Level Viewing Mode)を適切な値に設定します。

開いているすべてのビューのコンストラクション ディスプレイ モードを設定するには

  1. メイン メ ニューから [ディスプレイ](Display) [ディスプレイ オプション(すべてのカメラ)](Display Options (All Cameras))を選択します。

  2. [カメラ表示](Camera Display)プロパティ エディタの[モード](Modes)タブで、[コンストラクションレベル ビューイングモード](Construction Level Viewing Mode)を適切な値に設定します。

現在のモードのフィードバックを取得する

現在のコンストラクション モードとディスプレイ モードに関する情報を 3D ビューに表示することができます。このフィードバックの表示/非表示は切り替えられます。

  • コンストラクション モードと表示モードが同じ場合、モードはビューの左端隅に表示されます。

  • コンストラクション モードと表示モードが異なる場合、表示モードに続いて角括弧([ ])内にコンストラクション モードが表示されます。

単一 3D ビューのコンストラクション モード フィードバックを切り替えるには

  1. 次のいずれかの操作で、特定のビューの[カメラの表示/非表示]プロパティ エディタを開きます。

    • 目のアイコンをクリックして[表示]メニューを開き、[可視性オプション](Visibility Options)を選択します。

      または

    • マウス ポインタをビュー上に置き、[Shift]+[S]キーを押します。

  2. [カメラの表示/非表示]プロパティ エディタの[ステータス]タブで、[コンストラクションレベルの表示](Show Construction Level)を切り替えます。

すべての 3D ビューのコンストラクション モード フィードバックを切り替えるには

  1. メイン メニューから[ディスプレイ](Display) [可視性オプション(すべてのカメラ)](Visibility Options (All Cameras))を選択します。

  2. [カメラの表示/非表示]プロパティ エディタの[ステータス]タブで、[コンストラクションレベルの表示](Show Construction Level)を切り替えます。

トポロジの変更に関する注意事項

スタック内にトポロジを変更するオペレータがある場合は、いくつかの注意事項があります。

ジェネレータとトポロジ オペレータをアニメートまたは変更する

スタック内でジェネレータやトポロジ オペレータがその他のオペレータの下位にある場合は、そのパラメータの変更やアニメートを行うときは十分な注意が必要です。ジオメトリの量が変わると、コンポーネントのインデックスも変更されます。これにより、スタック内で上位にあるその他のオペレータがクラスタまたはコンポーネント インデックスに依存している場合には、それらのオペレータに逆に影響する可能性があります。

たとえば、プリミティブ ポリゴン メッシュ グリッドを入手して、そこにクラスタを作成するとします。このとき、プリミティブの[ジオメトリ]プロパティ エディタを再度開いてサブディビジョン(分割数)を増やすと、クラスタの位置が変わってしまいます。クラスタが定義される前に、新しいポイントがスタックに追加されるためです。これは、クラスタを入力として使用するすべてのオペレータ([コンポーネント移動]など)に影響します。

ただし、クラスタを作成した後に[ポリゴンサブディバイド]オペレータを適用すると、クラスタの定義後に新しいポイントが作成されるため、クラスタの位置は変わりません。

 

ポリゴン メッシュ上のポイント クラスタ。いくつかのポイントのインデックスが表示されています。ポイント 1 と 2 はクラスタには含まれず、ポイント 3 と 4 はクラスタに含まれています。

プリミティブでサブディビジョン数を増やすとクラスタが移動します。同じポイントがクラスタ内にありますが、それらの位置は移動しています。

ポリゴンを分割してもクラスタは移動しません。新しいポイントには新しいインデックスがあり、隣接状況に応じてクラスタに追加されます。

トポロジ オペレータとシェイプ アニメーション

シェイプ アニメーションを使用しているオブジェクトでトポロジ オペレータのパラメータを変更またはアニメートする場合は、すべてのシェイプを作成してからトポロジ オペレータを適用します。トポロジ オペレータは[クラスタシェイプ 合同]の下の[モデリング]領域に挿入されますが、シェイプは正しく更新されます。シェイプ アニメーションではトポロジ オペレータを再評価する必要がないため、シェイプに影響を及ぼすことなくトポロジ オペレータをフリーズできます。

たとえば、シェイプ アニメートされたオブジェクトを取得し、ポリゴン リダクションを適用して、そのオブジェクトの低解像度バージョンを 1 つまたは複数作成することができます。この方法では、すべてのシェイプとトランジションが保持されます。ただし、ポリゴン リダクションを適用してからシェイプ アニメーションを作成すると、リダクションの量を変更したときにシェイプが正しくなくなります。

トポロジ オペレータの下位のクラスタを変更する

既存のクラスタまたはクラスタベースのプロパティを変更した場合、スタック内でトポロジ オペレータが上位にあると、結果が得られないか、正しくない結果が得られる可能性があります。これには、たとえば次のような状況が含まれます。

  • スタック内のトポロジ オペレータの下位で作成したクラスタに対してコンポーネントの追加または削除を行う場合。選択したコンポーネントにデフォーメーションまたはプロパティを適用したときに自動的に作成されるクラスタも、これに含まれます。

  • スタック内でウェイト マップ作成ポイントまたは[エンベロープ オペレータ]の上位にトポロジ オペレータがあるときにウェイトマップ値(エンベロープ ウェイトを含む)を変更する場合。

  • スタック内で[頂点のカラー]マップ作成ポイントの上にトポロジ オペレータがあるときに、頂点カラーを変更する場合。

このような状況では、単純に、クラスタまたはプロパティを変更する前に、クラスタ作成ポイントの上位にあるトポロジ オペレータをすべて無効にします。変更が完了したら、スタックの最上位を再度有効にすると、オブジェクトは正しく更新されます。

オペレータを無効にする方法については、「上位スタックを無効にする」を参照してください。

トポロジ オペレータと依存関係のサイクル

トポロジ オペレータを適用すると、新たな依存関係のサイクルが作成されていないかどうかがチェックされます。依存関係のサイクルとは、1 つ以上のオペレータの入力が、たとえば他のオペレータやクラスタが関与する経路を通じて、出力に依存する状況です。これによってオペレータの破損と不安定な動作が起こりえます。

新しい依存関係のサイクルが検知されると、新しいオペレータの削除を促すメッセージが表示されます。[はい](Yes)をクリックして、適用された最後のオペレータを削除することを推奨します。[いいえ](No)をクリックしてオペレータをシーンに残すと、いずれ問題が生じます。

オペレータを削除した後、コマンド ログを見て、どのオペレータがサイクルに関与したかを確認できます。再度オペレータを適用する前に関連するオブジェクトをフリーズする必要があります。

注:依存関係のサイクルが問題とならない場合は、テクスチャ サポート上のコンストレイントを含む特定の場合など多くはありません。コマンド ログがあるコンストレイントがサイクルに関わっていたことを示している場合は、シーンにオペレータを残すことも可能です(しかし削除する方が常に安全です)。

オペレータの順序を変更する

オブジェクトのスタックでオペレータの順序を変更するには、Explorer ビューでオペレータをドラッグ アンド ドロップします。必ず、オペレータのドラッグ先のすぐ下にあるオペレータまたはマーカーの上にオペレータをドロップしてください。

特に、トポロジ オペレータを移動したり、トポロジ オペレータ間で移動したりした場合は、必ずしも期待した結果が得られるとは限らないことに注意してください。これは、以前に特定のコンポーネントに作用していたオペレータが、別のオペレータに作用するようになるためです。また、一部のデフォーメーションオペレータ([MoveComponent]や[Offset]など)は、移動しても期待した結果にならない可能性があります。これは、それらのオペレータで保存されるポイント位置のオフセットの基準フレームが、スタック内の別の位置では異なる場合があるためです。

オペレータを ドラッグ アンド ドロップすると、変更点の関連性が評価され、データ内に依存関係を持たないサイクルを作成して良いかどうかがチェックされます。依存関係が検出されると、その場所にオペレータをドロップできません。オペレータの順番を上げると、オペレータの順番を下げるよりも良い結果が得られることがよくあります。これは、一部のオペレータが依存している非表示のクラスタ作成オペレータによるものです。

オペレータを新しい場所に移動した後に元の場所までドラッグしても、元の結果を得られない場合があります。これは、クラスタの内部依存関係によるものです。しかし、オペレータをドラッグした後に操作を元に戻すと、元の結果が得られます。

また、テクスチャ オペレータをドラッグ アンド ドロップして、プロジェクションの貼り付けや浮遊をコントロールすることもできます。「スタック内のテクスチャオペレータのドラッグアンドドロップ」を参照してください。

これらの規則の例外の 1 つは、[サーフェイス連続性マネージャ]オペレータ([SCM フィクサーオペレータ2])です。このオペレータは移動が不可能で、常にスタックの最上位にあります。もう 1 つの例外は[クラスタシェイプ 合同]です。これは既定で[シェイプモデリング]領域の最下位にあり、移動できません(そのすぐ下にあるその他のオペレータは移動可能)。

スクリプト コマンドを使用してオペレータの順序を変更する

Explorer でドラッグ アンド ドロップしてオペレータを移動すると、コマンド ヒストリに[CopyPaste]コマンドが記録されます。

しかし、スクリプトを使用してオペレータを移動する場合は、[SwapOps][MoveOperatorAfter][MoveOperatorBefore]コマンドを使うこともできます。これらのコマンドが失敗すると、[CopyPaste]のときよりも詳細なエラー メッセージが表示されます。

スクリプティング全般の詳細については、Script Development[SDK Guide]を参照してください。

上位スタックを無効にする

新しいオペレータをスタック間に挿入する場合は、まず任意のオペレータから一番上のオペレータまでを無効にします。スタックの最上位を再度有効にするまでの間は、新しいオペレータはスタック内の有効な場所に追加されます。

スタックは一時的に無効化されます。シーンを保存して再ロードすると、スタックは再び有効になります。

重要:

スタックの最上位を無効にする際には、次のガイドラインに従ってください。そうしないと、予期しない結果になる可能性があります。

  • オペレータを移動させる前にスタック全体を再度有効にしてください。

  • [ロフト]のようなジェネレータを無効にしないでください。

  • 上位スタックが無効になっている間は、無効化されたポイントの上に作成されたクラスタも含め、いかなる操作も実行しないでください。操作を実行すると、多数のデータ依存サイクルが作成されてしまいます。

  • 無効にしたスタックはフリーズせず、元に戻してください。

上位スタックを無効にするには

  • Explorer ビューで、無効にしたいオペレータの中から一番下のオペレータを右クリックし、[ここから無効](Disable from Here)を選択します。

    選択したオペレータを含み、それより上にあるすべてのオペレータがオブジェクトに影響を与えなくなり、オペレータ名に取り消し線が表示されます。

       

    新しいオペレータが無効なオペレータの下に移動します。

    引き続きスタック内のさらに下にあるオペレータを無効にすることで、段階的に無効化することも可能です。

スタックの上位を再び有効にするには

  • Explorer ビューで、一番下の無効なオペレータを右クリックし、[ここから有効](Enable from Here)をクリックします。

    クリックしたオペレータおよびその上にあるスタック内のすべてのオペレータが有効になります。スタックを段階的に無効にした場合は、直前に無効にしたオペレータまでが有効になります。

オペレータ スタックをフリーズする

オブジェクトに満足したら、オペレータ スタックの全部または一部をフリーズできます。フリーズすると現在のヒストリが削除されるため、オブジェクトで必要となるメモリの量が少なくなり、更新が速くなります。なお、元に戻したり値を変更することができなくなります。

[モデリング]領域をフリーズすることも、オブジェクト全体をフリーズすることも、あるいはスタック内の特定のオペレータより下位のオペレータをすべてフリーズすることもできます。

注:
  • フリーズすると、[ツイスト]デフォーメーションの角度など、モデリング オペレータ上のすべてのアニメーションが削除されます。値は現在のフレームで使用されます。

  • ヘア オブジェクトについては、[ヘアジェネレータ]オペレータと[ヘアダイナミクス]オペレータは削除できません。

[モデリング]領域をフリーズするには

  1. オブジェクトを選択します。

  2. 次のいずれかの操作を実行します。

    • [編集]パネルで[フリーズ M](Freeze M)ボタンをクリックします。

      または

    • [編集]パネルの[編集](Edit) [オペレータ](Operator) [モデリングのフリーズ](Freeze Modeling)を選択します。

    [モデリング]領域が集約されます。これには、[モデリング]領域に適用されているすべてのウェイト マップとテクスチャ プロジェクションが含まれます。

オブジェクト全体をフリーズするには

  1. オブジェクトを選択します。

  2. 次のいずれかの操作を実行します。

    • [編集]パネルで[フリーズ](Freeze)をクリックします。

      または

    • [編集]パネルの[編集](Edit) [オペレータ](Operator) [選択のフリーズ](Freeze Selected)を選択します。

    コンストラクションヒストリ全体が集約されます。これには、モデリングスタックと、すべてのテクスチャオペレータスタックおよびウェイトペイントスタックが含まれます。

オペレータ スタックの一部をフリーズするには

  • Explorer で、次のいずれかを実行します。

    • オペレータを右クリックして[フリーズ](Freeze)を選択します。

      または

    • スタック内のオペレータを選択し、[編集]パネルの[フリーズ](Freeze)をクリックします。

      または

    • スタック内のオペレータを選択し、[編集]パネルの[編集](Edit) [オペレータ](Operator) [選択のフリーズ](Freeze Selected)を選択します。

    選択したオペレータおよびその下にあるスタック内のすべてのオペレータが集約されます。これには、選択したオペレータの下に適用されたウェイト マップやテスクチャ プロジェクションも含まれます。

デフォーメーション オペレータを集約する

スタック内の下位レベルにある先行のオペレータをフリーズしないで、同じスタック内の特定のオペレータを「フリーズ」するほうが便利な場合があります。たとえば、シーンの速度を低下させる[コンポーネント移動]オペレータが多数あるものの、アニメートされたデフォーメーションやジェネレータを残しておきたい場合などです(維持しておきたいモデリング リレーションがオブジェクトに存在する場合)。

また、特定のデフォーメーションの動作を変更する必要がある場合も同様です。たとえば、[バルジ]デフォーメーションを適用し、あるポイントをスケーリングして、[バルジ]オペレータの振幅を調整する場合は、スケーリングが[バルジ]エフェクトによって乗算されます。ここで加算エフェクトが必要である場合は、ポイントのスケーリングにより作成される[コンポーネント移動]オペレータを「フリーズ」します。

この場合は、複数のデフォーメーションオペレータを単一の[Offset]オペレータに集約できます。[オフセット]オペレータは、現在のフレームに集約されたデフォーメーションのエフェクトを含む単一のデフォーメーションです。[オフセット]オペレータには、パラメータやプロパティ エディタが存在しません。

オペレータを集約するときには、次の点に注意してください。

  • デフォーメーションのみを集約でき、 トポロジ オペレータは集約できません。

  • トポロジ オペレータ全体を集約することはできません。集約するデフォーメーション オペレータ同士の中間にトポロジ オペレータが存在する場合は、そのトポロジ オペレータを境界に 2 つの[オフセット]オペレータが作成されます。

  • 他のオペレータが情報を読み取るスタック内のポイントにわたって集約することはできません。スタック内にこのようなポイントが表示されていない場合も同様です。

    たとえば、[ランダマイズ]デフォーメーションの適用、テクスチャ プロジェクションの作成、[プッシュ]デフォーメーションの適用を順に行った後、デフォーメーションを選択して集約すると、2 つの[オフセット]オペレータが作成されます。これは、テクスチャ プロジェクションが中間のポイントからデータを読み取るためです。ただし、テクスチャ プロジェクションをフリーズした場合は、これらのデフォーメーションを単一の[オフセット]オペレータに集約できます。

  • アニメートする何らかのパラメータを含むデフォーメーションを集約すると、アニメーションが失われます。

  • オブジェクト入力(エンベロープ デフォーマやスパイン デフォーマなど)を持つデフォーメーションを集約すると、そのリレーションが失われます。

  • [オフセット]オペレータの下位のオペレータを変更すると、エフェクト全体が変更されます。

    たとえば、[ラティス]デフォーメーションがあり、その後に[ツイスト]デフォーメーションが続くとします。ここで、この[ツイスト]デフォーメーションを[オフセット]オペレータに集約する場合を考えてみましょう。ラティスを変更しても、[オフセット]オペレータは依然として各ポイント対して同一の相対オフセットを適用します。しかし、ラティスの変更方法によっては、ラティスは実際には「ツイスト」ではなくなります。

  • [オフセット]オペレータは、他のオペレータと同様にデフォーメーションの一種であり、これもまた集約することが可能です。

デフォーメーション オペレータを集約するには

  1. スタック内のデフォーメーション オペレータを 1 つ以上選択します。

  2. [編集]パネルの[編集](Edit) [オペレータ](Operator) [集約オペレータ](Collapse Operators)を選択します。

    連続して選択されたデフォーメーションのシークエンスごとに、1 つの[オフセットオペレータ]に集約されます。