難しくないが、忘れてるのでここに書き記す。絵がなくてごめんなさい。
バインドは縛る、束ねるみたいな意味で、スケルトンが入ってない3Dのオブジェクトに、スケルトンを入れ込み機能させるみたいなこと(だと思います)。
用語
- ジョイント
- ボーン
- スケルトン
- リグ
- エフェクタ
まず、この辺の言葉を適当に使ってると齟齬が生まれるので、ちゃんと覚えたほうがよさそう。ここを参考にした
C4DからUnityで動かすまでの手順
- 動かしたいメッシュを用意する
- ジョイントツールを使い、メッシュに合わせたスケルトンを作成。
- メッシュにスケルトンをバインディングする
- FBXで書き出し、Unityで読み込む
- FBXのインスペクタのRigという設定AnimationTypeをHumanoidにする。
- Humanoidに対応したアニメーションを適用する。
Cinema4dでやること
バインドのやり方
簡単なやつと手動っぽいのがある。Unityで使うなら後者のがいいような気がしている。
- 簡単方式:キャラクターオブジェクトを使って、お手軽に作れるが、書き出した際の構造がUnityに合わない(たぶん)。
- 手動方式:ジョイントツールを使ってぼーんを生成していく、汎用性は高いかもしれない。
ツールの使い方
- 「キャラクタ>ジョイントツール」を使う
- ジョイントツールのオプション「ルートヌル」はオフにしといたほうがいい。余計な空オブジェクトができちゃう。
- Ctrl +クリックするとジョイントができてどんどん繋がっていく
- Shift + クリックするとボーンが2個に分かれる
- くっつけ方。 くっつけたいジョイントを選びつつ、ジョイントツールで生成。
参考にしたページ http://ameblo.jp/try-c4d/entry-11828376354.html
ジョイントをメッシュにバインド
メッシュとジョイントを全選択(選択されてないジョイントはバインドされないので忘れず全選択)し、「キャラクタ>コマンド>バインド」を実行
※バインドがうまくいかないときは、ジョイントのプロパティが「ボーン>親から」になってるのを確認
ウェイト調整
面倒なので割愛。いつかやる。
いちから作るのが面倒なとき
Unityで人を動かすことが目標なので、もう既にあるモデルからスケルトンだけ抜き出して、あとは位置調整&バインドすればいい。一番手っ取り早いし、Unity上で必ずスケルトンは認識されるし
書き出し
fbxで書き出せば良い。
Unityでやること
FBXを設定
Unityに読み込んで(Asset以下に放り込んで)、rigのアニメーションタイプが、Humanoidになってることを確認。configureから、リグがちゃんと効いてるかどうか、確認できる。
Locomotion
キーボードでテスト的に動かしたいときは、Locomotionを使う。
https://www.assetstore.unity3d.com/jp/#!/content/7673
やり方
- Locomotionをアセットストアからダウンロードしてくる
- GameObjectのAnimationControllerに、Locomotionをつける
- スクリプトでLocomotionPlayerをつける