UnityのClothコンポーネントを使ってみます。
Blenderで筒状のモデルを作って、Unityに持ってきました。
これにClothコンポーネントを追加します。
このままでは落下してしまうので、ピンのマークをクリックします。
シーンを見るとオブジェクトの表面の点と「Cloth Constraints」のツールが表示されています。
このツールで、選択した点に制限を設定できます。点の選択にはブラシも使えますが、「Select」ボタンを押して矩形選択してみます。
マウスのドラッグアンドドロップで長方形を作って、天井の点だけを選択しました。
Visualizationから「Manipulate Backfaces」にチェックを入れておくと、裏の点が透過します。
点を選択した状態で、「Max Distance」のチェックを入れて、点が動ける距離の値を入力します。
点を動かしたくないので「0」と入力します。
設定した点だけ赤くなりました。
Clothに風を送る
Clothをなびかせるために、「External Acceleration」にClothに与える加速度の値を入れました。
プレイボタンをおすと、筒のオブジェクトが布のように揺れているのがわかります。
このオブジェクトにアニメーションを付けることもできます。
動きが激しいので、Clothの設定を変えてみます。
Clothを制御する
曲げ剛性(Bending Stiffness)と減衰(Damping)を上げてみます。
すると、Clothの動きが鈍くなりました。
値を0に戻して、Cloth Constraintsを使って他の点にもMax Distanceを設定してみます。
上からMax Distanceの値を徐々に大きくしました。
Clothを衝突させる
Clothのオブジェクトはデフォルトでは他のオブジェクトに衝突せず通り抜けます。
Clothを衝突させるには、コンポーネントに衝突させるコライダーをアタッチします。衝突できるのは、CapsuleコライダーかSphereコライダーです。
Sizeに指定するコライダーの数を入力して、シーン上のCapsuleコライダーが付いたオブジェクトをドラッグアンドドロップしました。