斜め網目
斜め網目
メッシュでこの形をつくる。A
このとき、配列を追加したとき、左端の頂点と右側の下側の頂点が重なるような形にする。
カーブの円Bを追加。Aに配列・カーブモディファイアを設定し、カーブに追加したBを設定。配列数を良い感じに設定し、S+xでAを操作し隙間を調整する。
Aにオブジェクト=>変換=>メッシュ、これでモディファイアが適用される。
切れ目の頂点を結合。M=>距離で で結合。
E+zで上に伸ばす。
上部分の頂点を選択し、Sで縮小。
上部分の内側の頂点を選択
R+Zで回転。
上の頂点を選択し、shift+alt+s マウスを操作しえ円にする。
下側の内側の頂点を選択肢R+Zで回転
プロポーショナル編集を有効にし、下側のX軸上に並ぶ2つの頂点を選択し、g+zでいい感じになるように下に引っ張って完成。
メッシュに変な影ができてる場合は、編集モードで全選択=>メッシュ=>ノーマル=>面から設定、でなおる
あと、このやり方で作った場合、unityに持っていくと影が変な風に付くので適当に法線転写して法線をカスタムしたほうがいい。
参考にした記事:
DynamicBoneでふわふわスカートを作る(基本パラメータ編)|うぃりあむ|pixivFANBOX
スカートのボーンの配置。足の前に2本。左右に2本。足の後ろに2本。
insideコライダーの配置
足の前と横にのみ配置。後ろは配置した場合、足を上げた時後ろも動いてしまう不自然な動作になるので配置してない。
insideコライダーによるスカートの制御についてはこちらを参照
DynamicBone式スカートの貫通防止 解説本 - ヒヨ家の交易所 - BOOTH
ちなみにコライダーを配置するときは、スカートのボーンにskinedMeshRendererを付与し、Meshに適当なサイズに縮小した球体のメッシュを設定するとボーンを常時可視化できて設定しやすくなる。
オブジェクトとカーブの二つを用意する。左がオブジェクト。右がカーブ。
オブジェクトに配列、カーブモディファイアを追加する。
カーブモディファイアのカーブオブジェクトにカーブを指定し、配列の数を良い感じに設定する。
Alt + クリックでループ選択
選択=>チェッカー選択解除
Alt+s で適当に拡大
Alt+クリックでループ選択
メッシュ=>トランスフォーム=>ランダム化
数値を適当に調整
サブディジョンサーフェースモディファイアを追加
微調整して適用
++クロスを使うときのblender側でのウェイトの塗り方
以下のように固定する部分のみHipボーンなどに赤で塗り、揺らす部分はウェイトを塗らないようにする。
++cloth側でのウェイトの塗り方
edit cloth constraintsを押して、出てきたウィンドウの中からselectを選択する。
そしたらメッシュの頂点が球体として強調表示され、その球体を範囲選択出来るようになる。範囲選択したらウィンドウのMax Distance,Surface Penestrationの左側にチェックを入った状態で、右側の枠に数値を入力することでウェイトを塗ることが出来る。Unityのシーン画面のどこかで適当にクリックを行い、範囲選択を解除することでウェイトが反映される。
(便宜上、ウェイトを言ってるが正確にはウェイトではない
++fbxファイルを差し替えた場合、clothのウェイトはリセットされてしまう。
unityでメッシュを差し替えたいとき、現在のFBXファイルを削除して同名の新しいFBXファイルを置けばメッシュを差し替えらえれるのだが、これをやるとclothのウェイトが初期化されてしまう。
++clothを使うときはオブジェクトの拡縮を1:1:1にする必要がある。
でないと、爆発する。
blender側でトランスフォーム適用すればよい。
++++パラメタ説明
++max distance
頂点が元の位置から移動できる最大の距離。単位はメートル。
スカートの付け根など固定する部分は赤(0)にする。
固定する部分以外のところは0.5~1で全体塗ればいい気がする。
++Surface Penestration
頂点の法線の反対方向に移動できる距離。
法線方向には制限しない。
単位はメートル。
0以上にするとメッシュの形が崩れるので0が良いかもしれない。
++Stretching Stiffness
メッシュの伸びにくさ。小さいほど伸びやすくなる。
0.8から始めると調整しやすい。
++Bending Stiffness
メッシュの曲がりにくさ,捻じれにくさ。小さいほど曲がりやすくなる。
0.8から始めると調整しやすい。
++Use Tethers
有効化すると頂点が元の位置から離れ過ぎないようになる。
true推奨。
++Use Gravity
有効化すると、重量が働くようになる。
true推奨。
++Damping
速度の減衰係数。各頂点の揺れの収束が早くなる。
0.1~0.5推奨。
++External Acceleration
クロスに外部から一定に加えられる加速度を設定します。
++Random Acceleration
クロスに外部からランダムに加えられる加速度を設定します。
++World Velocity Scale
ワールド空間でのキャラクターの動きがクロスの頂点にどのくらい影響を与えるかを設定します。
0.1以下が安定する。
++World Acceleration Scale
ワールド空間でのキャラクターの加速がクロスの頂点にどのくらい影響を与えるかを設定します。
0.1以下が安定する。最初、やたらあらぶるのはデフォルトでこれが1になってるせい。
++friction
コライダーとの摩擦係数。コライダーと引っ掛けたいなら1にする。
++Collision Mass Scale
各頂点の質量。布の重さの表現に使う。20から試すと良い。
++Use Continuous Collision
高速で動く物体に対しての接触判定の精度が上がります。
計算量は2倍になります。
++Solver Frequency
物理演算の頻度。120~300推奨。
++Use Virtual Particles / Virtual Particle Weights
衝突の安定性を向上させ突き抜けを防止する。
true,デフォルト値を推奨。
++Sleep Threshold
スリープ状態になる頂点速度のしきい値を設定します。
この値以下の細かすぎる動きを無かったことにできます。裾とかが小刻みにプルプルし続けるのを防いでくれる
++Capsule Colliders / Sphere Colliders
コライダーを設定する場所。 SphereCollidersの場合,2つで1セットとなり、コライダー間もコライダーとして機能する。
++++コライダーの設定方法
空のオブジェクトを生成しそこにColliderコンポーネントをアタッチし、それをclothのcollidersにセットすることで使用する。Collderコンポーネントをアタッチした空のオブジェクトは最終的にオフにするか、IsTriggerにチェックを入れておく。
スカートなどの場合、コライダーをUpperLeg,LowerLogアーマチュアの直下に入れればよい。
++++設定例
++参考
説明書に載ってない本当のClothコンポーネント ~VRChatで使うClothコンポーネント~ - Qiita
VRoidのワンピーススカートに、UnityのClothコンポーネントを適用し、VRChatに持っていくまで - Qiita