Blenderの「Wiggle 2」というアドオンを使用して、Mixamoのアニメーションに合わせてボーンの一部を揺らすまでの手順を紹介します。
前回の「Blender: 調整済みのウェイトを維持したままでボーンを追加する方法」の実践編といった感じになります。
1 はじめに
この記事では説明用にMixamoで公開されているメッシュ・アーマチュア・アニメーションを使用して、画像1のような元の状態から、
画像2のように髪の部分をWiggle 2で揺らすまでの手順を紹介します。
同じ内容を下記の動画でも紹介しています。
Mixamoの使用にはAdobeのアカウントが必要になるので事前に準備をしておいてください。また、Mixamo add-on for BlenderとWiggle 2というふたつのアドオンをダウンロードして使用します(すべて無料です)。
今回の記事の中で「ボーンの一部を揺らす」ということに限れば必須ではない手順もあるので、そう思うものがあれば省略して構いません。
2 Mixamoからダウンロード
下記のMixamoからメッシュとアーマチュアをダウンロードします。
CharactersのMICHELLEを選択して(画像3参照)、
AnimationsのWalkingを選択して(画像4参照)、
右側の設定でIn Placeにチェック(画像5参照)を入れたものをダウンロードします。
Download Settingsでは画像6のように設定します。
3 Blenderにインポート
ダウンロードが完了したらBlenderを起動してファイル(File)>インポート(Import)>FBX(.fbx)と進んで、Blenderファイルビュー(Blender File View)でダウンロードしたFBXファイルをインポートします(画像7参照)。
今回はMixamoのDownload SettingsのFrame per Secondで30を選択しているので(画像6参照)、Blenderでもプロパティ(Properties)>出力(Output)>フォーマット(Format)>フレームレート(Frame Rate)で30fpsを選択します(画像8参照)。
ダウンロードしたアーマチュアを選択した状態でタイムライン(Timeline)を確認すると1フレームから30フレームまでキーフレームが挿入してあるので、終了(End)を29に変更します(画像9参照)。
この状態で再生するとアニメーションをスムーズにサイクルできます(画像10参照)。
ボーンがメッシュに隠れないようにプロパティ(Properties)>オブジェクト(Object)>ビューポート表示(Viewport Display)の最前面(In Front)にチェックを入れて、表示方法(Display As)でワイヤーフレーム(Wired)の表示にしておきます(画像11参照)。
4 Mixamo add-on for Blenderでボーンを作成
Mixamo add-on for Blenderを使用してコントロール用のボーンを作成します。
Mixamo add-on for Blenderは2024年2月の時点ではBlender 4.0以降では使用できないので、Blender 3.6などを使用してください。コントロール用のボーンを作成した後であれば、Blender 4.0で操作しても問題ありません。
Mixamo add-on for Blenderを下記のサイトのGet the Add-onからダウンロードしてインストールします。
インストールができたらインポートしたアーマチュアを選択した状態で、サイドバー(Side Bar)>Mixamo>Mixamo Control Rig> Control RigのCreate Control Rigをクリックします(画像12参照)。
Create control rig from selected armatureのウィンドウではそのままOKをクリックしてください(画像13参照)。
これでコントロール用のリグが作成できました(画像14参照)。
5 髪用のボーンの追加と関連付け
5.1 ボーンの追加
アーマチュアを選択したら編集モードに切り替えます。
今回使用しているアーマチュアはプロパティ(Properties)>データ(Data)>スケルトン(Skelton)>レイヤー(Layers)で確認すると、画像15の位置に変形(Deform)用のボーンが配置されているので、分かりやすいようにこの下のレイヤーにボーンを追加します。
揺らしたい髪の部分に合わせて画像16のように左右対称なボーンを6つ追加しました。
追加したボーンの「Hair.001.L」と「Hair.001.R」の親には頭のボーンのmixamorig:Headを設定しておきます。
ボーンを追加する際に近くのボーンを複製するとコンストレイント(Constraint)などの余計な設定まで引き継いでしまう可能性があるので、Shiftキー+Aキーで追加したボーンを使用したほうがいいと思います。
ポーズモードに切り替えて追加したボーンだけをすべて選択したら、プロパティ(Properties)>データ(Data)>ポーズ(Pose)でレスト位置(Rest Position)を選択します(画像17参照)。
5.2 ペイントマスク(Paint Mask)
オブジェクトモードに切り替えてアーマチュア⇒メッシュの順番でShiftキーを押しながら選択します(画像18参照)。
現在メッシュがアクティブになっているのでそのまま編集モードに切り替えて、髪のメッシュだけを表示させます(画像19参照)。
今回使用しているメッシュは髪の近くに頭・ヘッドホン・メガネなど複数のメッシュがありますが、画像19のように編集モードで髪以外のメッシュを非表示にしておけばウェイトペイントモードでも非表示になるので、作業がしやすくなります。
髪のメッシュだけを表示できたら、追加したボーンで揺らしたい部分だけを選択します(画像20参照)。
選択ができたらウェイトペイントモードに切り替えて、ペイントマスク(Paint Mask)をオンにします(画像21参照)。
5.3 ボーンから自動割り当て(Assign Automatic from Bones)
追加したボーンがすべて選択されていることを確認してウェイト(Wights)内のボーンから自動割り当て(Assign Automatic from Bones)を使用して、追加したボーンの関連付けを行います(画像22参照)。
ここまで出来たらペイントマスクはオフにしておきます。
5.4 ウェイトの調整
現在、初めからあったmixamorig:Headと追加したボーンのウェイトの合計が1以上になっている部分があるので、これを手動で調整していきます。
ウェイトの調整を行うために一度オブジェクトモードに切り替えてアーマチュアを選択して、追加したボーンがあるレイヤーとmixamorig:Headがあるレイヤーを表示させます(画像23参照)。Shiftキーを押しながらクリックすると両方のレイヤーを選択できます。
表示できたらShiftキーを押しながらアーマチュア⇒メッシュの順番で選択して、ウェイトペイントモードに切り替えてウェイトの調整を行います。
今回の場合は主に画像24のようにmixamorig:Headのウェイトを値を0にして塗っていくことでウェイトの調整を行います。
今回使用しているメッシュは左右対称ではないので、ミラー(Mirror)をオンにしたままだとうまくペイントできない場合もあると思います。
ウェイトの調整が終わったら、オブジェクトモードに切り替えてアーマチュアだけを選択して、プロパティ(Properties)>データ(Data)>ポーズ(Pose)でポーズ位置(Pose Position)に戻しておきます。
6 Wiggle 2でボーンを揺らす
ウェイトの調整が終わったら、下記の場所からダウンロードできるWiggle 2というアドオンをダウンロードします。
Download ZIPからファイルをダウンロードするとインストールがうまくいかないので、上記のページのwiggle_2.pyと書いてあるところをクリックして(画像25参照)、
ページが移動したら画像の位置にあるアイコンをクリックしてDownloadをクリックしてwiggle_2.pyだけをダウンロードします(画像26参照)。後はBlenderプリファレンス(Blender Preferences)のアドオン(Add-ons)でインストールしてください。
ボーンを揺らすアドオンはWiggle 2以外にもたくさんあるので、好みのものがある場合はそちらを使用しても構いません。
アーマチュアを選択した状態でポーズモードに切り替えて、追加したボーンのレイヤーだけを表示して、追加した6つのボーンを選択します(画像27参照)。
サイドバー(Side Bar)>Animation>Wiggle 2のScene Mutedと表示されている左側をクリックして(画像28参照)、
Bone Tailにチェックを入れます(画像29参照)。
この状態でアニメーションを再生すると髪が揺れているはずです。
デフォルトの値では揺れが大きすぎたので今回はStiffの値を800に設定して再生させると初めに載せた画像2のようになります。
以上で完成です。
以上、Blenderの「Mixamoにボーンを追加して揺らすまでの手順」でした。
コメント