Onoty3D

Unityに関するメモとか

Interactive Clothを試す(1) SoftBody編

今年に入って、Leap Motionを手に入れました。
Unityのサンプルをひと通りさわったところで、さて次は何をしようと考えていたところ、「揉みなさい」という天啓を得ましたので、揉んでみることにしました。

揉もうにも揉むものがなければ揉むに揉めない。
先ずは揉めるものを作らねば…。

揉めそうなもの、どうやって作るんだろうと色々と探ってみたところ、「SoftBody」というキーワードを手に入れました。
そしてUnityでは「Interactive Cloth」というコンポーネントでそれが実装できるようです。
Clothの名前の通り本来は布のシミュレータっぽいんですが、球体のような閉じたものに適用させると、柔らかな物体のように振る舞うようです。
free版でも使えるようなので助かりました。
利用は簡単で、UnityエディタのHierarchyビューで、Create>3D Object>Clothと選ぶだけです。
デフォだとMeshにPlaneがセットされていますが、これをSphere等に変えると柔らかいボールになります。

早速試してみた結果がこれです。(画像クリックで動画再生)

見事な潰れ具合に、一瞬感動しかけましたが、そうじゃないです。

何がだめなのかと改めて調べたところ、Pressureというパラメータが0だったのがいけなかったようです。
そこに適当な値をセットして、改めて試した結果がこちら。(画像クリックで動画再生)

やったね!
なお宝石シェーダーを適用させるとスライムぽくっていい、という知見も得ましたので、最終的にこんな感じになりました。


LeapMotionとSoftBodyテスト - YouTube

なんか粘度まで感じます。キモい。

InteractiveClothの各パラメータの解説は、公式のリファレンス等を御覧ください。
http://docs.unity3d.com/ja/current/ScriptReference/InteractiveCloth.html

なお、実際使ってみてわかったのですが、Interactive ClothはMeshがいくら移動してもTransformの値が変化しません。
見た目の装飾にはいいかもしれませんが、これを何かにぶつけてどうのこうの…といったゲーム等にはあまり向いていないかも?