COMPs」カテゴリーアーカイブ

Widget COMP

概要
パラメータ – Layout ページ

COMP共通- Layout ページの章を参照して下さい。

パラメータ – Panel ページ

COMP共通- Panel ページの章を参照して下さい。

パラメータ – Look ページ

COMP共通- Look ページの章を参照して下さい。

パラメータ – Children ページ

COMP共通- Children ページの章を参照して下さい。

パラメータ – Drag/Drop ページ

COMP共通- Drag/Drop ページの章を参照して下さい。

パラメータ – Extensions ページ

COMP共通- Extensions ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。

Engine COMP

概要

Engine COMPは、.toxファイル(コンポーネント)を別のプロセスで実行します。TouchEngine API を使用してこれらのプロセスを管理し、ロードされたコンポーネントとメイン プロジェクトの間でデータを渡します。
Ins and Outs 選択されたコンポーネントのトップレベルの Ins and Outs は、Engine COMP 上の Ins and Outs として公開されます。
カスタム パラメーター トップレベルのコンポーネントのカスタム パラメーターは、エンジン COMP のパラメーターに追加されます。読み取り専用のパラメーターは追加されません。
パラメータは一方向にしか機能しません。ロードされた .tox の中からパラメータを設定することはできません。
制限事項
現在のところ、以下の制限事項があります。

– TOP、CHOP、DATの入出力のみサポートしています。

パラメータ – Engine ページ
Tox File / file

TouchEngineはTouchDesignerの一部としてインストールされ、指定された.toxをロードするには現在実行中のバージョンが使用されます。別のバージョンのTouchEngineを使用したい場合は、.toxと一緒に`TouchEngine`という名前のフォルダに入れてください(別のインストール先へのリンクを使用することもできますので、リンクの名前を`TouchEngine`にしてください)。

Reload / reload

.toxファイルをリロードし、TouchEngineインスタンスを再起動します。

Keep Alive / keepalive

何らかの理由でTouchEngineインスタンスが終了した場合は、再起動します。

Clock / clock

TouchEngineインスタンスへの一時的な接続を設定します。

  • Synchronized / synced
    タイムはEngine COMPとTouchEngineインスタンスの間で厳密に同期されます。
  • Independent / independent
    TouchEngineインスタンスは、自分の内部時計に従って動作します。
Wait for Render / wait

Engine COMPはTouchEngineから遅いフレームをドロップするのではなく、cook中に待機します。

Power / power

TouchEngineインスタンスでのcookをON/OFFします。

In Buffer Auto / inauto

キューイングされた入力フレームの数を自動的に管理することができます。

In Buffer Frames / inframes

TouchEngine インスタンスに渡す以前にキューに入れておく入力フレームの数です。
TouchEngineインスタンスのタイムスライスの潜在的な変動に対応するために、CHOP入力は事前にいくつかのフレームを送信する必要があります。

Out Buffer Auto / outauto

キューイングされた出力フレームの数を自動的に管理します。

Out Buffer Frames / outframes

TouchEngine インスタンスからの受信以降にキューに入れる出力フレームの数。
Engine COMPのタイムスライスの潜在的な変動に対応するために、CHOP出力は先にいくつかのフレームを送信する必要があります。

パラメータ – Extensions ページ

COMP共通- Extensions ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。

Nvidia Flex Solver COMP

概要

Nvidia Flex Solver COMPは、Bullet Solver COMPと同様の物理ソルバーCOMPです。
Nvidia Flexシミュレーションでは、Nvidia Flex Solver COMPは、アクター/ボディ(すなわちActor COMP)が動作する世界/シミュレーションに相当します。Nvidia Flex Solver COMPには、任意の数のアクター/ボディ(Actor COMPs)またはフォースフィールド(Force COMP)が含まれ、その名の通り、Nvidiaの FleX particle physics を使用します。
Nvidia Flex Solver COMPは、いくつかのシミュレーション・パラメータ(パーティクルの半径や凝集力など)に基づいてNvidia Flexシミュレーションを実行し、シミュレーションの進行に合わせて、その中に含まれるActor COMPのトランスフォームを更新します。
Nvidia Flex Solver COMPが参照するActor COMPは、そのネットワーク内にある必要はありません。他のソルバーCOMP(Nvidia FlexまたはBullet)からすでに参照されていなければ、どこにあっても構いません。
注意:Nvidia Flex SolverはNvidia SDKを使用しているため、Nvidia GPUが必要です。macOSは現時点ではNvidia GPUをサポートしていないため、この機能はNvidia GPUを搭載したWindows OSでのみ利用可能です。
Flex、Nvidia Flex TOP、Actor COMP、Force COMP の各章も参照して下さい。

パラメータ – Solver ページ
Actors / actors

シミュレーションに含めるActor COMPを設定します。これらのアクターは、すでに他のソルバーCOMPの一部であってはなりません。

Global Forces / forces

シミュレーションに含めるForce COMPsです。Flexではフォースフィールドのみがサポートされています。

Gravitational Acceleration / gravity

シミュレーション内のすべてのアクターにかかる重力を設定します。(単位:m/s^2)重力は、アクターの質量に関係なく適用されます。

  • Gravitational Acceleration / gravityx
  • Gravitational Acceleration / gravityy
  • Gravitational Acceleration / gravityz
Initialize Sim / init

すべてのボディを初期状態(位置、向き、速度など)にリセットします。これはシミュレーションのステップを開始するものではなく、初期化するだけです。

Start Sim / start

シミュレーションを初期化して実行します。(ステッピングを開始する)

Play / play

シミュレーションを再生します。オンにすると、シミュレーションを段階的に実行しますが、オフにすると一時停止します。

Sample Rate / rate

シミュレーションのサンプルレートです。サンプルレートは1/rateタイムステップに影響します。

Pre-Roll / preroll

シミュレーションのプリロールを有効にします。プリロールは、シミュレーションを任意の開始状態にまで進めるために使用します。プリロールは初期化フェーズで行われます。プリロールの状態についての情報は、ソルバーの Info CHOPのチャンネルを参照してください。

Pre-Roll Simulation Time (Sec) / prerolltime

シミュレーションを開始前に進める時間(秒)を設定します。

Pre-Roll Steps per Frame / prerollstep

プリロール時にTouchDesignerのフレームごとに行うステップ数。例:プリロールのシミュレーション時間が1秒で、プリロールステップが2の場合、プリロールに0.5秒かかります。

Show Pre-Roll / showpreroll

有効にすると、プリロールの結果が Actor COMP に表示されます(つまり、トランスフォームが更新されます)。無効にすると、プリロールが完了するまで Actor COMP は初期状態のままになります。

Number of Substeps / substeps

シミュレーションの1ステップの間に行うサブステップの数を設定します。

Number of Iterations / iterations

各サブステップのイタレーション数を設定します。

Always Simulate / alwayssim

有効にすると、シミュレーションは常に前進します。

Enable Boundaries / bounds

シミュレーションの境界を有効にします。境界線は、バウンディングボックスまたは個々のプレーンで設定できます。

Boundary Mode / boundmode
  • Bounding Box / bbox
    入力されたSOP(Box SOPのorient boundsと同じ)からオリエンテッドバウンディングボックスが計算され、シミュレーションの境界として使用されます。
  • Planes / planes
    個々のプレーン(最大6個)を追加して、シミュレーションの境界を定義することができます。注意:プレーンは直交している必要はありません。デフォルトのプレーンは +Z XY プレーン(Grid SOP と同じ)です。
Bounding Box SOP / bbox

バウンディングボックスの計算に使用されるSOPを設定します。

Plane Rotation 0 / planer0

Rotate the default plane. Default plane is a +Z XY plane (same as Grid SOP).
デフォルトのプレーンを回転させます。デフォルトのプレーンは、+Z XY プレーン(Grid SOP と同じ)です。

  • Plane Rotation 0 / planer0x
  • Plane Rotation 0 / planer0y
  • Plane Rotation 0 / planer0z
Plane Translation 0 / planet0

デフォルトプレーンを移動させます。デフォルトの平面は、+Z XY平面(Grid SOPと同じ)です。

  • Plane Translation 0 / planet0x
  • Plane Translation 0 / planet0y
  • Plane Translation 0 / planet0z
パラメータ – Properties ページ
Particle Radius / radius

シミュレーション内のパーティクルの半径を設定します。注:これはシミュレーション内のすべてのアクターが使用します。

Dynamic Friction / dfriction

動いているパーティクルと静止しているシェイプの間に生じる摩擦力を設定します。

Static Friction / sfriction

動かないパーティクルと静止したシェイプの間に生じる摩擦力を設定します。

Particle Friction / pfriction

パーティクル間の動的摩擦を設定します。

Restitution / rest

パーティクルの反発係数を設定します。

Adhesion / adhesion

パーティクルが当たった表面や形状にどれだけ強く付着するか設定します。

Sleep Threshold / sleepthresh

速度がこのしきい値よりも小さいパーティクルは、動いていないみなされます。

Clamp Speed / clampspeed

速度のクランピングを有効にします。

Max Speed / maxspeed

パーティクルの速度の倍率はこの値に固定されます。

Clamp Acceleration / clampaccel

Enable acceleration clamping.
加速度のクランピングを有効にします。

Max Acceleration / maxaccel

パーティクルの加速度の倍率はこの値に固定されます。

Dissipation / diss

パーティクルの接触回数に応じて、パーティクルの速度にダメージを与えます。

Damping / damping

粘性抵抗力を設定します。パーティクルの速度に比例して逆方向の力がかかります。

Cohesion / cohesion

パーティクル同士の保持力をコントロールします。

Surface Tension / surftension

パーティクルが表面積を最小にしようとする力をコントロールします。

Viscosity / viscosity

XSPHの粘度を用いてパーティクルの速度を滑らかにします。

Buoyancy / buoyancy

流体パーティクルの重力スケールを設定します。

Collision Distance / colldist

パーティクルが形状に衝突したときに維持する距離を設定します。

Shape Collision Margin / scollmargin

シェイプに対する接触判定の際、パーティクルの半径を大きくします。

Smoothing / smoothing

レンダリング用パーティクルのラプラシアン・スムージングの強さをコントロールします。

Vorticity Confinement / vortconf

パーティクルに回転力を与えて渦度を高めます。

Anisotropy Scale / anisoscale

レンダリング用の楕円体に含まれる異方性の度合いを制御します。

Anisotropy Min / anisomin

異方性のスケールを半径のこの分数に合わせてクランプします。

Anisotropy Max / anisomax

異方性のスケールを半径のこの分数に合わせてクランプします。

Enable Diffuse Particles / diffuse

有効にすると、シミュレーションに拡散パーティクルが作成されます。拡散パーティクルの位置/速度は、Nvidia Flex TOPを使用してフェッチすることができます。

Max Diffuse Particles / maxdiffuse

シミュレーション内に同時に存在できる拡散パーティクルの最大数を設定します。注意:最大値が低すぎたり、Diffuse Lifetimeが高すぎたりすると、シミュレーションで必要なパーティクルをすべて作成できない場合があります。ただし、拡散パーティクルの数が多すぎると、パフォーマンスにも影響します。

Diffuse Threshold / diffthresh

運動エネルギー+発散量がこの閾値以上のパーティクルは、新しい拡散パーティクルを産み出します。

Diffuse Buoyancy / diffbuoy

拡散したパーティクルの重力スケールを設定します。

Diffuse Drag / diffdrag

拡散したパーティクルが隣の流体パーティクルの方向に受ける力をスケーリングします。

Diffuse Ballistic / diffball

拡散粒子が弾道と見なされる近傍の数を設定します。

Diffuse Lifetime / difflife

拡散パーティクルが生まれてされてから存続する時間を秒単位で指定します。

パラメータ – Xform ページ

COMP共通- Xform ページの章を参照して下さい。

パラメータ – Pre-Xform ページ

COMP共通- Pre-Xform ページの章を参照して下さい。

パラメータ – Render ページ

COMP共通- Render ページの章を参照して下さい。

パラメータ – Extensions ページ

COMP共通- Extensions ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。

FBX COMP

概要

FBX COMPは、Maya、3DS Max、Cinema4D、HoudiniなどのFBXファイル形式を使用して、ジオメトリ、アニメーション、シーンをインポートします。 FBX COMPは現在、FBX SDKの2019.0バージョンを使用しています。
FBXは、アプリケーション間でモデル、アニメーション、および画像/テクスチャデータを交換するために使用されるオートデスクのファイル形式とライブラリのセットです。 FBX COMPはFBXファイルを読み取り、その機能のほとんどをサポートします。 .fbxをTouchDesignerネットワークにドラッグアンドドロップするか、File > Import File…メニューからインポートできます。 File Typesの章も参照してください。
FBXファイルのアセットは、.toe ファイルと同じ階層に作成されるTDImportCacheフォルダー内のFBXファイルと同じ名前の .tdc ファイルに保存されます。 アセットは、Import Select OP(Import Select TOP / Import Select SOP / Import Select CHOP)を使用して .tdc ファイルから読み取られます。 .toe ファイルをリロードすると、アセットは .tdc キャッシュから直接インポートでき、FBXファイルを再インポートする必要はありません。 ただし、既存の .tdc がない場合(たとえば、toeファイルがコンピューターを変更した場合)、FBXファイルが再度開かれてアセットを取得し、新しい .tdc が保存されます。
FBX COMPでFBXファイルを開くには:
1)FBX Fileパラメーターで.fbx拡張子を持つファイルの名を含む、有効なファイルパスを指定します。
2)このステップは、FBX COMPが作成されたばかりかどうか、およびパラメーターのデフォルト値の変更が必要かどうかによって異なります。 ファイルがネットワークで初めてロードされ、デフォルトのパラメーター値が受け入れられる場合、Import ボタンを押してFBXネットワークを生成し、アセットをインポートします。 Import Method を他のモード(作業が少ない)に変更することをお勧めします。これにより、パフォーマンスが大幅に向上します。 Import ボタン上にあるパラメータを変更するには、ネットワークを再構築する必要があります。
3)Import Method メニューを Merge with Existing に設定すると、Importパルスにより内部アセット(メッシュなど)が再ロードされます。これは、ファイルが別の場所に移動して、.toe ファイルを開いたときに、アセットが見つからず、適切にリロードする場合に特に便利です。
4)Import Method メニューをImport Assets(Import Selects)に設定すると、FBXファイルにいくつかの変更を加えたときにImport ボタンを使用し、それらの変更を再構築せずに現在のネットワークにマージします 。

アニメーション チャンネルチャンネル

FBXファイルにアニメーションがある場合、Playページのコントロールを使用して、アニメーションを初期化、開始、およびガイドします。 また、Info CHOPをFBX COMPに接続して、アニメーションのタイミングを確認します。 Info CHOPチャンネルは、Timer CHOPのチャンネルに似ています。
参照:FBX、Import Select CHOP、Import Select TOP、Import Select SOP、USD COMP

パラメータ – FBX ページ

注:以下のパラメータへの変更は、Build Network または Update のいずれかによってFBXファイルが再構築されるまで適用されません

FBX File / file

インポートするFBXファイルを指定します。

Reload File / reload

既存のネットワークに変更を加えることなく、ファイルからアセットのコンテンツをリロードするパルスを送ります。

Lights / lights

有効にすると、FBX COMPはFBXファイル内のすべてのライトをインポートします。

Cameras / cameras

有効にすると、FBX COMPはFBXファイル内のカメラをインポートします。

Generate Actor COMPs / genactors

有効にすると、Import Select SOPの親としてGeometry COMPの代わりにActor COMPを生成します。 これは、インポートしたジオメトリを使用してBullet Dynamicsシステムを操作するのに便利です。

Merge Geometry / mergegeo

有効にすると、FBX COMPはジオメトリCOMPをマージします。 ジオメトリCOMPは、transform以外のデフォルトパラメータのみがある場合にマージされます。 同じ素材を使用している場合は、Import Select SOPがマージされます。

Merge Level / mergelevel

有効にすると、FBX COMPは目的の level までマージしようとします。 level は、ルート(FBX COMP)からのノード階層のステップ数です。 レベルがマージレベルよりも高く、マージ可能な場合、上の階層にマージされます。

Primitive Groups / primgroups

有効にすると、FBX COMPはマージされた各SOPを独自のプリミティブグループに入れ、必要に応じて後で分割できるようにします。

Max Wired Children / maxwiredchildren

このパラメーターよりも多くの子ノードを持つCOMPは、COMP内部に変換された子ノードを持ちます。 これにより、ペアレントは維持され、ネットワークをクリーンアップできます。

Direct to GPU / gpudirect

ジオメトリをGPUに直接ロードします。

Build Network / buildnetwork

FBXファイルのクリーンインポートを実行します。 上記のパラメーターを使用して、インポートされたファイルからネットワークを構築します。 FBX COMP内にノードがある場合、それらはインポートの前に削除されます。

Keep Parameters / keepparams

有効にすると、更新中にパラメーターが競合すると、ユーザーの変更が保持されます。 無効にすると、パラメーターに対するユーザーの変更が上書きされる可能性があります。

Keep Connections / keepconnections

有効にすると、更新中の配線/接続の競合がユーザーの変更を保持します。 無効にすると、配線/接続に対するユーザーの変更が上書きされる場合があります。

Update / update

上記のパラメーターと上記のマージ条件を使用してFBXファイルをインポートし、現在FBX COMP内にあるネットワークとマージして、変更を維持します。 FBXファイルが変更され、それらの変更をTouchDesignerに反映する必要がある場合、このパラメーターを使用する必要があります。

Callbacks DAT / callbacks

Callbacks DATはインポートまたは更新中に実行され、インポートされたオペレーターと結果のネットワークの変更とカスタマイズが可能になります。

パラメータ – Play ページ

このページには、TouchDesigner内のFBXのアニメーションコントロールパラメーターが含まれています。

Animation / animation

インポートされたFBXから再生するアニメーション名(指定されている場合)を指定します。

Shift Animation Start / shiftanimationstart

インポートファイルに示されているアニメーションの開始位置にアニメーションをシフトするかどうかを指定します。

Sample Rate Mode / sampleratemode

FBXファイルに埋め込まれた File FPS を使用するか、Custom でサンプルレートを設定するかを指定します。

  • File FPS / filefps
  • Custom / custom
Sample Rate / samplerate

上記のSample Rate ModeパラメータがCustomに設定されている場合、サンプルレートを設定します。

Play Mode / playmode

アニメーションの再生方法を指定します。

  • Locked to Timeline / lockedtotimeline
    このモードは、アニメーションの位置をタイムラインにロックします。 タイムラインはアニメーションの位置に直接関連付けられているため、このモードではPlay、Speed、Index、Cue、およびCue Pointパラメーターが無効になります。
  • Specify Index / specifyindex
    このモードでは、ユーザーは以下のIndexパラメーターを使用して、アニメーションの特定のインデックス(位置)を指定できます。 このモードは、アニメーション内の任意の場所へのランダムアクセスに使用します。
  • Sequential / sequential
    このモードは、タイムラインの位置に関係なく継続的に再生されます(Indexパラメーターは無効になっています)。 以下のPlay、Speed、Cue、およびCue Pointのパラメーターが有効になっているため、制御が可能です。 デフォルトはこの値に設定されています。
Initialize / initialize

アニメーションを初期状態にリセットします。

Start / start

アニメーションを初期状態にリセットし、再生を開始します。

Cue / cue

1に設定すると、キューポイントにジャンプして保持します。Play ModeがSequentialの場合にのみ使用できます。

Cue Pulse / cuepulse

パルスを送るとキューポイントにジャンプします。 Play ModeがSequentialの場合にのみ使用できます。

Cue Point / cuepoint

アニメーションのインデックスをジャンプするポイントを設定します。 Play ModeがSequentialの場合にのみ使用できます。

Cue Point Unit / cuepointunit

Cue Pointで使用する単位を選択します。

  • Frames / frames
  • Seconds / seconds
  • Fraction / fraction
  • Index / indices
Play / play

オンのときにアニメーションが再生され、オフのときに停止します。 このアニメーション再生コントロールは、Play ModeがSequentialの場合にのみ使用できます。

Index / index

このパラメーターは、Play ModeがSpecify Indexに設定されている場合に、アニメーションの位置を明示的に設定します。 右側の単位メニューで、次の単位でインデックスを指定できます:インデックス、フレーム、秒、分数(パーセント)

Index Unit / indexunit
  • Frames / frames
  • Seconds / seconds
  • Fraction / fraction
  • Index / indices
Speed / speed

これは、Play ModeがSequentialの場合にのみ機能する速度乗数です。 値1はデフォルトの再生速度です。 値2は倍速、0.5は半速などです。 負の値は逆方向に再生されます。

Trim / trim

Trim StartおよびTrim Endパラメータを有効にします。

Trim Start / tstart

アニメーションのインポイントを設定し、アニメーション開始インデックスをトリミングできるようにします。 右側の単位メニューで、インデックス、フレーム、秒、または分数(パーセンテージ)でこの位置を指定します。

Trim Start Unit / tstartunit

トリムスタートの単位タイプを指定します。 これを変更すると、変更前の単位が選択した単位に変換されます。

  • Frames / frames
  • Seconds / seconds
  • Fraction / fraction
  • Index / indices
Trim End / tend

アニメーションのアウトポイントを設定し、アニメーション終了インデックスをトリミングできるようにします。 右側の単位メニューで、インデックス、フレーム、秒、または分数(パーセンテージ)でこの位置を指定します。

Trim End Unit / tendunit

トリムエンドの単位タイプを指定します。 これを変更すると、変更前の単位が選択した単位に変換されます。

  • Frames / frames
  • Seconds / seconds
  • Fraction / fraction
  • Index / indices
Extend Left / textendleft

アニメーションの開始前のアニメーションアニメーションの動作を指定します(使用されている場合は、開始位置をトリムします)。

  • Hold / hold
  • Cycle / cycle
  • Mirror / mirror
Extend Right / textendright

アニメーションの終了後のアニメーションの動作を指定します(使用されている場合は、終了位置をトリムします)。

  • Hold / hold
  • Cycle / cycle
  • Mirror / mirror
パラメータ – Xform ページ

COMP共通- Xform ページの章を参照して下さい。

パラメータ – Pre-Xform ページ

COMP共通- Pre-Xform ページの章を参照して下さい。

パラメータ – Render ページ

COMP共通- Render ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。

Force COMP

概要

Force COMPは、物理ソルバーのシミュレーションに力を加えるために使用します。Bulletは線形/回転力とインパルスフォースをサポートし(Forceの章を参照)、Flexはフォースフィールドをサポートしています(Force Fieldの章を参照)。

アクティブフォース

アクティブな力を有効にするには、ForceページのActiveトグルパラメータを使用します。
アクティブフォースは、シミュレーションに時間経過とともに適用される力を作り出します。アクティブフォースは、Bullet Solver COMPを参照してグローバルに適用することも、個々のActor COMPを参照してローカルに適用することもできます。アクティブフォースはフレームごとに力を加えるので、1秒かけて加えられる力は、1フレームで加えられる同じ値のインパルス力に相当します。
フォースとトルクのパラメータの単位はニュートン(N)で、kg*m/s^2に相当します。つまり、質量が5kgで初速のないアクターに10Nの力を加えた場合、1秒後のアクターの速度は2m/sとなります。もし、すべてのパラメータが同じで、代わりにインパルスフォースだったとしたら、速度はやはり2m/sになります。しかし、インパルスフォースの速度は瞬間的に変化し、(再度パルスを与えない限り)増加しなくなるのに対し、アクティブフォースでは1秒後も速度は増加し続けます。
質量の中心は、質量のバウンディングボックスの中心と見なされます。デフォルトでは、ボディが拘束されておらず、衝突もしていない場合、Relative Positionパラメータが0以外の値に設定されていない限り、フォースはボディを回転させません。Relative PositionがXで+1に設定されていて、Force がYで+1の場合、ボディはZ軸を中心に反時計回りに回転し、Yで平行移動します。
トルクが Z で +1 に設定されていると、ボディは Z 軸で反時計回りにしか回転せず(正の Z 回転)、平行移動はしません。
特定のボディにフォース/トルクを適用するには、Feedback CHOP(Bullet Solver COMP またはActor COMP の章を参照)とforce[xyz]およびtorque[xyz]チャンネルを使用します。

インパルスフォース

インパルスフォースは、Impulse Force pulseパラメータによって適用されます。
インパルスフォースパルスは、シミュレーションに1フレームの間適用される力を生成します。現実世界では、インパルスフォースは非常に短い時間で適用される力ですが、Bulletではこれをやや単純化して、瞬時に(1フレームの間)適用されます。インパルスフォースの例としては、ボールを蹴ったり、大砲を撃ったりすることが挙げられます。インパルスフォースによって、影響を受けた体の速度は一瞬で変化し、その瞬間以降は、再び力を加えない限り、その力は影響を受けなくなります。
インパルスフォースを加えた後のボディの結果としての速度は、アクティブな力を正確に1秒間加えた場合、同じ値のアクティブな力と同じになります。例えば、質量5kgの物体に10Nのインパルス力を加えた場合、結果として得られる速度は10N / 5kg * 1sec = 2m/sとなります。

フォースフィールド

フォースフィールドは、Force FieldページのActiveパラメータで有効になります。フォースフィールドは、Radiusパラメータで定義された半径を持つ球形です。正の力は物体を外側に押し出し、負の力は物体を内側に引き寄せます。
Flex、Bullet Dynamics、Bullet Solver COMP、Actor COMP、Constraint COMP、Bullet Solver CHOP、Nvidia Flex TOP、Nvidia Flex Solver COMPの各章も参照してください。

パラメータ – Force ページ
Active / active

シミュレーションでのアクティブフォースのオン/オフを切り替えます。

Force / force

適用されるリニアフォース(ニュートン)を設定します。

  • X / forcex
  • Y / forcey
  • Z / forcez
Relative Position / relpos

ボディの中心(注:質量の中心ではなく、物体の物理的な中心)に対して、直線的な力を加える位置です。相対的な位置がゼロでないと、トルクが加わって体が回転することになります。

  • X / relposx
  • Y / relposy
  • Z / relposz
Torque / torque

The rotational force in Newtons that will be applied.
適用される回転力(ニュートン)を設定します。

  • X / torquex
  • Y / torquey
  • Z / torquez
Impulse Force / impulse

上記のパラメータで1フレーム分のシミュレーションにインパルスフォースを与えます。

パラメータ – Force Field ページ
Active / ffactive

シミュレーションにおけるフォースフィールドのオン/オフを切り替えます。

Strength / strength

フォースフィールドの強さを設定します。正の強さはボディを外側に押し出し、負の強さはボディを内側に引き寄せます。

Radius / radius

フォースフィールドの半径を設定します。

Linear Falloff / falloff

中心からの距離に応じて、フォースフィールドの強さに線形のフォールオフを適用します。

パラメータ – Extensions ページ

COMP共通- Extensions ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。

Constraint COMP

概要

Constraint COMPは、Actor COMPのセット内のボディの動きをコンストレイントするために使用されます。現在、これはいくつかの方法で行うことができます:point to point、hinge、slider。コンストレイント は、1つのボディにも、2つのボディの間にも適用できます。コンストレイントは、ボディ間のコネクティビティを生み出すため、または、動くことはできるがその動きを何らかの方法で制限する必要があるボディを生み出すために使用することができます。現実世界でのコンストレイントの例としては、電車、ドア、腕などがあります。
point to point コンストレイントが1つのボディに適用された場合、そのボディは3自由度(DOF)に制限されます。回転に関する3つの自由度(すなわち、3軸すべて)は維持されますが、移動に関する3つの自由度はすべて制約されます。もし、2つのボディの間に点から点へのコンストレイントが適用されると、2つのボディは同様に3自由度に拘束されます。ただし、3軸すべての移動(平行移動)が可能ですが、それはピボットポイントで連結された状態で行われます。この拘束方法を使うことで、ボディの連鎖を作ることができます。例えば、point to point コンストレイントを利用して、列車の車両が互いに接続されている状態をシミュレートすることができます。
hingeコンストレイントが1つのボディに適用された場合、そのボディは他のボディに対して1DOFに制限されます。その軸はConstraint COMPのAxisパラメータを使って定義されています。Point to Pointコンストレイントと同様に、ヒンジもまた、回転するピボットポイントとして機能します。2つのボディの間にhingeコンストレイントが適用されると、2つのボディは3自由度で動くことができますが、ピボットポイントで互いに接続された状態で動くことになります。しかし、2つのボディはそれぞれの軸の周りを回転することしかできません。hingeコンストレイントの最も簡単な例はドアです。
sliderコンストレイントが1つのボディに適用された場合、そのボディの移動/回転はその軸だけに制約されます。言い換えれば、ボディはその軸に沿って(どちらの方向にも)しか移動できず、その軸に沿って(どちらの方向にも)しか回転できません。
Bullet Dynamics、Bullet Solver COMP、Actor COMP、Force COMP、Impulse Force COMP、Bullet Solver CHOPの各章も参照して下さい。

パラメータ – Constraint ページ
Active / active

シミュレーションでの拘束のオン/オフを切り替えます。

Type / type

作成するコンストレイントのタイプを設定します。

  • Point To Point / p2p
  • Hinge / hinge
  • Slider / slider
Body to Body / bodytobody

Body to Bodyモードのオン/オフを切り替えます。Body to Bodyモードは、2つのボディ(Actor 1 BodiesとActor 2 Bodies)の間にコンストレイントを作成します。オフにすると、ボディを個別に拘束します。Actor 1 BodiesとActor 2 Bodiesに同じ数の参照ボディがある場合、このモードはそれぞれのペアの間にコンストレイントを作成します。
例えば、Actor 1 Bodiesに文字列「0 1 2」が含まれており、Actor 2 Bodiesに文字列「3 4 5」が含まれている場合、3つのコンストレイントが発生します。0->3, 1->4, 2->5.この2つのパラメータの間には1対1の関係があります。しかし、Actor 1 BodiesがActor 2 Bodiesよりも多くのボディを持っている場合、Actor 1 Bodiesの残りのマッチしていないボディは、代わりに個別にコンストレイントを受けることになります。例えば、Actor 1 Bodiesが文字列「0 1 2」を含み、Actor 2 Bodiesが文字列「3 4」を含む場合、ボディ間に2つのコンストレイントが作られます。ボディ2は個別にコンストレイントされます。Actor 2 BodiesがActor 1 Bodiesよりも多くのボディを含む場合、Actor 2 Bodies内のマッチしないボディは単に無視されます(それらに対してコンストレイントは作成されません)。

Collisions between Bodies / collisions

ボディとボディの間のコリジョン(衝突)をオン/オフします。

Display Constraint / dispcom

ビューアでのコンストレイントガイドの表示をオン・オフします。

Actor COMP / actor1

Actor COMPへの参照です。コンストレイントしたいActor COMPを指定します。

Actor Bodies / bodies1

コンストレイントするアクター1のボディのIDのリスト(正規表現)です。Actor COMPにN体のボディが含まれている場合、ボディIDはそのActor COMPの0からN-1までとなります。ボディの数はBullet Solver のCHOPを使って確認できます。

Pivot / pivot1

コンストレイントするピボット・ポイントを設定します。

  • X / pivot1x
  • Y / pivot1y
  • Z / pivot1z
Hinge Axis / axis1

ヒンジとなる軸を設定します。各値は通常、0から1の間の数値です。例えば、Z軸を中心に回転させたい場合は、0、0、1を設定します。

  • X / axis1x
  • Y / axis1y
  • Z / axis1z
Slider Rotation / sliderrot1

sliderコンストレイントの軸の回転を設定します。デフォルトでは、sliderコンストレイントはX軸に適用されます。

  • X / sliderrot1x
  • Y / sliderrot1y
  • Z / sliderrot1z
Actor COMP / actor2

Actor COMPへの参照です。コンストレイントしたいActor COMPを指定します。このActor COMPは、body to bodyモードがトグルされているときにのみ使用されます。

Actor Bodies / bodies2

コンストレイントするアクター2のボディのIDのリスト(正規表現)です。Actor COMPにN体のボディが含まれている場合、ボディIDはそのActor COMPの0からN-1までとなります。ボディの数はBullet Solver HOPを使って確認できます。

Pivot** / pivot2

コンストレイントするピボット・ポイントを設定します。

  • X / pivot2x
  • Y / pivot2y
  • Z / pivot2z
Hinge Axis / axis2

ヒンジとなる軸を設定します。各値は通常、0から1の間の数値です。例えば、Z軸を中心に回転させたい場合は、0、0、1を設定します。

  • X / axis2x
  • Y / axis2y
  • Z / axis2z
Slider Rotation / sliderrot2

sliderコンストレイントの軸の回転を設定します。デフォルトでは、sliderコンストレイントはX軸に適用されます。

  • X / sliderrot2x
  • Y / sliderrot2y
  • Z / sliderrot2z
パラメータ – Limits ページ
Enable Limits / enablelimits

コンストレイントの制限を有効にします。制限がなければ、ボディは360度フル回転したり、任意の距離を移動することができます。

Lower Linear Limit / lowerlinlim

制約に沿ったボディの移動の下限値を設定します。sliderコンストレイントでのみ使用されます。

Upper Linear Limit / upperlinlim

制約に沿ったボディの移動の上限値を設定します。sliderコンストレイントでのみ使用されます。

Lower Angular Limit / loweranglim

ボディの軸周りの回転の下限値を設定します。sliderコンストレイントやhingeコンストレイントで使用される。

Upper Angular Limit / upperanglim

ボディの軸周りの回転の上限値を設定します。sliderコンストレイントやhingeコンストレイントで使用される。

パラメータ – Extensions ページ

COMP共通- Extensions ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。

Bullet Solver COMP

概要

Bullet Dynamicsシステムでは、Bullet Solver COMPはアクター/ボディ(Actor COMPなど)が動作する世界/シミュレーションに相当します。Bullet Solver COMPは、アクター/ボディ(Actor COMP)やフォース(ForceCOMP/Impulse Force COMP)を任意の数だけ含み、その名の通りBullet Physics APIを使用してシミュレーションを実行します。
Bullet Solver COMPは、いくつかのシミュレーションパラメータ(線形乗数や角度乗数など)に基づいてBulletシミュレーションを実行し、シミュレーションの進行に合わせて、その中に含まれるアクターCOMPのトランスフォームを更新します。シミュレーションは、COMP上のパラメータを使って、一時停止、スローダウン、スピードアップ、再開することができます。
Bullet Solver COMPのシミュレーションは真空中で行われるため、シミュレーション中のアクターに空気抵抗はかかりません。シミュレーションは指定されたサンプルレートでステップされ、それに応じてアクターCOMPのトランスフォームが更新されます。これらのトランスフォームは、Bullet Solver CHOPで表示される結果と同じです。
Bullet Solver COMPが参照するActor COMPは、そのネットワーク内にある必要はありません。他のBullet Solver COMPから参照されていなければ、どこにあっても構いません。
以下の章も参照してください。Bullet Dynamics、Actor COMP、Force COMP、Impulse Force COMP、Constraint COMP、Bullet Solver CHOP。

パラメータ – Solver ページ
Actors / actors

シミュレーションに含めるActor COMPを設定します。これらのアクターは、他のBullet Solver COMPで指定されていてはなりません。

Global Forces / forces

シミュレーションに含めるForce COMPを設定します。これらのフォースはグローバルな力であり、シミュレーション内のすべての非静的なアクターに適用されます。

Gravitational Acceleration / gravity

シミュレーション内のすべてのアクターにかかる重力を設定します。(単位:m/s^2)重力は、アクターの質量に関係なく適用されます。

  • X / gravityx
  • Y / gravityy
  • Z / gravityz
Dimension / dimension

シミュレーションのディメンションを設定します。このメニューのオプションは、Linear/Angular Multiplierパラメーターを使って再現することもできます。

  • 1D / 1d
    アクターはX軸の直線速度のみに制約され、角速度はありません。(linmult 1,0,0、angmult 0,0,0)
  • 2D / 2d
    アクターは、XY平面上の直線速度のみに制約され、角速度はZ軸周りのみに制約されます。(linmult 1,1,0、angmult 0,0,1)
  • 3D / 3d
    アクターは制約を受けず、どの方向にも動くことができます。同様にあらゆる方向に回転することができます。 (linmult 1,1,1 and angmult 1,1,1)
Linear Multiplier / linmult

シミュレーション内のアクターの線形速度を表す乗数を設定します。例えばlinmultが(0, 1, 1)の場合、アクターはY軸とZ軸方向には通常の速度で直線的に移動できますが、X方向には移動できません。これらの値は、内部でディメンションからの値と掛け合わされます。例えば、ディメンションが2Dで、linmultが(0, 1, 1)の場合、2DはZ軸に制約があり、このパラメータはY軸に制約があるため、アクターが動ける方向はY軸のみです。

  • X / linmultx
  • Y / linmulty
  • Z / linmultz
Angular Multiplier / angmult

シミュレーション内のアクターの角速度の乗数を設定します。例えば、angmultが(1, 0, 0)の場合、アクターはX軸でのみ回転することができます。これらの値は、内部的にdimensionの値と掛け合わされます。つまり、dimensionが2Dでangmultが(1, 0, 0)の場合、アクターはどの方向にも回転できません。2Dでは回転がZ軸にしか制約されず、このパラメータではX軸にしか制約されないからです。

  • X / angmultx
  • Y / angmulty
  • Z / angmultz
Initialize Sim and Collision Shapes / initall

すべてのボディを初期状態(位置、向き、速度)にリセットし、コリジョンシェイプを再作成します。このパラメータは、各Actor COMPの「Initialize Actor」をパルスするのと同じです。コリジョンシェイプの作成には時間がかかる場合がありますので、必要がない場合は、代わりに Initialize Sim を使用してください。コリジョンシェイプの作成に使用されたSOPが変更された場合や、インスタンス化OPが変更された場合は、コリジョンシェイプを再作成する必要があります。

Initialize Sim / init

すべてのボディを初期状態(位置、向き、速度など)にリセットします。これはシミュレーションのステップを開始するものではなく、初期化のみを行います。注意:これはActor COMPのコリジョンシェイプをリセットしません。上記の Initialize Sim and Collision Shapes または Actor COMP の Initialize Actor を使用してください。

Start Sim / start

シミュレーションを初期化して実行します。(ステッピングを開始する)

Play / play

シミュレーションを再生します。オンにするとシミュレーションを再生しますが、オフにすると再生しません。(一時停止します)

Sample Rate / rate

シミュレーションのサンプルレートを設定します。サンプルレートは1/rateタイムステップに影響します。

Simulation Speed / simspeed

シミュレーションの速度です。タイムステップの大きさに対する乗数で、シミュレーションを遅くしたり、速くしたりします。

Feedback CHOP / feedback

Bullet Solver CHOPの章を参照してください。 フィードバックする CHOP を設定します。Bullet Solver COMPは、CHOPからトランスフォームやベロシティのチャンネルを受け取り、次のシミュレーションステップの最初に、それぞれのアクタのトランスフォームやベロシティを上書きします。
チャンネル値を変更していないBullet Solver CHOPをフィードバックすると、何も上書きされていないので、シミュレーションは通常通り行われます。これにより、以下の例のようなことが可能になります。たとえば、シミュレーション内のすべてのアクタのベロシティをネガティブにするには、Bullet Solver CHOPをSwitch CHOPに入れて、2番目の入力をベロシティチャンネルをネガティブにしただけの同じCHOPにします。次にボタンパルスをスイッチインデックスにエクスポートして、Switch CHOPをFeedback CHOPパラメータに入れます。すると、ボタンが1フレーム押されたとき(パルス状)に、ベロシティが上書きされてネガティブになります。フィードバックに必要なチャンネルは、actor_id と body_id チャンネルだけで、他のチャンネルはすべてオプションです。チャンネル名はすべてBullet Solver CHOPと同じにしてください。Bullet Solver CHOPで出力されるチャンネルに加えて、フォースとトルクも使用できます。チャンネル名は force[xyz] と torque[xyz] です。注:スケールはフィードバックには使用できません。

Perform Contact Test / contacttest

シミュレーション内のすべてのボディに対して接触テストを有効にします。接触テストはBullet Solver CHOPのcollidingおよびtotal_collisionsチャンネルに使用されます。このパラメータを有効にしないと、これらのチャンネルの値は更新されません。NOTE: ボディの数が多いと接触テストに時間がかかることがあります。

Always Simulate / alwayssim

この機能を有効にすると、Bullet Solver COMPはすべてのフレームをシミュレート(つまりcook)します。

Callbacks DAT / callbacks

pythonのコールバックを持つDATへの参照です。利用可能なコールバックは、onCollision(solverComp, collisions)、onFrameStart(solverComp)、onFrameEnd(solverComp)、onInit(solverComp)、onStart(solverComp)です。
これらのコールバックを持つDATは、Bullet Solver COMPの作成時に自動的に作成され、参照されます。
onCollision(solverComp, collisions)は、発生したすべてのコリジョンのリストを渡し、Perform Contactテストを有効にする必要があります。
collisionsは、名前の付いたタプル(bodyAとbodyB)のリストです。
bodyAとbodyBは衝突に参加している2つのボディです。bodyAとbodyBはPythonのBodyオブジェクトです(Bodyクラス参照)。

パラメータ – Xform ページ

COMP共通- Xform ページの章を参照して下さい。

パラメータ – Pre-Xform ページ

COMP共通- Pre-Xform ページの章を参照して下さい。

パラメータ – Render ページ

COMP共通- Render ページの章を参照して下さい。

パラメータ – Extensions ページ

COMP共通- Extensions ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。

Actor COMP

概要

Actor COMPは、物理システムのボディ(複数可)に相当します。Actor COMPは、物理ソルバー(Bullet Solver COMPまたはNvidia Flex Solver COMP)と組み合わせて使用する必要があり、物理ソルバーは、アクター/ボディが動作するワールド/シミュレーションに相当します。Actor COMPは、シミュレーション内の力の影響を受けず、動かない(つまり、質量が無限大)静的なものと、力によって動き、ワールド内の他のボディ(静的または動的)と衝突する動的なものがあります。
以下の各章も参照してください。Flex、Bullet Dynamics、Bullet Solver COMP、Force COMP、Constraint COMP、Bullet Solver CHOP、Nvidia Flex Solver COMP、Nvidia Flex TOP。

使用方法
バレットアクター

静的物体は凹形状でも凸形状でもよいのですが、動的物体は凸形状でなければなりません。しかし、動的なコリジョンシェイプは複合的に構築することができます。つまり、凹型のコリジョンシェイプは、動的なケースでは、凸形状を組み合わせて作成することができます。これは複数のSOPを使って構築ことができます。各SOPは凸形状である必要がありますが、SOPの組み合わせは凸形状である必要はありません。Automaticモードを選択すると、これらのSOPから複合コリジョンシェイプが作成されます。
Actor COMP内のすべてのボディには、対応するコリジョンシェイプがあります。コリジョンシェイプは、オブジェクト同士がどのように衝突するかを決定するもので、ビューア/レンダーで表示されるものが必ずしもコリジョンシェイプと一致するわけではないことに注意する必要があります。
コリジョンシェイプは、SOPを使って作成されます。Collision SOPs パラメータを使用するか、Actor COMP自体の中にSOPを入れることで作成されます。Collision SOPs パラメータにパスが設定されている場合、Actor COMPはそのパスにある全てのSOPから単一のボディを作成します(パスがCOMPの場合は、COMP内の全てのSOPを再帰的に取り込みます)。Collision SOPs パラメータに何も記入されていない場合、Actor COMPは自身の中のdisplayフラグとrenderフラグの両方がオンになっているSOPを自己内部で再帰的に検索します。
Actor COMPでは、これらのSOPから1つのボディとそれに対応するコリジョンシェイプを作成します。
SOPからコリジョンシェイプを作成する際には、いくつかのオプションがあります。これらのオプションは、Collision Shape パラメータから選択できます。例えば、Oriented Bounding Box というオプションは、選択されたSOPの周りに最小体積のバウンディングボックスを作成します。
複数のボディを作成するには、Actor COMPの Instance ページにあるインスタンシングを使用します。これにより、それぞれが同一のコリジョン形状を持つ同一のボディがいくつでも作成されます。現在のところ、1つのActor COMPで複数の非同一ボディを作成する方法はありません。
ボディは Initialize Actor パラメータを使用して初期化されるため、ボディを作成するSOPに変更があった場合は、Actor COMPを再初期化する必要があります。ボディは、Kinematic State、Shape、またはCenter of Massが変更されると、自動的に再初期化されます。
トランスフォームは、Geometry COMPやCamera COMPと同様に、XformおよびPre-Xformページを使用してActor COMPに適用できます。XformおよびPre-Xformページのトランスフォームは、シミュレーションにおけるアクターの初期トランスフォームを作成しますが、シミュレーション中にアクターのトランスフォームを変更するのにも使用できます。どちらのページでもスケールを変更すると、コリジョンの形状自体が変更されるため、アクターの再初期化が必要になります。インスタンス化中にいずれかのトランスフォームを変更すると、自動的にアクターが再初期化されます。
Actor COMP はネストできませんが、Actor COMP を Geometry COMP の中にネストすることは可能で、その逆も可能です。Actor COMP がネストされた Geometry COMP は、スケールトランスフォームを持つことができませんが、Actor COMP の中にネストされた Geometry COMP は、スケールを持つことができます。Geometry COMP の中にネストされた Actor COMP は、初期化されたときにのみそのトランスフォームを使用します。したがって、これらのGeometry COMPのトランスフォームを変更した場合は、Actor COMPの再初期化が必要になります。

フレックスアクター

Flexのアクターは、流体パーティクル、流体パーティクルエミッター、または静的形状のいずれかになります。
Flexの静的形状は、Bulletでの凹型(つまり静的)形状と同じ方法で構築されます。静的形状は、そのコリジョン形状を構築するためにTriangle mesh SOPを必要とします。ただし、ボックス/球のコリジョンシェイプオプションを使用して、コリジョンシェイプSOPのバウンディングボックス/球を作成することもできます。
流体パーティクルは、Bulletアクターのインスタンス化と同じように動作します。流体パーティクルの数は、インスタンスOPから作成されるインスタンスの数と同じです。インスタンスパラメータはパーティクルに初期トランスフォームを与えるために使用されますが、シミュレーションが実行されると、トランスフォームはシミュレーション結果から更新されます。
流体パーティクル Actor COMPの主な違いは、Nvidia Flex Solver COMP上のシミュレーションパラメータによって流体パーティクルのサイズや挙動が定義されるため、流体パーティクルを作成するためのSOPが必要ないことです。Actor COMP内のSOPを使用して、パーティクルの位置をレンダリング/表示することができます。また、Nvidia Flex TOPを使用してパーティクルの位置をフェッチすることもできます。
流体エミッタは、エミッションポイント(Actor COMPのトランスフォーム)でシーンにパーティクルを追加します。パーティクルはエミッショ ンの最大値に達するまで追加されますが、その時点でエミッショ ンパーティクルは既存のパーティクルからリサイクルされます。

Actor COMPの使用方法

Actor COMPを作成する際には、いくつかの重要な確認事項があります。

  • アクターはBullet、Flexのどちらかのシミュレーションに使われるか?
    BulletアクターとFlexアクターには多くの共通点がありますが、機能的には異なるため、すべてのパラメータが重複するわけではありません。Bulletに特化したパラメータはActor COMPのBulletページを、Flexに特化したパラメータはActor COMPのFlexページを参照してください。
  • ボディは動くか?
    動いているボディのKinematic StateはDynamicでなければなりません。Staticボディは、その位置をオーバーライドすることで「動く」ことができますが、クリッピングが起こりやすく、衝突が正しく行われない(ボディに運動量がないため)ので、これはお勧めできません。
  • コリジョンシェイプを作成するためにどのSOPを使用するか?
    すべての Actor COMPには、SOPで作成したコリジョンシェイプを持ちます。SOPはCollision SOPsパラメータで設定できますが、パラメータが設定されていない場合は、Actor COMP内のSOPのdisplay/renderフラグで設定されます。
  • どのような形状のコリジョンシェイプを使用するか?
    集められたSOPを使ってコリジョンシェイプを作成します。コリジョンシェイプにはそれぞれ長所と短所があり、その概要はBullet Dynamicsの章に記載されています。コリジョンシェイプは、ボディが他のボディとどのように相互作用するか(つまり衝突するか)を決定します。コリジョンシェイプは、本来の表示/レンダリングされているものとは必ずしも一致しません。コリジョンシェイプは、Display Collision Shapeトグルを使って表示することができます。
  • 凹形状のコリジョンシェイプは?
    コリジョンシェイプが凹形状で静的な場合は、ドロップダウンメニューからConcaveを設定するだけです。コリジョンシェイプが凹形状で動的な場合は、凸型に分解する追加のステップがあります。コリジョンシェイプは、複合コリジョンシェイプ(凸型のコリジョンシェイプを組み合わせたグループ)でなければなりません。複合するシェイプの各部分は凸型ですが、組み合わせると凹型にもなります。例えば、複合シェイプの各部分が1つのSOPで表現される、「T 」という文字を例に考えてみよう。「T」は凹形状なので、上の線と下の線の2つの別々の凸形の部分に分割する必要があります。2つのSOPを作成し(各ラインに1つずつ)、それらを組み合わせて完全な凹形状の「T」を形成するコリジョンシェイプにします。しかし、「T」が静止している場合は、1つのSOPのままで問題ありません。
ボディが衝突しない?

2つの物体が衝突しない理由を解明するには、Bulletシミュレーションが離散的であることを理解することが重要です。速度、位置、拘束、衝突などは、連続的にではなく、フレームごとに計算されます。Bulletの場合、衝突は1フレームの最初と最後に計算されます。これはどういうことかというと、ボディが毎フレーム大きな距離を移動している場合、衝突が計算されるフレームの最初と最後で衝突が判定されず、他のボディを切り抜ける可能性があるということです。これと同じように、オブジェクトが非常に薄い場合、他のボディは奥行きのあるものよりも簡単に切り抜ける可能性があります。
Continuous collision detection(パラメータ参照)は、動きのベクトルに沿って(フレームの開始/終了の間)衝突検出を行なって、フレームの開始/終了の間に発生する衝突を捕捉することで、この問題を解決します。これは直線速度の速いボディには非常に有効ですが、角速度の速いボディにはあまり有効ではありません。
ボディのすり抜けを修正するために、他にもいくつか変更すべき点があります。

1. 手動でボディの速度を制限したり、加える力の強さを下げたりする。
2. 非常に薄いコリジョンサーフェスに厚みを追加します。衝突面として Grid SOP を使用している場合は、代わりに Box SOP を使用することを検討してください。また、Box SOPをコリジョンシェイプとして使用し、その中にボディを入れるような場合は、6つの個別のBox SOP(箱の各面に1つずつ)を組み合わせてコリジョンシェイプを作ることを検討してください。

パラメータ – General ページ
Initialize Actor / init

Actor COMP内のすべてのボディのコリジョンシェイプを再作成します。また、すべてのベロシティとポジションをデフォルトの状態にリセットします。Initialize Actorは、コリジョンシェイプを作成するために使用するSOPに変更があった場合や、インスタンス化するためのOPに変更があった場合にイニシャライズ パルスを送信する必要があります。

Update Collision Shape / updatecs

有効にすると、Actor COMPはコリジョンシェイプを自動的に更新します。これは Collision SOP や Collision Shape のパラメータが変更された場合や、コリジョンシェイプを作成するために使用するSOPが変更された場合(クック数が増加した場合など)に発生します。

Update Collision Shape / updatecspulse

これをクリックすると、瞬時にコリジョンシェイプが更新されます。

Active / active

アクターのオン/オフを切り替えます。アクターがアクティブであれば、シミュレーションの進行に合わせて更新されます。しかし、非アクティブの場合は、シミュレーションから削除され、他のアクター/ボディと衝突しなくなります。その結果、トランスフォームも更新されなくなります。

Kinematic State / kinstate

kinematic Stateは、Actor COMP が外力で動くかどうかを設定します。オブジェクトがDynamicであれば、シミュレーションの中で動かすことができますが、Staticであれば動かすことはできません。

  • Static (Infinite Mass) / static
    COMPのボディは、シミュレーションでは動かすことができません。
  • Dynamic (Finite Mass) / dynamic
    COMPのボディは動くことができます。
Collision SOPs / sops

コリジョンシェイプに使用するSOPまたはCOMPを指定します。SOP を参照した場合は、その SOP だけがコリジョンシェイプに使用されます。COMP を参照した場合は、その中にあるすべての SOP(再帰的)がコリジョンシェイプに使用されます。このパラメータを空白にした場合、選択されるSOPはActor COMP内のdisplay/render フラグがオンになっているすべてのSOPになります。

Collision Shape / shape

選択されたSOPから作成するコリジョンシェイプのタイプを設定します。コリジョンシェイプはActor COMPのビューアーでガイドを使って見ることができます

  • Concave (Static only) / concave
    すべてのSOPから凹形状のコリジョンシェイプを作成します。静的な Actor COMPにのみ使用できます。凹形状のコリジョンシェイプの作成に使用するSOPは、3または4頂点のポリゴンのみでなければなりません。動的なActor COMPでこのモードを選択すると、代わりに複合形状が作成されます。
  • Convex Hull / convex
    すべてのSOPから凸包を作成します。凸包とは、他のすべての点(ここではSOPのポイント)を囲む点の集合であり、これらの点から作られる形状は凸形状です。凸包のポイントは、元の点の集合(つまりSOPのポイント)の点となります。
  • Oriented Bounding Box / obb
    SOPの周囲に体積が最小になるような向きのバウンディングボックスを作成します。
  • Axis-Aligned Bounding Box / aabb
    XYZに軸を合わせたSOPの周囲にバウンディングボックスを作成します。(回転しないようにします。)
  • Bounding Ellipsoid / bellipsoid
    SOP の周りに最小体積の境界楕円体を作成します。
  • Bounding Sphere / bsphere
    SOPの周りに最小体積の境界球を作成します。Bounding Ellipsoid との違いは、すべての半径が同じ(XYZ)であることです。
  • Compound / compound
    複合コリジョンシェイプとは、他の複数のコリジョンシェイプで構成されたコリジョンシェイプのことです。Actor COMPが静的な場合は、凹形状と同じ結果になります。Actor COMPが動的な場合は、各SOPがそれぞれの凸包に作成され、その後これらがすべて1つの複合コリジョン・シェイプに統合されます。このモードでは、複数の凸状のSOPを使って動体の凹状のコリジョンシェイプを作成することができます。
Ellipsoid Tolerance / elltol

最小体積の外接楕円体の許容範囲。言い換えれば、どれだけ最適解に近いかということです。

Infinite Mass / infinitemass

アクターに無限の質量を与えます。オブジェクトが動的な場合、これは動かせない静的なものになります。Infinite Massをオンまたはオフにしても、Kinematic Stateパラメータの変更とは異なり、コリジョンシェイプの再現は必要ありません。

Mass / mass

アクターの質量(キログラム)を設定します。

Cue Velocity / cuevel

直線速度と角速度を保持し、linvelとangvelで与えられる値を保持します。このオブジェクトは、シミュレーション内の他のボディと衝突します。

Cue Pulse / cuevelpulse

直線速度と角速度を Linear Velocity と Angular Verocity で指定された値をパルス送信します。これにより、次のフレームの開始時に、速度が指定された値に設定されます。

Linear Velocity / linvel

アクターの初期直線速度(単位:m/s)。このパラメータは、シミュレーション中にアクターの線形速度を変更するためにも使用できます。また、Cue Velocity および Cue Velocity Pulse パラメータと組み合わせて使用します。

  • Linear Velocity / linvelx
  • Linear Velocity / linvely
  • Linear Velocity / linvelz
Angular Velocity / angvel

アクターの初期角速度(単位:度/秒、単位:m/s)。このパラメータは、シミュレーション中にアクター の角速度を変更するのにも使用できます。さらに、Cue Velocity および Cue Velocity Pulse パラメータと組み合わせて使用することもできます。

  • Angular Velocity / angvelx
  • Angular Velocity / angvely
  • Angular Velocity / angvelz
パラメータ – Bullet ページ
Forces / forces

ローカルフォースのリストで、このアクターにのみ適用されるフォース(Force COMPなど)を意味します。

Use Global Gravity / globalgrav

Bullet Solver COMPの重力(グローバル)を使用するか、独自のローカル重力を使用するかの設定します。

Gravitational Acceleration / gravity

アクターのローカル重力を設定します。(単位:m/s^2)アクターがBullet Solver COMPのグローバル重力を使用していない場合(上記の Use Global Gravity パラメータがオフになっている場合)にのみ適用されます。

  • Gravitational Acceleration / gravityx
  • Gravitational Acceleration / gravityy
  • Gravitational Acceleration / gravityz
Friction / friction

アクターの動摩擦を設定します。2つのボディが擦れる/滑る間の抵抗です。全体の摩擦は、2つのボディが触れているときの積です。例えば、一方のボディの摩擦が0で、もう一方のボディの摩擦が1の場合、2つのボディの間の全体的な摩擦は0となります。

Rolling Friction / rollfric

アクターの転がり摩擦を設定します。ある物体(球体や円錐体など)が別の物体の上を転がるときの抵抗/引きずりです。

Restitution / rest

アクターの反発係数を設定します。返還係数とは、2つのボディ/アクターが衝突したときの、最終的な相対と初期の相対の比率です。言い換えれば、反発とは、衝突後に保存される運動エネルギーの割合です。2つの物体が100%(つまり1)の返還率で衝突した場合、両方の体は衝突した時と同じ速度で互いに跳ね返ることになります。

Continuous Collision Detection / ccd

このアクターの連続的なコリジョン検出をオン/オフします。通常、衝突検出は離散的に行われます。つまり、フレームの最初と最後に衝突が確認されます。しかし、ボディの速度が速すぎると、1フレーム内での移動距離が大きくなり、サーフェイスをすり抜けてしまいます (つまり、コリジョンが検出されない)。連続的な衝突検出では、この問題を改善するために、フレーム内のボディの初期位置と最終位置の間の間隔で衝突検出を行います。連続的な衝突検出はパフォーマンスに影響を与えるため、このパラメータをオンにしても常に使用されるわけではありません。ある速度閾値以上で動いているボディに対してのみ使用されます。

Display Guide / dispguide

COMPビューアーでのコリジョンシェイプの表示をトグルします。

Center of Mass / com

コリジョンシェイプの重心を指定します。質量中心とは、ボディが回転するポイントのことです。質量中心は、Actor COMPのビューアのガイドを使って見ることができます。赤色の軸で表示されます。

  • Center of Mass / comx
  • Center of Mass / comy
  • Center of Mass / comz
Feedback CHOP / feedback

フィードバック元となるCHOPを設定します。Actor COMP は CHOP からトランスフォームとベロシティのデータ(詳しくはBullet Solver CHOP の章を参照)を読み込んで、次のフレームの最初に現在の値を上書きします。このパラメータとBullet Solver CHOPでフィードバックループを作ることができます。Bullet Solver CHOP の章を参照してください。注意: スケールをフィードバックすることはできません。 force[xyz]および torque[xyz]を使用して、特定のボディにフォースを加えることができます。

パラメータ – Flex ページ
Flex Type / flextype

Flexアクターのダイナミックのタイプを設定します。

  • Fluid / fluid
    流体アクターです。パーティクルの数は、インスタンスの入力数によって決まります。
  • Fluid Emitter / fluidemit
    流体エミッターのアクターです。パーティクルの数は、エミッターのサイズとスピードに比例して増えていきます。最大値に達すると、パーティクルは既存のパーティクルからリサイクルされます。
Enable Emission / emit

有効にすると、Actor COMPはパーティクルを放出します。

Emission Size / emitsize

2Dエミッショングリッドのサイズです。サイズはエミッショングリッドの各辺のパーティクル数を表します。例えば、2×5のエミッションサイズでは、幅2パーティクル、高さ5パーティクルのグリッドを発光します。

  • Emission Size / emitsizex
  • Emission Size / emitsizey
Emission Speed / emitspeed

パーティクルがエミッターから出る速度を設定します。

Max Emission Particles / emitmax

Actor COMP内のパーティクルの最大数を設定します。この数に達すると、パーティクルの排出はActor COMP内の既存のパーティクルをリサイクルして行われます。

Position Feedback TOP / flexposfb

位置をフィードバックするためのTOPを設定します。TOPには、シミュレーションでポジションを上書きして使用される、ポジションデータをエンコードする必要があります。テクスチャデータは、Flex TOPのポジションテクスチャに対応するように読み込まれます。

Velocity Feedback TOP / flexvelfb

速度をフィードバックするためのTOPを設定します。TOPには、シミュレーションでベロシティを上書きして使用される、ベロシティデータをエンコードする必要がある。テクスチャデータは、Flex TOPのベロシティテクスチャに対応するように読み込まれます。

パラメータ – Xform ページ

COMP共通- Xform ページの章を参照して下さい。

パラメータ – Pre-Xform ページ

COMP共通- Pre-Xform ページの章を参照して下さい。

パラメータ – Instance ページ

COMP共通- Instance ページの章を参照して下さい。

パラメータ – Instance 2 ページ

COMP共通- Instance 2 ページの章を参照して下さい。

パラメータ – Instance 3 ページ

COMP共通- Instance 3 ページの章を参照して下さい。

パラメータ- Render ページ

COMP共通- Render ページの章を参照して下さい。

パラメータ – Extensions ページ

COMP共通- Extensions ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。

COMP共通- Xform ページ

パラメータ – Xform ページ

Xformパラメータページは、ワールド空間でのオブジェクトコンポーネントのトランスフォームを制御します。

Transform Order / xord

このパラメーターのメニューを使用すると、コンポーネントのトランスフォームの順序を指定できます。トランスフォームの順序を変更すると、ブロックを進んで東に曲がるのと、東に曲がってブロック進むのでは、別の場所に移動するように、移動する場所が変更されます行列の数学用語では、「右側の乗算ベクトル」(列ベクトル)規則を使用すると、Scale、Rotate、Translateの変換順序はT * R * S * Positionとして記述されます。

  • Scale Rotate Translate / srt
  • Scale Translate Rotate / str
  • Rotate Scale Translate / rst
  • Rotate Translate Scale / rts
  • Translate Scale Rotate / tsr
  • Translate Rotate Scale / trs
Rotate Order / rord

このオプションをクリックすると表示される回転行列により、コンポーネントの回転順序を設定できます。 Transform Order(上記)と同様に、コンポーネントの回転順序を変更すると、コンポーネントの最終位置が変更されます。 Rx Ry Rzの回転順序は、次のように最終的な回転行列を作成します `R = Rz * Ry * Rx`

  • Rx Ry Rz / xyz
    R = Rz * Ry * Rx
  • Rx Rz Ry / xzy
    R = Ry * Rz * Rx
  • Ry Rx Rz / yxz
    R = Rz * Rx * Ry
  • Ry Rz Rx / yzx
    R = Rx * Rz * Ry
  • Rz Rx Ry / zxy
    R = Ry * Rx * Rz
  • Rz Ry Rx / zyx
    R = Rx * Ry * Rz
Translate / t

3つのフィールドでは、3つの軸のいずれかに沿った移動量を指定できます。これらのフィールドに値を直接入力する代わりに、ビューポートのコンポーネントを選択して移動状態で操作することにより、値を変更できます。

  • X / tx
  • Y / ty
  • Z / tz
Rotate / r

3つのフィールドでは、3つの軸のいずれかの周りの回転量(度単位)を指定できます。これらのフィールドに値を直接入力する代わりに、ビューポートのコンポーネントを選択おして回転状態で操作することにより、値を変更できます。

  • X / rx
  • Y / ry
  • Z / rz
Scale / s

3つのフィールドでは、3つの軸に沿った不均一なスケーリングを指定できます。 これらのフィールドに値を直接入力する代わりに、ビューポートのコンポーネントを選択してスケーリング状態で操作することにより、値を変更できます。

  • X / sx
  • Y / sy
  • Z / sz
Pivot / p

ピボットポイント編集フィールドを使用すると、コンポーネントがスケーリングおよび回転するポイントを設定できます。 コンポーネントのピボットポイントを変更すると、コンポーネントで実行されるトランスフォームに応じて異なる結果が生成されます。
たとえば、スケーリング操作中に、コンポーネントのピボットポイントが「-1、-1、0」にあり、コンポーネントを「0.5」(サイズを50%縮小)スケーリングする場合、コンポーネントは ピボットポイントに向かって拡大縮小し、左下にスライドするように見えます。

上記の例では、異なるピボットポイントを持つコンポーネントで実行された回転で異なる結果を生成します。

  • X / px
  • Y / py
  • Z / pz
Uniform Scale / scale

このフィールドを使用すると、3つの軸に沿ってコンポーネントのサイズを均一に変更できます。

Note:

一般的に、カメラのチャンネルのスケーリングは推奨されません。 ただし、そうする場合で、縮尺が関係している場合、レンダリングされた出力はビューポートに可能な限り一致します。

Constrain To / constrain

オブジェクトの位置を、このパラメーターで指定されている他のオブジェクトに拘束することができます。

Look At / lookat

LookAtさせたいコンポーネントの名前を設定することで、コンポーネントの向きを決めることができます。 コンポーネントをLookAtするように設定すると、コンポーネントを動かしても、設定したコンポーネントを直面し続けます。 これは、カメラが別のコンポーネントの動きを追跡する場合に便利です。 Look Atパラメーターは、コンポーネントを他のコンポーネントの原点に向けます。

Tip:

シーンに表示されないカメラの注視点を指定するには、Nullコンポーネントを作成し、そのdisplayフラグを無効にします。 次に、新しく作成されたNullコンポーネントにカメラをペアレント化し、Look Atパラメーターを使用してこのコンポーネントを向くようカメラを設定します。 Nullコンポーネントを選択状態に移動することにより、カメラを向けることができます。 カメラとNullコンポーネントの両方を表示する場合は、Nullコンポーネントの表示フラグを有効にし、TouchDesignerウィンドウの右上隅にあるアイコンのいずれかをクリックして、追加のビューポートで選択状態を使用します。

Look At Up Vector / lookup

Look Atを指定する場合、lookatのアップベクトルを指定できます。 アップベクトルを使用しないと、lookatコンポーネントがターゲットコンポーネントのY軸を通過するときに、アニメーションがフリップする可能性があります。

  • Don’t Use Up Vector
    look atするコンポーネントがターゲットコンポーネントのY軸を通過しない場合、このオプションを使用します。
  • Use Up Vector
    これにより、コンポーネントの回転を正確に定義できます。 指定したアップベクトルは、Look Atと平行にしないでください。 以下のアップベクターを参照してください。
  • Use Quaternions
    クォータニオンは、3D回転の数学的な表現です。 この方法は、球上のある点から別の点に移動する最も効率的な手段を導き出します。
Path SOP / pathsop

このコンポーネントが移動するパスとして機能するSOPを指定します。 たとえば、カメラが沿うスプラインパスのSOP名を設定することができます。

制作のヒント:
パスに沿ったスムーズなモーションを作成する場合-コンポーネントをアニメーションパスに追従させるのは簡単です。 ただし、NURBSカーブをパスとして使用する場合、コンポーネントがパスに沿って移動すると、予期せずに移動が高速化および低速化することがあります。 これは、CVの間隔が不均等であるためです。 そのような場合は、Resample SOPを使用して、曲線に沿って等間隔になるようにCVを再配置します。 ただし、パスカーブがアニメーションする場合、Resample SOPの使用で処理が遅くなる可能性があります。
別の方法は、Basis SOPをパスカーブに追加して、Uniform Curveに変更することです。 このようにして、コンポーネントは曲線の下を均一に移動し、Resample SOPと不要に生成されるポイントは必要なくなります。

Roll / roll

角度コントロールを使用すると、コンポーネントがパスに沿ってアニメートする際のコンポーネントの回転を指定できます。

Position / pos

このパラメーターを使用すると、パスに沿ったコンポーネントの位置を指定できます。 このパラメーターに入力できる値の範囲は0〜1で、0はパスの開始点、1はパスの終了点です。 スライダーでは、パスに沿った複数の「パス」に対して最大10の値を使用できます。

Orient along Path / pathorient

このオプションを選択すると、コンポーネントはパスに沿って配置されます。 コンポーネントの正のZ軸は、パスを下向きにしています。

Orient Up Vector / up

コンポーネントの方向を決めるとき、アップベクトルを使用して、正のY軸が指す方向を設定します。

  • X / upx
  • Y / upy
  • Z / upz
Auto-Bank Factor / bank

Auto-Bank Factorは、現在の位置でのパスの曲率に基づいてコンポーネントをロールします。 オートバンキングをオフにするには、バンクスケールを「0」に設定します。

COMP共通- Render ページ

パラメータ- Render ページ

コンポーネントのマテリアルとレンダリング設定を制御します。

Material / material

ジオメトリに適用するMATを選択します。

Render / render

コンポーネントのジオメトリがRender TOPに表示されるかどうか。 このパラメーターは、コンポーネントのRenderフラグと連動(論理AND)します。

Draw Priority / drawpriority

コンポーネントが描画される順序を決定します。 大きな値の後に(上に)小さな値が描画されます。

Pick Priority / pickpriority

Render Pick CHOPまたはRender Pick DATを使用する場合、Search Areaを設定するオプションがあります。 Search Area内で複数のオブジェクトが見つかった場合、pick priorityを使用して、あるオブジェクトを別のオブジェクトよりも優先して選択させることができます。 低い値よりも高い値が選択されます。 これは、描画順序、または同じピクセル上で互いに描画されるオブジェクトには影響しません。 ピクセルごとに1つのピックのみが表示されます。

Wireframe Color / wcolor

R、G、Bフィールドを使用して、ワイヤフレームシェーディングモードで表示されるときのコンポーネントの色を設定します。

  • Red / wcolorr
  • Green / wcolorg
  • Blue / wcolorb
Light Mask / lightmask

デフォルトでは、Render TOPで使用されるすべてのライトはジオメトリレンダラーに影響します。 このパラメーターを使用して、この特定のジオメトリに使用するライトのサブセットを指定できます。 ライトは、Render TOPにリストする必要があります。