VRChatでのケモノコミュニティ KemonoClub のWikiです。VRChatでケモノになるためのHowTo、ケモノアバターの紹介。イベントやコミュニティの情報を紹介しております。

・このページは


「アバターアップロードの基礎がチョトデキてきたから一歩上のものが触りたい」
「きれいに揺れるスカートが作りたいんだけどどうするよ」
という人のために、そのへんを例にしてClothコンポーネントにとっつきやすくしようというコーナーです。
トラブル対応なんかも載せていきますのでClothチョトデキルお兄さんの参考にもなればと思います。

基本的にblenderとunityでできる作業のみで行います
事前に「ここ揺らしたいんだけど」というモデルを用意すると理解しやすいかもしれません。
Clothはいいぞ。異論は認めるぞ。

なお、このページの作成にあたって 
Unity Blog様「Unity5でおこなうクロスシミュレーション」(https://blogs.unity3d.com/jp/2015/11/24/unity5clot...
及び
製作日誌(仮)様「VRChatで使えるClothコンポーネントを用いた貫通しないスカート」(http://trike1236.hatenablog.com/entry/2018/05/29/0...
を多大に参考にさせていただきました。本気でありがとうございます。とてもわかり易い記事でおすすめです。GODです。


・Clothコンポーネントって何


Unityに最初から組み込まれている物理演算コンポーネントです。
布などの重力に従った自然な揺れを表現でき、脚などにコライダー(ぶつかり判定)を設定することもできます。
無料なのが嬉しい。


・何ができるの


得意 :重力に従って垂れ下がるもの(スカート・紐など)
    二箇所に渡ってぶら下がるもの(万国旗ロープ的な)
    スカートの脚貫通制御
    (順調に行けば)設定が簡単にできる

不得意:中に芯のあるような動き(しっぽ、オパーイなど)
    重力に逆らう揺れもの(耳など)
    理解困難のトラブルがちょくちょくある

ここはケモクラwikiなのでこう言うのもナンですが、けものっぽい部位を作るのにはあまり適していないかもしれませんね。
どちらかといえば装飾品でパワを発揮するタイプのコンポーネントです。


・DynamicBoneとの違い


上記不得意の内、しっぽ、耳表現については、あらかじめ設定したボーンを基準にするDynamicBone(以下DB)のほうが得意です。よく知らないけど無二なのでは。
一方、二箇所を繋ぐ揺れものはClothでは容易に作れますがDBでは困難です。筆者は何度か挑戦しましたが無理。
また、2つのボーンをまたぐ揺れもの(両手を繋ぐなわとびとか)みたいなものもClothなら容易です。
メッシュ/オブジェクトに対して設定するので、DBとは違い専用のボーンを必要としないのも手軽ポイントが高いですね。


・実装してみよう



1.オブジェクトわけ

揺らしたいパーツは事前に一つのオブジェクトとして分けておく必要があります。
スカートであればそれで一つのオブジェクトとして、
ワンピーススタイルだとしてもよい切り分け部分を見つけて別オブジェクト化しておきましょう。

後で使いますので揺らすオブジェクトにウェイトを塗る必要があります。
ぶら下げ元オブジェクトのボーンから大まかでいいので塗っておきましょう。
腰の動きに追従させたいスカートであれば、Hipボーンに1.0の完全真っ赤とかで構いません。


2.コンポーネント設置



いつもどおりFBXやSDKを読み込ませたら、ヒエラルキーから揺らしたいオブジェクトを選択。
当該オブジェクトのインスペクターで Add component>Cloth で設置します(検索を使うと早くていいですね)



実はもう物理演算が効いてます。やったね。


3.ピンどめ



やったねと言ったところで再生ボタン【▶】を押してみると、スカートは「重力に従って」ストンと落下していきます。困りますね。
頂点3つって感じの「Edit Constraints」ボタンから「それぞれの頂点がどれくらいウェイトに従うか」を設定する必要があります。
オブジェクトに布を固定するように見えるので筆者は「ピンどめ」「ピンを打つ」などと呼称しています。ここではひとまずそう呼びます。



Edit Constraints>Paint>Max Distance を使用します。Surface Penetrationは筆者よくわかりません。
Max Distanceの値を「0」にして「ここは揺れない」すなわち「完全にボーンに従う」頂点を設定します
黒い頂点をクリックして「0」を設定すると頂点が赤くなりました。この赤ピンは「完全にボーンに従う」頂点になります。揺れません。
腰回りをぐるりとベルト状に、赤ピンを打ちましょう。これでウェイトを塗っておいたHipボーンに張り付いたので【▶】でもストーンすることはありません。



【▶】>#Scene からアバターのヒエラルキー一番上を選択して、移動させたり回転させたりしてみてください。
揺れてませんか? 揺れてますね? やりましたね?


4.パラメータ調整

揺れ具合に不満がある時はClothのパラメータを調整してお好みの布に改造します。

・Stretching Stiffness:布の伸縮性。0に近いとメッシュが大きく変形しながら揺れます。下げすぎると崩れやすいかも
・Bending Stiffness:布の曲がり具合。薄手の布なら0に近く、厚手の布は1に近くなります
ここで大まかな布の性質を決めます。0.5/0.5くらいから始めてもいいかもです

・Use Gravity:そのまま、重力を適用するか否か。スイッチを切るとふわふわと浮かびます(かわいい)
・Damping:揺れやすさ。0なら少し動くだけでぴょんぴょんします。1ならかろうじて動く程度です。

 

特殊なトラブルがなければ触るのはこれだけで大丈夫です


5.コライダー設定

さてオブジェクトにいい感じの設定をしてイイ布になりました。が、これではまだ歩いたときに脚がスカートを貫通します。Clothの得意技だったのでは?
脚・腰・胴などにコライダーを設定してClothの動きに干渉する必要があります。

これについては上記 製作日誌(仮)様「VRChatで使えるClothコンポーネントを用いた貫通しないスカート」(http://trike1236.hatenablog.com/entry/2018/05/29/0...)の中ほど、
"あとは足のボーンの下に3Dオブジェクトのsphereを2つずつ置き" 以降が大変わかりやすくまとまっています。
球コライダーを2つつないで円錐形のコライダーを作れるので、足の形状にフィットさせやすく無駄がありませんね。
胴にコライダーを一本通しておくことで、「スカートが翻って体の上を通り越して反対側に落ちる」ということが避けられます。



製作日誌(仮)様に記載のある通り、

"球のメッシュを削除する"
"球のオブジェクトすべてを非アクティブにする"

については過たず行ってください。他の作業もうまく行かなくなって禿げます。



コライダー設定は少し面倒ですが、貫通制御は出来上がりを大きく左右します。終盤戦ですのでがんばりましょう
貫通防止の脚コライダーだけでなく手に設定して「スカートを払う」なんて動作もできます。夢がありますね。
コライダーを設定した手でClothをいじり、からまりを直すのにも使えたりします(本旨)。


これでCloth設定の全行程が終わりです。お疲れ様でした。
VRchatにinしてチェックしたり「スカートきれいだね!」と褒められに行きましょう。





・Tips/トラブルシューティング



ピンどめのコツ

「ふわふわスカートがしぼんでしまった」「重力で沈み込みすぎる」場合は赤ピン(Max Distance:0)の他に
Max Distanceを0.5などに変更したピンを数種類グラデーション状に打ち、ウェイトに少し追従させることで沈み込みを軽減することができます。
「ボーンに対するウェイト」「ウェイトに対するピン」の関係は近いところがあるので、何かしら作ってる方は理解しやすいと思います。
トラブルの項でも少し書きますが、ピンはうっすらとでも全ての頂点に打つべきである、とする説もあります。
ピンはメッシュの表側からしか打てません。気をつけましょう。


Clothはローカル

Clothによる揺れものはその場の一人ひとりで見え方の違うローカルなものです。
自分の目ではぐちゃぐちゃにトラブっていても、人から見ると正常なこともあります。逆もあります。
人目やカメラ写りを気にする時は「私、きれい?」と他人に確認するのが一番早いんじゃないでしょうか。


収縮・爆発トラブル

Clothを設定したオブジェクトがギューっと収縮し、パンモロってレベルじゃねえぞとなります。
同じ条件でもでる人でない人がいる、何をしたら解決したか一定でないなどの理由で100%の対策は確立されていませんが、
いくつかの対応策が提唱されています。
面倒ではありますがひとつずつ試してみて、何が影響していたかを検めるのがよいでしょう。

 A.blender側でモディファイヤをすべて適用しておく。 ミラーが悪さをすることが多いようです。
  シェイプキーを作ったりするときにも適用するので忘れないようにしましょう。ただし再モディファイは面倒なので計画的に!
 B.Clothしたオブジェクトの「Skinned Mesh Renderer」の「Root Bone」を「none」に設定する。
  なんか効くらしい。筆者は再現できないしよくわかってないので追記いただけると嬉しいです!
 C.すべての頂点にピンを打つ。 数値未設定の黒ピンが悪さしてる説。ウェイトに追従させて補正する。
 D.DBに移行する。わからんものはまじでわからん。妥協で時間を買おう。お買い得。


引っかかり・はさまりトラブル

特にロング系スカートに多い、「Clothが脚コライダーに引っかかって動かない」トラブル。
コライダーがClothに刺さって引っ張っていることがあります。引きちぎるのではなく引っこ抜くようにすると外れることが多いです。

アバターをロードした直後に発生しやすいのがコライダー同士にClothが挟まっちゃって正しい姿にならないトラブル。
基本的には動く・走る・落下するなどの方法で外れてくれますが、それでも外れにくい場合は
「シェイプキーでスカートが広がった状態を作り、バサバサして直す」という必殺技がある模様(筆者未実施)


謎挙動

筆者が「上着オブジェクトをまるごとClothにして、ピンどめガッツリかけたら腕は動いて裾がパタパタするラクチン上着やんけ!」と横着して出たトラブル
腕を動かしたところウェイトがかかっていないはずの裾が持ち上がり。残念ダブルバンザイと化した。
Clothオブジェクトの表面積が広く、また形状が複雑だと出ることがあるらしい。
はためいてほしい裾だけ別オブジェクトに切り分けて、最低限の範囲にClothをかけ直すことで解決した。




以上でClothに関するネタ放出は終わりです
使用者も多くなく、まだまだ情報の足りてないコンポーネントです
熱い指摘や情報提供をお待ちしております

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

ワールド制作

メンバーのみ編集できます