体のコントローラの値はすべて同じ値が入っているべきだと思っているので、そうなるようなスクリプトをChatGPTくんに作ってもらいました。 内容としては、 アーマチュア(PoseMode)の選択しているコントローラ(ボーン)のXYZの回転(オイラー)がズレている場合平均値を代入してくれるというものです。 Mayaと違って複数ボーンに同じ値を入れるのが結構めんどい(Alt押しながらEnter)ので。 PoseModeじゃないといけなかったり、選択しているキーフレームを取得するのが難しかったりしたので現在のフレームを対象としています。 import bpy import math # アクティブなオブジェクトを取得 active_object = bpy.context.active_object # オブジェクトが存在し、Poseモードであることを確認 if active_object and active_object.mode == 'POSE': # アクティブなポーズのフレーム番号を取得 frame_current = bpy.context.scene.frame_current # 選択されているボーンのリストを取得 selected_bones = [bone for bone in active_object.pose.bones if bone.bone.select] # ボーンごとの各軸回転の合計を初期化 total_rotation_x = 0.0 total_rotation_y = 0.0 total_rotation_z = 0.0 for bone in selected_bones: # ボーンの各軸回転を取得し合計に加算 total_rotation_x += bone.rotation_euler.x total_rotation_y += bone.rotation_euler.y total_rotation_z += bone.rotation_euler.z # 各軸の回転の平均値を計算 average_r
Cascadeurでは、男女や猫のモデルが用意されていますが、自分で用意したモデルで作りたくなりますよね。最近追加されたQuickRiggingToolを使って、セットアップする手順を紹介します。
今回はMMDのモデルをMayaに読み込んで、ボーンを編集しスキンを調整し、リギングします。その時の注意点をまとめていきます。もちろん他のモデルでもリグのセットアップの仕方は同じです。
MMDのデータからMayaに読み込むときのプラグインはmmd-transporterを使用しました。MMDのデータの利用規約は作者によって異なります。MMD以外のソフトで使用することを禁止している場合もあるので、利用規約をしっかり読んでください。
必要な骨
Cascadeurのクイックリギングツールで必要な骨は、このような感じです。MMDの骨で一番特徴的なのは、腰のボーンが上半身の親になっていないことです。他にもIK用だったりルート用のボーンも用意されているので、下記の手順で削除してしまいましょう。
Mayaの機能で、スキニングされている状態で骨の位置や数を調整できます。リギングメニューにしてからスキン>スキンされたジョイントの移動です。
調整手順
- 1. 足のIK用のボーンを削除します。
- 2. sentaaというボーンの子供にjouhanshinとkahanshinがくっついています。jouhanshinを腰のルートにするので、足の付根の間くらいの位置に移動させ、jouhanshinをkahanshinの親にします。
ボーンの位置を移動 |
ウェイトの具合を確認 |
- 4. つま先に関節がないので、それも設定します。ashikubisakiという足の末端のボーンを移動し、その末端に対してウェイトを設定します。
- 5. jouhanshinの位置が腰より前にあると、後々変な動きになってしまうので、それを調整します。
- 6. ボーン足したり引いたりしているので、その分のスキンの調整をしなくてはなりません。調整にはSIWeightEditorというプラグインを使用しています。
リギング手順
- 1. FBXで読み込み、RigModeOnにするボタンを押し、Yes>Quick rigging tool。それぞれの部位でボーンを設定していく。LとRが付いているからと言って自動で左右の設定をしてくれるような機能はまだないようです。右上の三を押すと設定ファイルのエクスポートができるので、試行錯誤するときは一旦保存しておくと次楽です。
- 2. 全部設定ができたらCreate prototypes rigのボタンを押します。すると、ボーンを元にコントローラと、バンディングボックスが作成されます。青い球がバウンディングボックスのサイズです。バウンディングボックスについている黒い点がコントローラになります。頭のバウンディングボックスが大きくずれているので調整します。
コントローラ位置調整 |
- 3. 調整方法は、黒い点をドラッグするだけです。口元やつま先のコントローラの位置も調整します。
- 4. 各種調整が終わったらGenerate rigのボタンを押すとコントローラが作成されています。最初に押したリグモードのボタンを押せば調整モードにすぐ戻れます。
- 5. コントローラが作成されていれば、オートポーズモードも使うことが出来ます。あとはひたすら微調整を繰り返してください
Cascadeurでは、本格的なマテリアルエディタはなく、メッシュに対してテクスチャは一つだけ貼ることが出来ます。ですので、必要に応じてUV編集やテクスチャ編集で一つのテクスチャにまとめることができれば正しく表示できます。
私はポーズを付けてからそれに気づいて、いろいろ調べた結果モデルの置き換えができるらしいと知りました。正常に置き換えが出来たと思ったのですが、AutoPhysicsのプレビューが表示されなくなってしましました。モーションの書き出しもすることが出来ますが、ボーンの数やフレーム数に制限があり、最初に読み込んだものがどうやらボーン数制限に引っかかっていました。お気をつけください。
アニメーション作業について
クイックリギングツールでセットアップが完了すると、オートフィジクスやオートポーズなどの各種機能が使えるようになります。
ここからモーション作成に入っていきたいのですが、キーを打ってキーの間の補完の調整(ベジェ、直線、IKFKなど)をパーツごとに行うためには、トラックを分ける必要があります。
それについてはまた次回
コメント
コメントを投稿