Version: 2019.4
Spring Joint
Wheel Collider

Cloth

Cloth コンポーネントはスキンメッシュレンダラーと連動して機能し、物理演算を用いたクロス (布) のシミュレーションを行います。これはスキンメッシュと一緒に使う必要があり、キャラクターの衣服によく使われます。Cloth コンポーネントをスキンメッシュがないゲームオブジェクトに加えると、Unity は自動的にスキンメッシュ以外のメッシュを削除し、スキンメッシュを加えます。

Cloth コンポーネントをスキンメッシュに加えるには、エディターでゲームオブジェクトを選択し、インスペクターウィンドウで Add Component ボタンを押し、 Physics > Cloth の順に選択します。選択したコンポーネントがインスペクターに表示されます。

Properties

プロパティー 機能
Stretching Stiffness クロスの伸縮率を設定します。
Bending Stiffness クロスの曲げ剛性を設定します。
Use Tethers 動いているクロスのパーティクルが固定されたパーティクルから、遠くに離れ過ぎるのを防ぐ制限を適用します。
Use Gravity クロスに重力加速度を適用します。
Damping モーションの減衰係数を設定します。
External Acceleration クロスに外部から一定に加えられる加速度を設定します。
Random Acceleration クロスに外部からランダムに加えられる加速度を設定します。
World Velocity Scale ワールド空間でのキャラクターの動きがクロスの頂点にどのくらい影響を与えるかを設定します。
World Acceleration Scale ワールド空間でのキャラクターの加速がクロスの頂点にどのくらい影響を与えるかを設定します。
Friction キャラクターと衝突したときのクロスの摩擦係数を設定します。
Collision Mass Scale 衝突するパーティクルの密度をどのくらい増加するかを設定します。
Use Continuous Collision 衝突の安定性を向上させるために継続的な衝突を有効にします。
Use Virtual Particles 衝突の安定性の向上のために、ひとつの三角形ごとにひとつの仮想パーティクルを加えます。
Solver Frequency 一秒間ごとのソルバー反復の回数を設定します。
Sleep Threshold クロスのスリープのしきい値を設定します。
Capsule Colliders クロスインスタンスが衝突するカプセルコライダーの配列を設定します。
Sphere Colliders クロスインスタンスが衝突するスフィアコライダーの配列を設定します。

詳細

Cloth コンポーネントはシーン内のすべてのコライダーに反応するわけではなく、ゲームオブジェクトへ力を跳ね返すわけでもありません。Cloth コンポーネントは加えられても、その他のリジッドボディに対してまったく反応せず、影響も与えません。したがって、手動でゲームオブジェクトの Cloth コンポーネントへ世界からのコライダーを加えるまでは、互いに影響することはありません。また追加後も、シミュレーションは一方的なものになります。つまり、リジッドボディに対してクロスは反応しますが、クロスが影響を与えることはありません。

また、Cloth に使用できるコライダーは 3 種類のみです。スフィア、カプセル、2 つのスフィアコライダーで構成される円錐形カプセルコライダーです。こういった制限はすべて、パフォーマンス強化のために設けられています。

Edit Constraints Tool

You can apply constraints to specific vertices of the cloth to give them more or less freedom of movement.

In the Inspector, select Edit cloth constraints (top-left button) in the Cloth component. When the tool is active, small spheres appear in the Scene view on all vertices of the mesh. They represent the cloth particles to which you can apply constraints. The Cloth Constraints tool window also appears at the bottom right of the Scene view.

Skinned Mesh Renderer に使用されている Cloth Constraints ツール
Skinned Mesh Renderer に使用されている Cloth Constraints ツール

Constraint types and colors

For each cloth particle, you can set and display two types of constraints: * Max Distance – the maximum distance a cloth particle can travel from its vertex position. * Surface Penetration – how deep the cloth particle can penetrate the mesh.

The color of a particle represents the relative value of its constraint within the cloth, according to the type of constraint currently selected.

Constraints visualization

The visualization properties of the Cloth Constraints Tool.
The visualization properties of the Cloth Constraints Tool.
プロパティー 機能
Visualization Allows you to select which constraint type and which particles to display.
Max Distance Displays only the Max Distance values of the cloth particles.
Surface Penetration Displays only the Surface Penetration values of the cloth particles.
Manipulate Backfaces Enable this option to visualize and manipulate particles that might be hidden behind the current facing part of the cloth.
[ Color spectrum ] Provides the correspondance between particle colors and constraint values for the above selected constraint type, according to the mimimum and maximum values currently applied within the whole cloth. Black always means that the particle has no constraint.
Constraint Size The display size of the spheres that represent the cloth particles. Adjust this value at your convenience to ease your constraints edition. This property has no effect on the constraints themselves.

Constraints edition modes

You can use 3 different modes to edit the cloth constraint values.

Mode 説明
Select Allows you to apply a fixed constraint value to a pre-selected group of particles.
Paint Allows you to apply a fixed constraint value by painting the cloth particles with a brush.
Gradient Allows to apply a left-to-right linear gradient of constraint values to a pre-selected group of particles.

The tool properties and the steps that you need to perform are different according to the mode you are using. In all cases, the last step corresponds to the action that applies the constraint values.

With the Select mode:

The Cloth Constraints Tool in Select mode.

  1. Use the mouse cursor to draw a selection box or click on particles one at a time.
  2. Enable the constraint type that you want to apply to your selection: Max Distance, Surface Penetration, or both.
  3. Set a value according to the constraint type you just enabled.
With the Paint mode:

The Cloth Constraints Tool in Paint mode.

  1. Adjust the Brush Radius according to the area you need to cover with the brush.
  2. Enable the constraint type you want to apply: Max Distance, Surface Penetration, or both.
  3. Set a paint value according to the constraint type you just enabled.
  4. Paint the constraints on the particles with the brush.
With the Gradient mode:

The Cloth Constraints Tool in Gradient mode.

  1. Ensure to toggle on the 2D view in the Scene view (the tool cannot apply a gradient when in 3D view).
  2. Use the mouse cursor to draw a selection box or click on particles one at a time.
  3. Set the limit values of the gradient you want to apply left-to-right within your selection: Gradient Start and Gradient End.
  4. Enable the constraint type that you want to apply to your selection: Max Distance, Surface Penetration, or both.

Self collision and intercollision

クロスの衝突は、ゲーム内のキャラクターの衣服やさまざまな布をよりリアリスティックに動かします。Unity では、クロスは衝突を処理するいくつかのクロスのパーティクルを持ちます。以下のものに対してクロスのパーティクルを設定できます。

  • Self Collision (セルフコリジョン) は、クロスがそれ自体に食い込むのを防ぎます。
  • Inter Collision (インターコリジョン) を使うと、クロスのパーティクルが互いに衝突できるようになります。

クロスに衝突パーティクルを設定するには、Cloth のインスペクターで Self Collision And Inter Collision ボタンを押します。

Cloth インスペクターの Self Collision And Inter Collision ボタン
Cloth インスペクターの Self Collision And Inter Collision ボタン

シーンビューに表示された Cloth Self Collision And Intercollision ウィンドウ

Cloth Self Collision And Intercollision ウィンドウ
Cloth Self Collision And Intercollision ウィンドウ

Cloth コンポーネントでスキンメッシュに自動的に表れるクロスのパーティクル。最初は、クロスのパーティクルにはコリジョンの設定がされてません。これらの使用されていないパーティクルは黒く表示されます。

使用されていないクロスのパーティクル
使用されていないクロスのパーティクル

セルフコリジョンやインターコリジョンを適用するには、衝突を適用する一群のパーティクルを Select ボタンから選ぶ必要があります。

クロスのパーティクルの選択ボタン
クロスのパーティクルの選択ボタン

衝突を適用するパーティクルを選ぶには、左クリックしてドラッグします。

左クリックしてドラッグしてクロスのパーティクルを選択
左クリックしてドラッグしてクロスのパーティクルを選択

選択したパーティクルは青で表示されます。

選択したパーティクルは青で表示
選択したパーティクルは青で表示

Self Collision and Intercollision にチェックを入れ、選択したパーティクルに衝突を適用します。

Self Collision And Intercollision チェックボックス
Self Collision And Intercollision チェックボックス

衝突に使用することを指定したパーティクルは緑で表示されます。

選択されたパーティクルは緑で表示
選択されたパーティクルは緑で表示

クロスのセルフコリジョンの挙動を有効にするには、Cloth インスペクターウィンドウの Self Collision セクションに移動し、DistanceStiffness をゼロ以外の値にします。

Self Collision パラメーター
Self Collision パラメーター
プロパティー 機能
Distance 各パーティクルの周りのスフィアの直径。Unity は、シミュレーション中にこれらのスフィアが重なり合わないようにします。 Distance は、2 つのパーティクル間の最短距離よりも小さく設定する必要があります。距離が大きい場合、セルフコリジョンが距離の制約に反してジッタが発生する場合があります。
Stiffness パーティクル間の分離の力の強さ。クロスソルバーはこれを計算し、パーティクルを分離した状態に保つようにします。

セルフコリジョンとインターコリジョンは、シミュレーション時間全体のかなりの部分を占める可能性があります。衝突距離を小さく保ち、セルフコリジョンインデックスを使用して、互いに衝突するパーティクルの数を減らすことを検討してください。

セルフコリジョンでは三角形ではなく頂点が使用されるので、クロスの厚さよりもかなり大きい三角形をもつメッシュに対してセルフコリジョンが完全に機能するわけではありません。

PaintErase モードでは、左マウスボタンを押したまま個々のクロスのパーティクルをドラッグすることで、衝突時に使用するパーティクルを加えたり、削除したりします。

Self Collision パラメーター
Self Collision パラメーター

Paint または Erase モードの場合、衝突に指定されたパーティクルは緑、指定されないパーティクルは黒、ブラシの下にあるパーティクルは青です。

ペイントされたパーティクルは青
ペイントされたパーティクルは青

Cloth のインターコリジョン

上で説明したセルフコリジョンのためのパーティクルを指定するのと同じ方法で、インターコリジョンのためのパーティクルを指定します。セルフコリジョンと同様に、インターコリジョンのために 1 組のパーティクルを指定します。

インターコリジョンの動作を有効にするには Physics 設定 (Edit > Project Settings を開き、Physics カテゴリを選択) を開き、Cloth InterCollision セクションで DistanceStiffness を 0 以外の値に設定します。

Physics 設定でインターコリジョンの動作を有効にします
Physics 設定でインターコリジョンの動作を有効にします

Cloth intercollision の DistanceStiffness プロパティーは、上の Self collision の Distance と Stiffness プロパティーと同じ機能を持っています。

Collider collision

クロスは、ゲーム世界の任意のジオメトリと単純に衝突することはできず、Capsule CollidersSphere Colliders 配列で指定されたコライダーとだけ相互作用します。

SphereCollider の配列は、有効な単一の SphereCollider インスタンス (2 つ目は null) か、ペアを 1 組含むことができます。前者の場合、ClothSphereColliderPair はクロスが衝突する単一のスフィアコライダーを表します。後者の場合は、円錐カプセル形で、2 つのスフィアによって定義された 1 つの円錐形を表し、円錐は 2 つを繋げます。円錐カプセル形は、キャラクターの手足をモデリングする場合に便利です。


  • 2017–12–05 Page amended

  • クロスのセルフコリジョンとインターコリジョンは 2017.3 で追加NewIn20173

Spring Joint
Wheel Collider