☆qlSimulator
qlSimulatorノードは実際にシミュレーションするにあたってコアとなるノードです。
qlSimulatorノードは次の三つのカテゴリに分類されるアトリビュートを持っています。
#—————Material Property
●Density:質量。
([g/cm^2] 3乗じゃなくて2乗なのに注意。立体ではなく面で考えるということ。
体積当たりの質量ではなく、面積当たりの質量ってこと。単位面積当たりの質量。
つまり現実の物質に近い密度を入れても、その物質のような挙動にはならないということかな?)
推奨設定範囲は:0.01(軽い)~0.1(重い)
デフォルトは0.01
●Stretch Resistance:伸縮の堅さ
伸びたり、圧縮されたりすることに対抗する力かな。
推奨範囲:10.0~1000.0
デフォルト、100.0
●Stretch Damp:エネルギーを分散させ、ストレッチを弱める力。
推奨範囲:0.01~0.1
デフォルト:0.01
●Bend Resistance:曲がりやすさ
布の曲がりに対する抵抗力
推奨範囲:0.01~1.0
デフォルト:0.1
●Bend Damp:曲がるエネルギーを分散させて弱める
推奨範囲:0.001~0.01
デフォルト:0.001
●Bend Yeild:塑性変形前のYeild限界
指定角度以前だと、ゴムのように曲がる。
もし、外部から力が加わらなければ、曲がることはない。
これに反して、もし変形角が、リミットを超えると、折り目がつく。
レスト角度は変形角度に変わる。
●Bend Yeild:シワのつく角度
塑性変形前のYeild限界
(物体に力を加えて変形させ,外力がある一定値を超えるとき,外力を除去した後に残る永久的な変形。)
(つまりシワ)
plastic deformation:塑性変形
指定角度以前だと、ゴムのように曲がる。
もし、外部から力が加わらなければ曲がることはない。
これに反して、もし変形角がリミットを超えると、折り目がつく。
そしてレスト角度はその折り目の変形角度に変わる。
その場合、もし外力が加わらなくともその角度は0ではなく、曲がったままである
設定可能範囲:0.0~180.0
デフォルト:0.0
●Bend Plasticity:値が高いとシワができる。
クロスが曲がる力を弱める力。
この要素は、シワの量に影響する。
もしこの値が0の場合、シワは出来ない。
値を上げると、より多くのシワが発生する。
設定可能範囲:0.0~1.0
デフォルト:0.0
●Air Drag:Airフィールドの影響の強さ(空気抵抗とか?)
Airフィールドがアタッチされていない場合、単純に面の法線方向に沿ってDampingします。
Airフィールドがアタッチされている場合、Airフィールドの強さに影響を与えます。
推奨設定範囲:0.01~1.0
デフォルト:1.0
●Viscous Damp:粘性を弱める力、等方性のダンピング力、空気抵抗?
全方向に対する、クロス頂点の動きを弱める力。
初めに服の形を決める(dress-up, relaxation)の際に有効
推奨範囲;0.0~0.1
デフォルト0.0
●Friction:摩擦
この値は、自身の摩擦力に影響を与えます。
self-Friction
推奨範囲:0~10.0
デフォルト:0
●Gravity:重力(cm/s^2)
推奨範囲:無制限
デフォルト:(0, -980, 0)
●Hysteresis Name:クロスのBending hysteresisを格納したファイル名。
hysteresis:現在加えられている力だけでなく、過去に加わった力にも依存して変化する。
両端のレスト角は、シミュレーション中に発達する(なんのこっちゃ?)
シミュレーションで作られたレスト角を再利用したい場合、qualothメニューの”Save Hysteresis”ボタンを押すといいよ。
#————— Simulator Attributes
●Active:シミュレーションのON/OFF
●Simple Sub-sampling:
このフラグはフレームのサブサンプリング法についてのものです。
Simple sub-samplingはコリジョンオブジェクトやコンストレイントなどの
インプットデータをすべてリニア補完します。
このフラグがオフの場合、すべてのインプットデータは、actual fractional sub-framesとして評価されます。
Simple sub-samplingはパフォーマンスがよい。
しかし、インプットオブジェクトが高速で回転するような場合は、オフにした方がより正確な結果が得られる。
ボーンまたはオイラー角を使用したリグによりスキニングされたコリジョンオブジェクトの場合、コリジョンオブジェクトは整数フレームではなめらかなデフォームを生成するが、小数点フレームではなめらかなデフォームを生成しない場合があります。それは、Mayaのオイラージョイント角の補完方法によるものです。
その場合、simple sub-sampling方を使用することで、問題が解決するかもしれません。
●Frame Samples:サブフレームの分割数。
コリジョンの精度を上げたい時など、この値を上げて下さい。
推奨範囲:1~10
デフォルト:1
●Time Scale:Maya Timu unitのスケール係数
もしMayaのタイムnunitが24FPSの時、1unitは1/24秒に相当します。
しかしながら、もしTime Scaleが3に設定された場合、qlSimulatorは1フレームを1/72秒と解釈します。
つまり、qlSimulator nodeにとってフレームレートが3倍の扱いを受けるのです。
推奨範囲;1~10
デフォルト:1
●Length Scale:Mayaの長さunitの係数
もし、Mayaのユニットサイズがcmなら、1ユニットは1cmに相当します。
もし、Length Scaleを100に設定したらば、qlSimulatorでは1ユニットを1mと解釈します。
もしあなたが、1cm×1cmの正方形を作ってそれを1m×1mとして扱いたいならば、Length Scaleを100.0と設定します。
デフォルト:1.0
●Max CG Iteration:共役勾配法の最大反復回数?
とても堅い質感のものを作りたい時はこの値を上げます。
デフォルト100
●Show Vertex Status:色で頂点の状態を表します。
デフォルトはOFF
Blue;コリジョンオブジェクトと接している
Green:他の頂点か面に近接している
Red:そのセルフコリジョンは適切に解析できない
——————-
●Consistent Damping / Reference Frame Samples
フレームサンプルが大きくなるにつれ、クロスの動きはDampされて弱くなるように見える、(Sample damping paramerterのように)
この現象は内部のダイナミクスシミュレーションアルゴリズムに起因するものです。
このDampingの不一致を解決するために、”Consistent Damping”フラグをONにして、”Reference Frame Samples”の値を設定します。
例えば、Material ParametersのFrame Samplesを5に設定していたとして、それを10に増やした方がよい精度が得られるとします。その場合、damping の挙動を同じにしておくために、”Reference Frame Samples”を5に設定しておく必要があります。
●Acceleration Scale:
このパラメータは、ワールド座標でクロスノードの親のTransformの加速度をスケールします。
これはクロスソルバがローカルスペースで動いている場合にのみ、こうかを発揮します。
ローカルスペースでのシミュレーションの場合、親の挙動による内部フォースをこのパラメータで制御することができます。
現在、移動加速度のみ扱っている。回転の加速度は扱っていない。
●Velocity Scale:
Acceleration Scaleの速度版。
このパラメータは、ワールドスペースの速度をスケールします。
これはClothソルバがローカルスペースで動いている場合にのみ、影響します。
親Transformの速度はローカルスペースで動くClothのAir dragに影響します。
●Post Sim Script:
毎フレームシミュレーション後に呼ばれるスクリプト名。
このスクリプトは、キャッシュデータの再利用中は呼ばれません。
#————— Collision Attribute
●Self Collision:セルフコリジョンの有効
●Self Recovery:自己交差の修復。このオプションは”non-manifold メッシュ”では働きません。
●Self Continuous:セルフコリジョンの精度のための、近接テストを継続します?
●Override Proximity Criterion, Proximity Criterion
近接基準は、メッシュの解像度から自動で設定されます。
ユーザーはこのアトリビュートで、近接基準をオーバーライドすることができます。
このパラメータはセルフコリジョンが有効の場合のみ、利用することができます。
また、大きな値はシミュレーションスピードの低下につながります。
薄いクロスメッシュでのシミュレーション結果をラップする場合、この値を上げた方がラップ後のメッシュの自己交差を軽減することができると思います。
●Proximity Force :直訳=接近の力
頂点どうしの反発する力かな
クロスの頂点がお互いに近づきすぎた場合、反発する。
この値はほとんどの場合、ユーザーが調整する必要はありません。
推奨設定範囲;10.0~100.0
デフォルト:10.0
●Solid Collision:クロスとソリッドの間のコリジョンを解決します。
●Sharp Featrue:ソリッドのシャープな部分を検出して、適切なレスポンスを返します。ー>つまり尖がりも考慮した布の挙動が可能だと。
●Sharp Feature Force:クロスとシャープなソリッドどうしの反発する力
これは、”Sharp Feature”がONの場合にのみ有効です。
有効設定範囲;10.0~100.0
デフォルト:10.0
●Override Contact Threshold, Contact Threshold:
クロスの頂点がこの閾値よりもコリジョンオブジェクトに近い場合、頂点はコリジョンオブジェクトに触れているとみなされます。
デフォルトでは、この値は、ソルバによって自動的に決められます。
しかし、その値をオーバーライドすることによってユーザーが設定することも可能です。
#————— Goal Shape Attributes
●Activate Goal Shape: ゴールシェイプを有効にします。
●Attracting Method:(直訳:ひきつける方法)
ゴールシェイプに引きつける力のタイプ
・Vertex Spring:クロスの頂点とそれに対応するメッシュの頂点はリニアなスプリングでコネクトされます
・Wind Control :クロスの頂点は、ゴールシェイプコントローラによって作られたWindフィールドによってゴールにひきつけられます。
・Hard Constraint: クロスの頂点は、対応するメッシュの頂点にコンストレインされます。
●Goal Stiffness:ひきつける力の強さ
●Goal Damping:ひきつけによる移動を弱める。
●Enable Force Limit, Goal Force Limit:
attraction forceはここで指定した値以下に制限されます。
引きつけによる動きを自然に見せる場合、この制限を使うといいよ。
●Goal Blend Weight:ゴールのウェイト
デフォルト:0
Note:ウェイトによってブレンドされた結果は、キャッシュファイルには保存されません。
●Cache Auto Save : このフラグがOFFの場合、ユーザーが保存ボタンを押したときにだけキャッシュファイルが一つ作られます。
このフラグがONの場合、毎フレームシミュレーションするごとにキャッシュファイルが作成されます(沢山?)
このフラグは、キャッシュファイルを一つ作成するときにだけ使います。
●Start Time: シミュレーションのスタートフレーム
●Cache Read Interval:連続したキャッシュファイルフレーム間隔。
新しいフレームをシミュレーションした時、この値は常に1に設定されます。
この項目は、Single-file formatキャッシュにのみ有効です。
●Cache Name:キャッシュファイルの名前。(single-file format cache)
キャッシュファイル名が指定されていない場合、一時キャッシュファイルが作成されます。
しかし、それはクロスがシーンから削除されれば消えます。
直接キャッシュファイル名をタイプすることで、そのキャッシュファイルが作られます。
一時キャッシュファイルは、以下の場所に格納されています。
(Linux) : /var/tmp/tmp*.qlc
(Windows) : %SystemDrive%:Documents and Settings%userID%Local SettingsTemptmp*.qlc
●Per Frame Cache Folder, Per Frame Cache Name:
このアトリビュートが記述されると、ソルバはSingle-fileフォーマットのかわりにper-frameフォーマットキャッシュファイルを使用します。
キャッシュファイル作成時に、フレームナンバーがキャッシュファイル名に付与されます。
例:foo.0001, foo.0002, foo.0003・・・
●Cache Subframes:per-frameキャッシュのサブフレーム分割数。
もし、1以上の値を設定した場合、キャッシュのサブフレームが作成されます。
例えば、3と設定した場合、per-frameキャッシュファイルの名前は次の用になります。
foo.0001, foo.0001.33, foo.0001.67, foo.0002, foo.0002.33, foo.0002.67・・・
☆qlProperty
qlPropertyはマテリアルプロパティを格納しており、qlPatternノードに適応されます。
☆qlConverter
このノードは、通常のMayaポリゴンメッシュデータをqlSimulatorでシミュレートできるデータに変換します。
●Preserve Wrinkle:レスト角の三角(しわ?)は初期の3Dシェイプから計算されます。なんのこっちゃ。
デフォルトはTrue
●Metaric from UV:レスト角の三角(しわ)は現在のUVマップから計算されます。
デフォルトはFalse
☆qlDiscretizer
このノードはPatternやSeamデータをqlSimulatorでシミュレーション可能なメッシュデータに変換します。
●Resolution:三角分割の解像度。20は1メートルのカーブが20のセグメントに分割される解像度、ということ。
☆qlPattern
平面上のNurbsカーブで定義されたPattern
●Resolution Scale:qlDiscretizerのグローバル解像度に対する、相対解像度の係数。qlPatternの分割数。
●UV Angle:UとV方向に回転する。
●U Scale:PatternのU方向のrest Lengthの係数。???
●V Scale:PatternのV方向のrest Lengthの係数。???
●Flip Normal:生成されたポリゴンの法線方向を反転する。デフォルトでは、法線方向はPattern作成時に初めに選択されたカーブの方向で決められる。
☆qlSeam
二つのカーブで定義されたSeam。
●Crease Angle:Seamのクリース角度。
●Invert Seam Direction:Seamの法線方向を反転させる
☆qlCollider
このノードはコリジョンオブジェクトとクロスにコネクトされます。
●Active:コリジョンの有効/無効
●Friction:コリジョンオブジェクトの摩擦係数
推奨設定範囲:0~1000
デフォルト0
●Priority:クロス頂点が二つ以上のコリジョンオブジェクトに接触した場合、優先度の最も高いコリジョンオブジェクトが計算され、その後二番目に高いコリジョンオブジェクトが計算される。
●Offset:コリジョンオブジェクトとクロスとの最小距離(cm)
このパラメータの単位はセンチメートルです。
したがって、この値はクロスやコリジョンオブジェクトの次元(単位?)と合うように設定しなければなりません。
オフセットされて表示されているメッシュは、Colliderによって作られます(?)
それは初期状態で非表示されており、名前は”qlCollider#Offset”
このメッシュを表示することによって、どの程度オフセットされているか確認することができます。
●Offset Map:オフセットのスケール係数マップ
●Collision Map:コリジョンするかしないかのマップ
●Friction Map;colliderの摩擦係数マップ
●Priority Map;優先度のマップ。有効範囲は0~1。
各頂点は小数点以下の優先度を持つことができるので、それで他の頂点との優先度の違いを出す。
※マップをペイントするためには、Offset Mesh(qlCollider#Offset)を表示して、右クリック、paint -> qoCollider -> xxxxxMap
※コリジョン範囲を設定するために色分けしてペイントすることができます。あるカラーで塗られたCollider offset meshの頂点があるとして、それにコリジョン出来るのは同じ色で塗られたクロスオブジェクトだけです。
このノードは二つのクロス頂点にコネクトされるか、もしくは一つのクロス頂点とアンカーポイントにコネクトされます。
●Vertex Index 1,2 :クロスの頂点インデックス
●Rest Length:外から力が加わっていない場合の、二つの頂点の距離。
●Stretch Stiffness:伸びる力の柔らかさ?
●Compression Stiffness:縮む力の柔らかさ?
コメント