Tips

Syflex for modoのパラメータ

Syflex for modo のよく使うパラメータの覚え書きです。他のソフトでもだいたい同じように動くと思います。

 

Syflexとは

SyflexはModo、Maya、3ds Max、LightWave、Cinema 4D、Softimageなど様々なプラットフォームにリリースされてるクロスシミュレータプラグインです。2001年に公開された映画ファイナルファンタジーで使用されたクロスシミュレータの技術が元になった製品です。

ソフトは古い時代の作りのままなので少し使い勝手はよくない所もありますが、高速で比較的安定したシミュレーションを行うことができます。

 

メリット
  • シミュレーションの計算速度が速い。
  • シミュレーション結果が比較的安定している。震えが発生しにくい。
  • modo内でシミュレーションできる。
デメリット
  • サブフレームの計算ができない。速い動きでり抜けが発生しやすい。
  • ホストアプリケーションとの統合が弱い。例えばモーフなどデフォーマリストの前の変形を考慮しない。
  • シミュレーションキャッシュをファイル保存する必要があるのがやや面倒。
  • 恐らくMarvelous Designerの方がシミュレーション安定してそう(使ったことない)。

 

デフォーマリストはsyClothでシミュレーション後のメッシュをスケルトンやモーフ変形できるけど、スケルトン変形した後にsyClothでシミュレーションすることができません。

 

Softimageでは標準機能のクロスシミュレーションとしてSyflexを搭載していました。完全に同じものではありませんが、シミュレーションの注意点などSoftimageのマニュアルも参考になると思います。

http://docs.autodesk.com/SI/2015/JPN/#!/url=./files/GUID-1A8166A7-7768-42FC-8A6A-D4CC9913F845.htm

 

仮想のバネ

Syflexはmodoのソフトボディと同じくstretch、shear、bendの3つの仮想のバネを使用して計算します。

 

パラメータの設定が同じでもメッシュの細かさによってクロスの伸縮が若干変わります。今回テストに使用したのは正方形1メートル、Subdivision 6のメッシュです。

 

 

Syflexのパラメータ

 

syCloth

クロスシミュレーションに必須のノードです。

mass

クロス オブジェクトの質量です。単位はグラム。

•綿(シャツ) 100
•フリース(パーカー) 250
• デニムジーンズ) 500

 

stiff

バネの硬さです。3つのバネ、stretch、shear、bend全体の硬さを設定します。
一般的な値の範囲は0.1〜10。20、30など10以上の値の場合は変かが少なくなる。

 

damp

バネのダンピング係数です。クロスの振動を抑えることができます。
一般的な値の範囲は0.00001〜0.1。0.1以上の値を設定すると計算が遅くなります。0.5以上は変化が少ない。stretch、shear、bendの値に応じて設定を変える必要があります。

 

stretch

ポリゴンメッシュのエッジに沿ったバネです。 stiffの値を基準にしたバネの強さです。
1.0=100%=stiffという感じらしい。

 

shear

ポリゴンメッシュの対角線状のバネです。stiffの値を基準にバネの強さを設定します。
stretch、shear、bendの順番で値を小さく設定するといいらしく、bendとのバランスが重要なようだ。

 

bend

頂点を 1 つおきにつないだバネです。stiffの値を基準にバネの強さを設定します。

 

 

syDamping

移動速度を低下させるダンピング フォースです。空気抵抗や水中での動きっぽくなる。

damp

 

syNail

クロスをウェイトマップで固定するフォースです。トランスフォームにオブジェクトやロケーターに接続することで固定箇所を移動できるようになります。
同様のフォースにsyPinがありますが、syNailはアイテムへの「位置コンストレイント」で、syPinは変形するメッシュに固定する「ジオメトリコンストレイント」という違いがあります。

dist

固定する頂点の距離です。0は完全に固定、0以外にすると仮想のバネが作られて吊された状態になります。

 

stiff

固定する頂点のバネの硬さです。distが0以上の場合に動作します。
stiffの値を上げても頂点を完全に固定することができないので、頂点を完全に固定したい場合はdist 0に設定したNailフォースをもう一つ追加するといいです。

 

damp

バネのダンピング係数です。振動を抑えます。

 

map

Nailの影響をウェイトマップで指定します。

画像左はリニアフォールオフを使ってウェイトを設定したもので、画像右はリニアフォールオフのイーズアウトを使用してウェイトに偏りを持たせた設定です。

 

syCollideMesh

メッシュと衝突させるフォースです。

friction

摩擦係数です。一般的な値の範囲は0~1。

 

damp

接触している頂点の移動を減速させます。

 

sticky

濡れた布がひっつくような設定になります。

 

envelopeExt

衝突オブジェクトからの距離を指定します。単位はメートル。

 

envelopeInt

衝突判定の反応エリア距離です。単位はメートル。envelopeIntの範囲に頂点が入るとenvelopeExtの距離だけ押し戻します。
マニュアルには高速移動時には値を小さくした方がよいと書かれてますが、envelopeIntの値が小さいと速い移動でCollisionがすり抜けてしまうようです。逆に値が大きすぎてシミュレーション開始時に衝突オブジェクトと重なった状態だと計算が不安定になります。

 

sySelfCollision

クロス自身の衝突です。計算に時間がかかるのと震えが止まらない。

 

syVolume

体積維持するフォースです。風船のような閉じたオブジェクトで機能します。

pressure

オブジェクト内の圧力です。パラメータの単位はわからないですが100で元の形状を維持するように見えます。

 

volume

volume単体で値を上げても効果がなくpressureと併用して使います。
volume 3、pressure 100にするとサイズが3倍なってるように見えます。

 

damp

オブジェクトの移動速度が遅くなります。

 

 

syPinの使用方法

Syflexはフォースの設定方法が少し複雑です。毎回Pin追加に失敗するので画面キャプチャしました。

  • 頂点選択(アイテムを選択してると追加に失敗する) + syClothモディファイヤ選択 + メニューからAdd Pin

 

 

Syflexは専用プラグインなので当然ですがmodo標準のソフトボディよりクロス表現に適してます。セルフコリジョンの計算はそれなりに時間が掛かり、クロスが折り重なる場合はdampの値を10以上に設定しても頂点の震えを抑えるのが難しいことがあるようです。

syWindも試そうかと思いましたが単純なメッシュでも布が極端に柔らかくなる現象に遭遇てしまい、安定して動かすのがちょっと困難なのであきらめました。サンプルファイルだとちゃんと動いてるのですが、新規シーンに適用しようとするとクロスが暴れてしまいます。たまに上手く動くんですけどね。

Modo Tips



 

記事のまとめページ

コメントを残す