PhysicalBoneで髪の毛とかスカートとか揺らしてみる

今回は<a href="https://www.assetstore.unity3d.com/jp/#!/content/54751" target="_blank">PhysicalBone</a>でちょっと遊んでみます

##デモシーン
髪揺れ、スカートやあとはwindzoneにも反応します
![PhysicalBone.gif](https://qiita-image-store.s3.amazonaws.com/0/46444/cf50f495-8977-522a-413b-b140f72ae079.gif)
ロープなどもできます
![PhysicalBone2.gif](https://qiita-image-store.s3.amazonaws.com/0/46444/ef571a86-8f7b-700e-1799-3ea4408af5b2.gif)

##インポートしたところ
<img width="201" alt="スクリーンショット 2016-07-12 14.40.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/bed35695-fecc-c4dc-48da-a1eeff021f7d.png">

##とりあえずDemoの女の子を自分でセットアップしてみる
ちなみにDemoの女の子の骨構造はこんな感じ。
<img width="570" alt="スクリーンショット 2016-07-12 14.44.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/cc07a18d-6c24-25de-83fd-8bc27b1adceb.png">

まずはとりあえず配置
左がmodelをそのまま配置したもの右がセットアップされたもの
<img width="403" alt="スクリーンショット 2016-07-12 15.14.13.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/fdc3b302-6447-9d8b-e9ff-a1fa74a9a4b0.png">

とりあえず配置したモデルにrigidbody capsleColliderをアタッチ。
前後移動とかコード書くのがめんどくさいのでBodyController.csをアタッチ
このスクリプトはウィンドゾーンアタッチしないとエラー吐くので修正するかwindzoneを作ってアタッチすること。
<img width="484" alt="スクリーンショット 2016-07-12 15.15.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/61555235-04d2-7255-ce95-e7f530eddd0d.png">

するとこの状態になるのでここからセットアップ開始
![PhysicalBone3.gif](https://qiita-image-store.s3.amazonaws.com/0/46444/3edadc30-a708-f6fc-3493-91af9caeb954.gif)

##まずは髪の毛
髪の毛のセットをしてみる。
まずはこの子のobj事態にPhysicalBoneManager.csをアタッチ
設定はあとでやるので一旦アタッチだけ。
<img width="468" alt="スクリーンショット 2016-07-12 15.19.23.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/8870a22b-03e8-4a06-cbdc-e8b43434edd3.png">

それから髪の毛の親の骨この子の場合hairにPhysicalBoneをアタッチ
<img width="493" alt="スクリーンショット 2016-07-12 15.23.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/04517cb0-b7eb-489d-3afb-b8f093ba51b6.png">

このhairの骨はmayaでみるとこの骨です
<img width="333" alt="スクリーンショット 2016-07-12 15.31.16.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/b78aeddd-7c9a-90fd-516f-0b3345256a7a.png">

アタッチするとScene上に赤い円のギズモがいっぱい表示されます。
子の場合ちょっと大きすぎるのでRadiusなどを修正していい感じのサイズにします
<img width="254" alt="スクリーンショット 2016-07-12 15.23.06.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/3173078b-9076-8a26-3b44-05cf9e3bc43d.png"><img width="230" alt="スクリーンショット 2016-07-12 15.24.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/b662334b-01b6-7414-4d35-d7279613adf5.png">

そしたら一度PhysicalBoneManagerのBoneRootsにこのscriptをアタッチします。
<img width="461" alt="スクリーンショット 2016-07-12 15.36.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/0fd13ae1-91ac-da11-8f19-933e016a2377.png">

さてここで一旦再生してみます〜　すると・・・・
![PhysicalBone4.gif](https://qiita-image-store.s3.amazonaws.com/0/46444/7b2c988f-2a18-1032-849d-37a87069791e.gif)
なんとういことでしょう。カツラ状態に。これはhairのphysicalBoneのインスペクターで、動かしてはいけない骨まで動いてしまってるから。これを直します。PhysicalBoneのBone Atrribute というところです。

Bone Atributeを開くと骨の名前がずらっと並んでいるのでhairのFreezedにチェックを入れます

<img width="466" alt="スクリーンショット 2016-07-12 15.40.32.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/ca4ad322-9b82-40f1-de62-ac3e21406a5b.png">

するともうずれません。
![PhysicalBone5.gif](https://qiita-image-store.s3.amazonaws.com/0/46444/e560bd8c-3de1-8477-ca6d-64e894eb2cd8.gif)

細かい設定もこれでできるので前髪の揺れ幅的なものなどを好みで設定します。

##当たり判定
現状は左の状態です。
現状だと型や顔に髪の毛が減り込むので次は当たり判定の設定していきます。
![PhysicalBone6.gif](https://qiita-image-store.s3.amazonaws.com/0/46444/ce90dc5e-6b93-a67c-884e-2e3344813f9b.gif)

まずは顔や型など当たり判定をつけたい骨を選択し、コリダーをつけます。
コリダーはSphere Collider, Capsule Collider, Box Collider, Terrain Colliderに対応しているようです。
コリダーをつけたらサイズを調節し、
<img width="284" alt="スクリーンショット 2016-07-12 15.50.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/aaacb84b-e8c7-84d7-0915-b2aa2300cc64.png">

Phycical Bone Colliderをアタッチ
<img width="478" alt="スクリーンショット 2016-07-12 15.50.38.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/d4de5610-de7e-e916-3ee9-16babe90916f.png">

そしたらPhycical ManagerのGlobalCollidersにアタッチしてあげればOKです。
これを必要な分やってあげます。
<img width="463" alt="スクリーンショット 2016-07-12 15.51.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/3a70861c-26ac-c415-5252-74f90a6915d5.png">

めんどくさいので左手の部分だけセットアップしてみました。
こんな感じ
<img width="254" alt="スクリーンショット 2016-07-12 15.58.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/46444/421eba12-fffd-06d9-f065-dfd4fa5c5b93.png">

左の部分だけですがバッチリです!
この勢いで足などにもコリダーセットしてあげたりすればスカートとかもできます。
![PhysicalBone7.gif](https://qiita-image-store.s3.amazonaws.com/0/46444/39f3c364-be53-8179-1bca-220ab6305fdb.gif)

とりあえずここまで〜。
あ、ちなみにこの女の子はメカニム対応なのでアニメーション変えたり簡単にできるので
とりあえずの仮モデルとしては優秀!
![PhysicalBone8.gif](https://qiita-image-store.s3.amazonaws.com/0/46444/adfcde19-0480-89ca-e3db-59ab76f7dc0b.gif)
がに股・・・wもう少し可愛いアニメーションアタッチすればよかった。