コントロールオブジェクトまたは コントロールジオメトリ は、パックまたはアンパックされた単純なプリミティブで、 Attach Control Geometry SOPを使用することでKineFXスケルトンのジョイント(ポイント)にそのプリミティブを取り付けることができます。
ジョイントにコントロールジオメトリを取り付ければ、それらのコントロールをジョイントの セレクター として使用することができます。
これらのコントロールによって、
Rig Pose SOPノードを使用してキャラクタをポージングする時にスケルトンのジョイントを選択するのが楽になります。
How to
コントロール用のプリミティブジオメトリをセットアップする
-
ネットワークエディタ で、コントロールとして使用したいアンパックまたはパックされたプリミティブジオメトリオブジェクトを作成します。
Tips
シーン内に直接コントロールジオメトリを作成する別の方法として、以下のノードを使用することができます:
-
コントロールとして使用したいすべてのプリミティブを含んだディスク上の
.bgeoファイルを参照するFile SOPノード。
-
コントロールとして使用可能なKineFXポイントを作成する
Skeleton SOPノード。
-
Object Nullが使用しているものと同じジオメトリコントロールを作成する
Control SOPノード。
-
-
Transform SOPノードを作成し、コントロールジオメトリの 出力 をその Transform ノードの 入力 に接続し、そのコントロールジオメトリのスケールを調整してから、そのコントロールジオメトリをキャラクタ付近の配置したい位置まで移動させます。
-
Color SOPノードを作成し、 Transform ノードの 出力 をそのColorノードの 入力 に接続してから、そのColorノードのパラメータを以下の どれか のように設定します:
-
コントロールジオメトリに独自のカラーを設定したいのであれば、 Class パラメータを Primitive に設定して、 Color パラメータを使ってそのコントロールのカラーを選択します。
-
コントロールジオメトリのカラーを取り付け先の ジョイント (ポイント)のカラーから継承したいのであれば、 Class パラメータを Point に設定して、 Color パラメータを白に設定します。
-
-
(必須) Attach Control Geometry ノードでは、各コントロールに
nameアトリビュートが必要です。そのため、Name SOPノードを作成して、 Color ノードの 出力 をその Name ノードの 入力 に接続してから、 Name マルチパラメータフィールド内でそのコントロールに対して(そのコントロールがどのジョイントに取り付けられているのか判断しやすいように)分かりやすい名前を入力してください。例えば、
head_controlとかhand_l_selectorです。
例: Name SOPのパラメータ
コントロールジオメトリをジョイントに取り付ける
-
(任意)複数の固有な名前のコントロールを作成するために複数のジオメトリをセットアップしている場合、それらのジオメトリすべてを
Merge SOPノードに接続した後に、 Attach Control Geometry ノードを接続します。
例: Merge SOPを使った複数のコントロールジオメトリ メモ
-
Merge SOPと Attach Control Geometry SOPを併用した時、それらのコントロールの中で最も細かいカラー設定が優先されます。 例えば、頂点カラーはポイントカラーを上書きし、ポイントカラーはプリミティブカラーを上書きし、プリミティブカラーはオブジェクトカラーを上書きします。
-
Merge SOPが、あるノードにはあって他のノードにはない(
colorなどの)アトリビュートを見つけた場合、そのアトリビュートを持たないコンポーネントには、その見つけたアトリビュートの デフォルト 値でそのアトリビュートが追加されます。 -
すべてのコントロールを一度にサイズ変更したいのであれば、 Merge SOPの後に Transform SOPを接続してください。
-
-
Attach Control Geometry SOPノードを配置します。
-
以下の操作を行ないます:
-
ネットワーク内の アニメーションポーズ (例えば、
FBX Character Import SOPノードのアニメーションスケルトン 出力 )を Attach Control Geometry ノードの 1番目の入力 に接続します。
-
そのコントロールジオメトリの Name (または Merge )ノードの 出力 を Attach Control Geometry ノードの 2番目の入力 に接続します。
例: 1個のコントロールジオメトリを持ったネットワーク
例: 複数個の異なるコントロールジオメトリを持ったネットワーク
メモ
-
コントロールをAttach Control Geometryノードに接続すると、もはやビューポート内でそれらのコントロールをインタラクティブにトランスフォームさせることができなくなります。
-
Attach Control Geometryノードの入力に2個以上のコントロールジオメトリが含まれていて、どれかのコントロールのColorノードの Class パラメータが Point に設定されている場合、Attach Control Geometryノードに接続されている すべての コントロールは、個々のColorノードのクラスやカラー設定に関わらずジョイントのカラーを継承するようになります。
-
コントロールをAttach Control Geometryノードに接続した後にビューポート内からそのコントロールが消えた場合は、 ジョイントのスケール を確認してください。 コントロールは、その取り付け先のジョイントのトランスフォームを継承します。例えば、スケルトンのジョイントスケールが0.01ならば、コントロールはそのジョイントのスケールに合わせて縮小され(そして、ビューポートでは消えたように見えます)、コントロールのサイズを変更する必要が出てきます。 コントロールのサイズを変更するには、Attach Control Geometryノードのディスプレイグラフを有効にしてから、各コントロールのTransformノードを選択するか、または、一度にすべてのコントロールのスケールを調整できるようにMergeノードの後に新しくTransformノードを接続します。 そして、コントロールが正しいサイズになるようにスケールを調整します。
-
-
Attach Control Geometry ノードのパラメータでは、以下の設定を行ないます:
-
Control Group Name フィールドで、コントロール入力のグループ名を指定します。
-
コントロール入力毎に Controls マルチパラメータを追加します。
-
追加した Controls マルチパラメータ毎に:
-
Group フィールドで、コントロールの取り付け先のポイント(s)を含んだグループを指定します。
Group パラメータの隣にある選択ジオメトリ矢印アイコンでは、ビューポートから Group のスケルトンポイントを選択することもできます。
Tip
Group フィールドに
*を入力すれば、コントロールが入力スケルトン内のすべてのポイントに取り付けられます。 -
Control Name フィールドで、コントロールの
nameアトリビュートを入力します。例えば、head_controlとかhand_l_selectorです。他にも Control Name パラメータのドロップダウンリストでは、コントロールジオメトリ入力のすべての名前が表示されます。
-
例: 複数個の異なるコントロールを定義したAttach Control Geometryパラメータ -
コントロールを使ったキャラクタのポージング
-
Rig Pose ノードを配置して、 Attach Control Geometry ノードの 出力 をその Rig Pose ノードの 入力 に接続します。
-
Rig Pose ノードのパラメータで、コントロールからアクセスさせたくないトランスフォームパラメータをロックします。例えば
head_controlの場合だと、コントロールはRotateパラメータにのみアクセスできるようにして、TranslateとScaleのパラメータにはアクセスさせたくないです。 -
ネットワークエディタで Joint Deform ノードのディスプレイフラグを有効にしてから、 Rig Pose ノードを選択します。
例: ディスプレイフラグを有効にしたJoint Deformノードと選択したAttach Control Geometryノード。Christophe Desse氏によるキャラクタモデル提供 -
ビューポート内でコントロールを選択します。
そのコントロールが取り付けられているジョイント周辺にマニピュレータハンドルが表示されます。
例: 選択したコントロール。Christophe Desse氏によるキャラクタモデル提供 そのコントロールの新しい Transformations マルチパラメータが Rig Pose ノードのパラメータに表示されます。
例: 新しいマルチパラメータによる Rig Pose ノードのパラメータ -
好きなようにジョイントをトランスフォームさせます。
コントロールのターゲットジョイントに加えたトランスフォームの変更は、コントロールのジオメトリから継承されます。 このような方法によって、コントロールを見るだけでジョイントのトランスフォーム状態を常に知ることができます。
例: コントロールを使って頭の回転とスケールを調整。Christophe Desse氏によるキャラクタモデル提供
| See also |