開発第2弾
髪を触る
こちらを真似してLeapMotionで MMDキャラの髪を触りました。
丸パクですが一応やり方を書いておきます。
MMDモデル側設定
UnityにMMDキャラを入れて、配置したら、設定でModelタブの一番下のPhysics EngineをBullet Physisにして、
次はPhysicsタブのGenerate Collidersの横のProcessボタンを押して
Join Local Worldのチェックを外して、Frame Per Secondを75にする。
全身にコライダーがつきました。
Leap Motioの手側設定
Hand Controllerを設置します。これのHand Physics Modelに使われているRigid Round Handを探してきてこれもhierarchyにおきます。
そしてこれのrigidbodyが着いている部位を全部選択して
MMD Mechanim Rigid Bodyスクリプトをつけます。
あとは今の変更をRigidRoundHandプレハブに適用するためにApplyを押します。
もしくは今作ったのをさっきのに当てはめてもいいかも?
あとはカメラとか調整してできた!
使用モデルは(c)Kizuna AIです。カチューシャもぴょこぴょこ動いて可愛いですね!
プロ生ちゃんでやりたい
プロ生ちゃんでもできるかな?
全身にこライダーをつけたら動くかと思ってSAColliderBuilderと言うアセットを適用してみましたが動きませんでした。
SAColliderBuilderの使い方は下の記事で書いています。
多分なんか設定したらできると思うのですが、よくわからないです。
関節を動かす
次はこんな感じで基準となる位置オブジェクトを元にモデルの関節を動かすやつをやりたいと思います。
IK付け
IKの付け方はこちらのニコニコ動画のやり方を参考にします。
公開していただいているコードを使ったらできました。
モデルのタイプをhumanoidにして、animation controllerを作ってIK Passにチェックを入れます。
あとはモデルに先ほどのスクリプトをつけて位置決めオブジェクトを置いてスクリプトにあてはめれば動きます。
動かしているところ。空のアニメーションを作るとなぜかこんな格好になる。
リープモーション
あとはこれをリープモーションの手で掴んで動かせるようにすればいい。
掴む動作は前の記事でやったけどあれはrigidbodyを重力ありで設定した。
基本的にリープモーションで触る時以外動いて欲しくない.
そこらへんの設定は最初に紹介した動画の以下の記事に詳しく書いてありました。
rigidbodyの設定はこんな感じでIkも重力も外して回転しないようにFrezeさせる。
そしてLayerでお互いに干渉しないようにする。メニューの「Edit」->「Project Settings」->「Physics」にある。
そしてGrabbable Objectのスクリプトを書き換えると動画のようにできました。
なんかエロい感じになってしまいました。
【国内正規代理店品】 Leap Motion 小型モーションコントローラー 3Dモーション キャプチャー システム
- 出版社/メーカー: Leap Motion
- メディア: エレクトロニクス
- この商品を含むブログ (3件) を見る