SkinnedCloth コンポーネントは,SkinnedMeshRenderer と連携して,キャラクター上でクレーシングをシミュレートします。 SkinnedMeshRenderer を使用するアニメート化されたキャラクターがある場合,SkinnedMeshRenderer で,SkinnedCloth コンポーネントをゲーム オブジェクトに追加して,キャラクターをより現実的に見せることができます。 SkinnedMeshRender で,GameObject を選択し, を使用して,SkinnedCloth コンポーネントを追加します。
SkinnedCloth コンポーネントは,SkinnedMeshRenderer からの頂点の出力を受け取り,そこにクローシング シミュレーションを適用します。 SkinnedCloth コンポーネントには,頂点ごとの係数のセットがあり,シミュレートされたクロスが,スキン メッシュに関連してどれだけ自由に移動できるかを定義します。
これらの係数は,SkinnedCloth コンポーネントのあるゲーム オブジェクトを選択すると,シーン エディタとインスペクタを使用して,視覚的に編集できます。 編集モードには,選択モードと頂点描画モードの 2 種類があります。 選択モードでは,シーン ビューで頂点をクリックして,選択し,インスペクタでその係数を編集します。 頂点描画モードでは,インスペクタで必要な係数値を設定し,変更したい係数の隣にある「描画」ボタンを有効にして,頂点をクリックして,値を頂点に適用します。
スキン クロスのシミュレーションは,SkinnedMeshRenderer でスキンされた頂点によってのみ駆動され,そうでない場合は,コライダと相互作用しません。 これにより,物理特性シミュレーションの残りと同じフレーム レートと同じスレッドでシミュサーとする必要がないため,スキン クロスのシミュレーションは,完全に物理的な Interactive Cloth コンポーネントより高速になります。
スキン クロス コンポーネントを無効または有効にし,いつでもオンまたはオフにできます。 オフにすることで,レンダリングを通常の SkinnedMeshRenderer に切り替わるので,パフォーマンスを変えるのに動的に変える必要がある場合はいつでもこれらを切り替えることができます。 SkinnedCloth.SetEnabledFading() メソッドを使用して,スクリプトから 2 つのモード間で円滑にクロス フェードすることもできます。
クロス シミュレーションにより法線マップは生成されますが接線は生成しません。メッシュに接線がある場合,シェーダに変更なしで渡されます。つまり接線に依存したシェーダ(バンプマップシェーダなど)を使用する場合,初期位置から移動したクロスに対するライティングは誤っているように見えます。
頂点ごとに 4 つの係数があり,クロスの頂点が,スキンされた頂点および法線に対して,クロス頂点がどのように動くかを定義します。 以下の 4 つの係数があります。
Max Distance | 頂点がスキン メッシュ頂点位置から移動できる距離。 SkinnedCloth コンポーネントにより,クロス頂点は,スキン メッシュ頂点位置から maxDistance 内に留まります。 maxDistance が 0 の場合,頂点はシミュレートされませんが,スキン メッシュに設定されます。 この動作は,クロス頂点をアニメート化キャラクターに固定,つまり,スキンさせない頂点や,キャラクターの体 (ベルトで固定されたズボンの腰) に固定されるパーツに対してこれを行いたい場合に便利です。 しかし,クロス シミュレーション (顔や手など) を使用しないキャラクターの大きなパーツがある場合,最高のパフォーマンスを得るには,これらを SkinnedCloth コンポーネントを持たない別個のスキン メッシュとして設定します。 |
Distance Bias | スキン メッシュの法線に基づき,maxDistance で定義される球体を歪めます。 この機能は,値を 0.0 (デフォルト) にすると無効になります。 この場合,maxDistance 球体は歪められません。 maxDistanceBias を –1.0 まで下げると,頂点が接線方向に移動できる距離が減ります。 –1.0 the の場合,スキン メッシュ頂点位置を通じて,スキン メッシュ頂点位置までの maxDistance 内で法線上に頂点が留まる必要があります。 maxDistanceBias を 1.0 まで上げると,頂点が法線方向に移動できる距離が減ります。 1.0 の場合,頂点は,スキン メッシュ頂点位置からthe vertex can only move inside the tangental plane within maxDistance 内で接平面内で頂点が移動できます。 |
Collision Sphere Radius and Collision Sphere Distance | 入力できない球体の定義。 これにより,アニメート化されたクロスへの衝突が可能になります。 このペア (collisionSphereRadius,collisionSphereDistance) により,各クロス頂点に球体が定義されます。 球体の中心は,位置 constrainPosition - constrainNormal * (collisionSphereRadius + collisionSphereDistance) にあり,その半径は,collisionSphereRadius で,ここでは constrainPosition と constrainNormal は,SkinnedMeshRenderer で生成された頂点位置と法線になります。 SkinnedCloth は,クロスの頂点がこの球体に入らないようにします。 つまり,collisionSphereDistance は,スキン メッシュがクロスによってどれだけ深く浸透するかを定義します。 これは,通常 0 に設定されます。collisionSphereRadius は,クロスの頂点が衝突球体周辺でスリップできるよう,隣接する頂点間の距離よりも大きい値に設定する必要があります。 このような設定では,クロスはスキン メッシュに対する衝突に対して表示されます。 |
maxDistanceBias の異なる値に対するスキンされた頂点と法線に関連してこれらの係数がどのように機能するかに関する視覚的表示に関しては,この画像を参照してください。 赤いエリアは,collisionSphereRadius と collisionSphereDistance によって定義される衝突球体になります。ここには,クロスの頂点は入れません。 従って,赤いエリアで差し引かれる maxDistance と maxDistanceBias で定義される緑のエリアをクロス頂点が移動できる空間を定義します。
SkinnedCloth のある GameObject を選択すると,SkinnedCloth インスペクタを使用して,クロス頂点係数およびその他のプロパティを編集できます。 インスペクタには,次の 3 つのタブがあります。
このモードでは,シーン ビューで頂点を選択し,インスペクタで係数を設定します (クロス係数の機能の説明については,前項を参照)。 [Shift] キーを押すか,マウスで長方形をドラッグすることで,複数の係数を設定でいます。 複数の頂点を選択すると,インスペクタは頂点係数の平均値を表示します。 しかし,値を変更すると,その係数はすべての頂点に対して,同じ値に設定されます。 シーン ビューをワイヤーフレーム モードに切り替えると,後ろ向きの頂点を確認および選択できます。これは,キャラクターの完全な部分を選択したい場合に便利です。
この係数がすべての頂点に対してどの値を持っているかを理解するには,係数フィールドの目アイコンをクリックして,エディタにシーン ビューでその係数を表示させることができます。 これによって,その係数の最も低い値のある頂点は緑色で,中距離の値は黄色,最高値は青で表示されます。 カラー スケールは常にその係数の使用される値の範囲に関連して選択され,絶対値からは独立しています。
頂点選択に似ていますが,これは,頂点係数値を設定するためのツールです。 頂点選択とは違い,色を変更する前に頂点をクリックする必要はありません。このモードでは,設定したい値を入力し,変更したい係数の隣にあるペンキ ブラシ トグルを有効にして,その値を設定したいすべての頂点をクリックします。
3 つ目のタブにより,スキン クロスの各種プロパティを設定できます。
Bending Stiffness | クロスの曲げ剛性。 |
Stretching Stiffness | クロスの伸張剛性。 |
Damping | 濡れたクロスの動き。 |
Thickness | クロス表面の厚さ。 (0.001 - 10000) |
Use Gravity | 有効化すると,クロスのシミュレーションに重力が影響します。 |
Self Collision | 有効化すると,クロスは自身と衝突できます。 |
External Acceleration | クロスに適用される一定の外部加速度。 |
Random Acceleration | クロスに適用されるランダムの外部加速度。 |
World Velocity Scale | クロスの頂点に影響させるキャラクターのワールド座標系での移動量。 この値が高いほど,GameObject のワールド座標系の移動への対応として,クロスの移動量が増えます。 基本的に,これは,SkinnedCloth の空気摩擦を定義します。 |
World Acceleration Scale | クロスの頂点に影響させるキャラクターのワールド座標系での加速度。 この値が高いほど,GameObject のワールド座標系の加速への対応として,クロスの移動量が増えます。 クロスの動きが活発でないように見える場合,この値を上げてみてください。 キャラクターが加速した際に,安定していないように見える場合,この値を減らしてみてください。 |