イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

Unity clothの使い方メモ

++クロスを使うときのblender側でのウェイトの塗り方

以下のように固定する部分のみHipボーンなどに赤で塗り、揺らす部分はウェイトを塗らないようにする。

f:id:arumogina:20210820140857p:plain

 

++cloth側でのウェイトの塗り方

edit cloth constraintsを押して、出てきたウィンドウの中からselectを選択する。

そしたらメッシュの頂点が球体として強調表示され、その球体を範囲選択出来るようになる。範囲選択したらウィンドウのMax Distance,Surface Penestrationの左側にチェックを入った状態で、右側の枠に数値を入力することでウェイトを塗ることが出来る。Unityのシーン画面のどこかで適当にクリックを行い、範囲選択を解除することでウェイトが反映される。

(便宜上、ウェイトを言ってるが正確にはウェイトではない

 

++fbxファイルを差し替えた場合、clothのウェイトはリセットされてしまう。

unityでメッシュを差し替えたいとき、現在のFBXファイルを削除して同名の新しいFBXファイルを置けばメッシュを差し替えらえれるのだが、これをやるとclothのウェイトが初期化されてしまう。

 

++clothを使うときはオブジェクトの拡縮を1:1:1にする必要がある。

でないと、爆発する。

blender側でトランスフォーム適用すればよい。

 

++++パラメタ説明

 

++max distance

頂点が元の位置から移動できる最大の距離。単位はメートル。

スカートの付け根など固定する部分は赤(0)にする。

固定する部分以外のところは0.5~1で全体塗ればいい気がする。

 

++Surface Penestration

頂点の法線の反対方向に移動できる距離。

法線方向には制限しない。

単位はメートル。

0以上にするとメッシュの形が崩れるので0が良いかもしれない。

 

 

++Stretching Stiffness

メッシュの伸びにくさ。小さいほど伸びやすくなる。

0.8から始めると調整しやすい。

 

++Bending Stiffness

メッシュの曲がりにくさ,捻じれにくさ。小さいほど曲がりやすくなる。

0.8から始めると調整しやすい。

 

++Use Tethers

有効化すると頂点が元の位置から離れ過ぎないようになる。

true推奨。

 

++Use Gravity

有効化すると、重量が働くようになる。

true推奨。

 

++Damping

速度の減衰係数。各頂点の揺れの収束が早くなる。

0.1~0.5推奨。

 

++External Acceleration

クロスに外部から一定に加えられる加速度を設定します。

 

++Random Acceleration

クロスに外部からランダムに加えられる加速度を設定します。

 

++World Velocity Scale

ワールド空間でのキャラクターの動きがクロスの頂点にどのくらい影響を与えるかを設定します。

0.1以下が安定する。

 

++World Acceleration Scale

ワールド空間でのキャラクターの加速がクロスの頂点にどのくらい影響を与えるかを設定します。

0.1以下が安定する。最初、やたらあらぶるのはデフォルトでこれが1になってるせい。

 

 ++friction

コライダーとの摩擦係数。コライダーと引っ掛けたいなら1にする。

 

++Collision Mass Scale
各頂点の質量。布の重さの表現に使う。20から試すと良い。

 

++Use Continuous Collision
高速で動く物体に対しての接触判定の精度が上がります。

計算量は2倍になります。

 

++Solver Frequency

物理演算の頻度。120~300推奨。

 

++Use Virtual Particles / Virtual Particle Weights

衝突の安定性を向上させ突き抜けを防止する。

true,デフォルト値を推奨。

 

++Sleep Threshold
スリープ状態になる頂点速度のしきい値を設定します。

この値以下の細かすぎる動きを無かったことにできます。裾とかが小刻みにプルプルし続けるのを防いでくれる

 

++Capsule Colliders / Sphere Colliders

コライダーを設定する場所。 SphereCollidersの場合,2つで1セットとなり、コライダー間もコライダーとして機能する。

 

++++コライダーの設定方法

空のオブジェクトを生成しそこにColliderコンポーネントをアタッチし、それをclothのcollidersにセットすることで使用する。Collderコンポーネントをアタッチした空のオブジェクトは最終的にオフにするか、IsTriggerにチェックを入れておく。

 

スカートなどの場合、コライダーをUpperLeg,LowerLogアーマチュアの直下に入れればよい。

 

++++設定例

f:id:arumogina:20210820155338p:plain

 

 

++参考

説明書に載ってない本当のClothコンポーネント ~VRChatで使うClothコンポーネント~ - Qiita

Cloth - Unity マニュアル

VRoidのワンピーススカートに、UnityのClothコンポーネントを適用し、VRChatに持っていくまで - Qiita