UnityのClothコンポーネントを使って布揺れを実装しようと思います。
動画にある布をつくる手順を記載したいと思います。
準備
揺らしたいオブジェクトに
Add Component > Physics > Cloth でコンポーネントを追加します。
(公式に書いてありますが、なるべくスケールは変更しないほうが良いらしいです)
設定
パラメータがたくさんありますが、基本的には全部を調節する必要はなく、
3つのブロックにカテゴライズされたもの(画像を参照)に注視すれば良いみたいです。

動画では下記の設定値を変更しています。
Bending Stiffness 0 → 1(数値が高いほど変形しにくくなります)
Damping 0 → 0.15
布の衝突を検知するには、
Capsule CollidersまたはSphere Collidersにコライダを登録する必要があります。
Sphere Collidersには、FirstとSecondの二種類のコライダが登録できるようになっていますが、下画像のように頭とお尻の形が違うものにしたい場合に使います。基本はFirstにのみコライダを登録すれば大丈夫です。

最後に布の中心部が重力に従って下に落ちないように固定します。
下画像の赤丸部分をクリックすると、メッシュの頂点がどのぐらい移動できるかをブラシで塗ることによって調節できます。

上画像の赤丸部分をクリックすると、シーンビューにウィンドウがでます。
Paintを選択してMax Distanceに任意の値を入れ、ブラシで塗ります。
完全に固定したい場合は「0」で塗るとよいです。
グラデーションのように数値を少しずつ上げながら塗るときれいになるかもしれません。
ちなみに動画の布は結構適当で、下画像のように塗ってます。
赤色が「0」で、緑色が「3」で塗ってます。

ここまでで動画の布は再現できたと思います。
キャラクターのスカート等多くに使えそうですね。
もっと細かい説明は公式にあるのでそちらをご参照ください。
コメント
[…] 布を揺らす | のっぴの備忘録 […]
[…] 布を揺らす | のっぴの備忘録 […]