H21のキーノートでは、Autorig Builderで1からスケルトンをつくることができますという説明があり、どうやるんだろうと私なりに考えました。今後更新する可能性はありますが、現在のできる方法を紹介します。
ここではHoudiniのAutorig Builderでまずはスケルトンを作りました。
方法はリグを作る方法と同じようにドラッグ&ドロップすると、自動で同時にジョイントが作成されます。
参考:Houdini21 :Autorig Builderを使用したリギング パート2
ただし、スケルトンがないということはウェイトがないので骨の位置が確認す憎いという点があります。
そこで、Autorig BuilderのオプションにあるAdd Preview Skin Weightを有効にします。
Autorig Builder HDAの中をみるとわかるのですがここで適用されるのはJoint Capture Proximityが簡易的に適用されています。
Max Influenceが2に設定されているので滑らかなウェイトというより骨の場所わかりやすい形で形状が変形します。
こんな感じ。
ちなみにリグを動かした場合は、ここでリセットできます。
この時にこのような感じになっていて、この後どうやってウェイト付けと編集を行うの?ということになります。
Autorig Builderではキャラクターをパックした状態になります。
そのため、スケルトンをスキンジオメトリを取り出して、ウェイトを設定してく必要があります。もちろんHDAを開いて、その中で編集してもいいのですが、ここではAutorig Builderの中は変えない方法をとります。
まず、ポーズを変えながらウェイトを変更したいのでScene Animateを追加しておきます。
APEX Unpack Characterを追加し、
データをスケルトンやジオメトリなどに分けます。
Joint Capture Biharmonicを追加します。
1つ前の記事で4年前(18.5)では、Bone Capture Biharmonicを使っていたのですが、これをもう少し使いやすくしたJoint Capture Biharmonicというノードが19で追加されていました。
これでウェイトが設定できるので、最初にウェイトを編集するJoint Capture Biharmonicを追加しておきます。
ここまででセットアップは終わったのでウェイト修正をしていきます。
Joint Capture Paintを表示しながら、Scene Animateを使ってリグを動かしてみます。
ビューポートツールバーでDisplay Deformed Geometryが有効になっているため
変更したポーズでウェイト修正画面をみることができます。
Soreadsheetボタンをクリックするとウェイトの編集するためのリストが表示されます。
まず肩回りのウェイトを編集したいのでAキーを押してジョイント選択モードにします。
これで任意のジョイントをクリックして選択すると、そのジョイントのウェイトをみることができます。
次にZキーをおして、ウェイトを修正するためにウェイトロックを解除するジョイントを選択モードにします。
Ctrlキーを押しながら矩形で関連するジョイントを選択します。
このウェイトロックはパラメーターでみると、Unlocked Jointsとなっており、選択したジョイントがここに入力します。
通常は*(アスタリスク)となっており、すべてのジョイントのウェイトがロック解除された状態でペイント可能です。
ペイントの設定が終わったので、Zキーを押してPaintモードにもどります。
ショートカットを使用して、半径、値、不透明度などブラシ設定を行います。
Cキーを押すと、ペイントモードを変更できます。
ウェイトが白黒の方がわかりやすければパラメーターで表示を変更することもできます。ペイントして修正しました。
cキーからSmoothを選択し、でこぼこしてしまった部分を修正もできます。
このような形でウェイト修正が完了したら、またキャラクタをPackする必要があります。
再度Apex Pack Characterを追加します。
ウェイト変更用のScene AnimateはBypassして、下に新しいScene Animateを追加しウェイトの変更を確認してみてください。
Joint Capture Paintには多くのオプションがあるのでぜひ確認してください。
Paint後、Capture Correctを追加し
調整を行うことも可能です。
後で使用するためにFile Cacheノードで保存します。
アニメーションをつけるためにこのリグ付きデータを読み込む場合は、Fileノードで読み込み、Scene Add Characterノードにつなぐといつでも使用可能です。
現在の検証結果はここまでとなります。また新しい情報がみつかりましたら、また追加します!