BlenderとUnityで作ったものをVR(Oculus  Quest/Oculus Link)で動かします

ブログの女の子を作る #65 Magica Clothで無重力のパンツと戯れる【Unity】

前回の記事では、Magica Clothの新機能「静止摩擦」でスカートの滑りやすさを確認しました。
 
静止摩擦がかなり良い感じなので、他に応用できないかと試してみました。今回はスカートとパンツを使っています。
 
なお、この記事は物理エンジンを使った挙動の確認実験です。Magica Clothの本来の使い方ではないかも知れませんのでご注意くださいね。



開発環境

・Blender 2.90.1
・Unity 2020.2.6f1(High Definition RP 10.3.1)
・Magica Cloth v1.9.2
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
・Oculus Quest 2(Oculus Link利用)
 

[実験1] スカートを落とす

まずは、スカートの静止摩擦(Static Friction)を変更して、スカートを落としてみます。
動摩擦(Dynamic Friction)も合わせて修正していますよ。
 

パーティクルの設定を変更する

Magica Clothのコンポーネントで、スカートのパーティクス設定を変更します。
 
本来であれば、スカート上部は「赤色のFixed Point」で固定する必要がありますが、これを「緑のMove Point」に変更します。
 
すべて緑色になりました。
 

動かすと少しずれた

この状態でUnityを「Play」すると、スカートが少しだけ落ちました。
 
ですが、激しい動きをさせてみても、これ以上は落ちません。
 
試しに「Collider Collision」をオフにして衝突判定を無くしてみると、もう少しだけ落ちました。
何か別の力が働いているようですね。
 

Penetration(浸透制限)をオフにする

いろいろ試したところ、「Penetration(浸透制限)」をオフにするとスカートが落ちることが分かりました。
 
どうやらこの機能で「スカートが一番最初の位置に戻ろうとする力」が働いていたようですね。本来は必要な設定ですが、今回は実験ですのでオフにして使っていきます。
 

地面にコライダーを付ける

スカートは落ちましたが地面を貫通してしまったので、Magica Clothのコライダーを付けておきましょう。
 
設定するのは「Magica Plane Collider」ですね。
 
これでスカートが地面で止まるようになりました。
 

歩くとスカートが外れた

更に、この状態でキャラクターを歩かせてみると、スカートが外れました
 
地面の上にスカートのオブジェクトが配置されても、破綻せずに存在できてますね。
スゴイです。
 

スカートがどこかに行く

いまのスカートは摩擦設定が少なめなので、放置しておくとスカートがどこかに行ってしまいます。
なんかシュールです。
 

[実験2] パンツを落とす

次は、パンツで試して見ましょう。
 

パンツにMagica Clothを設定する

スカートや他のオブジェクトに設定したのと同じように、Magica Clothを設定していきます。
 
Magica Render Deformer」を設定したり、
 
Magica Mesh Cloth」を設定したり、ですね。
 
パーティクルの設定も忘れずに。
先ほどのスカートと同じく、すべて「緑のMove Point」にしておきます。
 

パンツが落ちた

Unityで「Play」してみましょう。
 
Penetrationをオフにすると、パンツが落ちていきました。
 
両足にMagica Clothのコライダーを入れているので、ちゃんと足を通って落ちるのが良い感じです。
Penetrationをオンにすると、元に位置に戻っていきますよ。
 
ちなみにですが、パンツのパーティクルはすべて「緑のMove Point」にしているのと、そもそもMagica Clothを設定していますので、体のオブジェクトから少し離れた状態になっています。スカートに隠れて見えませんが。
 
Magica Clothに「メッシュコライダー」的な機能があると、体にフィットできるのかも知れませんね。それができればかなりスゴイ気がします。
 

パンツに近づくと消える

パンツの状態を確認しようとカメラを近づけると、
 
パンツが消えてしまいました。
 
カメラの角度を変えるとまた表示されます。
おかしいですね。
 

Skinned Mesh RendererのExtentを大きくする

これは、Skinned Mesh Rendererの「Extent」が小さいのが原因です。
 
Unityには「カメラの範囲外になった場合、描画負荷を下げるためにオブジェクトを非表示にする機能」があるのですが、それが発動したようです。上記の画像では常にパンツは見えていますが、元の場所(腰回り)が起点?ということになってるのかも知れませんね。
 
とりあえず、Extentサイズを10倍にしてみました。
 
これでカメラを近づけてもOKです。
 

コライダーの形状を修正する

パンツが足元に落ちた時、靴を貫通してましたので、コライダーの形状を修正しておきましょう。
 
こんな感じでしょうか。
 
これで靴を貫通しにくくなりました。
とはいえ、パンツのオブジェクトは薄いですので、貫通しにくくなっただけです。
 

動画で確認する

動画で確認してみます。
 
[重力でパンツが落ちる(静止摩擦弱め)]
・Dynamic Friction:0.1
・Static Friction:0.1
ストンと落ちる感じですね。
 
[重力でパンツが落ちる(静止摩擦強め)]
・Dynamic Friction:0.25
・Static Friction:0.25
摩擦を強めにしてみると、ゆっくりと落ちつつ、膝付近で少し引っかかる感じになりました。
 


(修正作業) Blenderでパンツを修正する

いまのパンツは動かすことを想定してなかったので、かなりのローポリになってます。
 
Magica Clothで変形した時、カクカクが残ってましたので面を増やしておきます。
 

ナイフツールで面数を増やす

作業はBlender側で行います。
 
修正前のパンツです。
 
ナイフツールで切り込みを入れ、面を増やしていきます。
面を増やしたいだけなので、ざっくりと。
 
面が増えました!
面数を見てみると、2,148 → 2,903になってました。これくらいで良いでしょう。
 

Unityで試してみる

Unityにインポートし直して、Magica Clothを再設定します。
 
カクカクさが減りましたね。
 

[実験3] 無重力でパンツと戯れる

最後の実験です。
 
Gravity(重力)とPenetration(浸透制限)をどちらもオフにして、無重力状態のパンツと戯れてみます。
布の挙動がリアルですね。
 
静止摩擦設定が無い時はうまくつかめませんでしたが、0.25あたりの設定にしてみると、良い感じにパンツをつかんだり、伸ばしたりすることができました。パンツが「パンツ自身に対するコライダー判定」は無いので布を貫通してしまうのと、無重力の状態のため、すぐに裏返ってしまうので調整は大変でしたが。。。
 

まとめ 

Magica Clothの静止摩擦を使って、いろいろ実験してみました。
 
まさか無重力でパンツと戯れることができるとは思いませんでしたよ。
Magica Clothは本当にすごいですね。
 
スポンサーリンク

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

ブログの女の子を作る #64 Magica Clothの静止摩擦でスカートの滑りやすさを確認する【Unity】

ブログの女の子を作る #66 4KのPBRテクスチャでTerrainの地面をリアルにする(+木のボリュームアップ)【Unity】

最近のコメント

だーしゅ
IT関係のお仕事してます。
VRは楽しいですね。

[当ブログについて]