こんにちは、エンジニアのオオバです。
Blenderでキャラクターをモデリングしたらアニメーションをさせたいですよね。アニメーションに必要なのは 「ボーン」 と 「ウェイト」 です。ボーンはいわゆる「骨」。人間や動物も骨が動き、骨に連動して肉が動きますよね。3Dも同じなのです。
ボーンとあわせて紹介する「ウェイト」も超重要です。 ウェイトとは骨の動く量に対してどれだけ周りの頂点を動かすかを調整する項目 です。この2つはセットで考える必要があります。
ぜひこの記事をとおしてボーンとウェイトを設定できるようになりましょう。
前回ボーンをキャラに配置するところまでは完了しました。
まだボーンを追加していない方はこちらの記事から参照してみてください。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
ボーンをキャラクターに適用する2つのステップ
ボーンは配置しただけでは何も起きません。 「スキニング」 という作業をすることで各ボーンと各頂点は関連付きます。では、ボーンをキャラクターに適用(スキニング)する手順を順に解説します。
①キャラクター → ボーン(Armature)の順に選択
②「With Automatic Weights」を実行
ステップ①キャラクター → ボーン(Armature)の順に選択
スキニングする際はBlenderのOutliner(アウトライナー)を使います。アウトライナーにはBlender上に配置された全オブジェクトが管理されています。Unityで言えばHierarchyウィンドウのような存在です。
では、スキニングするためにキャラクターモデルを選択して、ボーンを選択しましょう。
まずは キャラクターモデル(ここではChara) をクリックしてください。コマンドキー(Windowsの方はCtrlキー)を押しながらボーン(Armature)をクリックしてどちらも選択された状態にします。
ここで 重要なのは選択する「順番」 です。
スキニングしたいオブジェクトを選択してから、ボーン(Armature)を選択 するのです。
するとボーンよりキャラクターモデルの方が 濃いオレンジ色 になったら成功です。以上でスキニング前の準備は完了です。
ステップ②「With Automatic Weights」を実行
次に実際にスキニングを実行します。
Objectモードの状態で、
メニューObject > Parent > With Automatic Weights
をクリックしてください。ショートカットは「⌘ + P(or Ctrl + P)」です。 再びOutlinerをチェックしてみます。すると上図のように Armatureの中にキャラモデルが内包 されます。以上でスキニングは完了です。
本当にスキニングが成功しているのかボーンを動かしてみましょう。
Blenderのモードを 「Pose Mode」 にします。
どこかボーンを1つ選択してで回転させてみましょう。ショートカットは「R」です。
すると、このようにボーンに連動してメッシュが動き出しました。もし動かないという方は、スキニングの手順をもう1度確認してみましょう。Armatureとモデルの選択順を間違えているかもしれません。
ボーンを動かすと分かるのですが、 動いてはいけない部分まで動いてしまう箇所があります。 ボーンの影響度を制御するために 「ウェイト」 を設定していきます。
Blenderでウェイトを設定する3ステップ
本章ではスキニングしたキャラクターのウェイトを設定していきます。
①ボーンの可視化
②Weight Paintの準備
③頭部頂点のウェイト値をWeight Paintで設定する
ウェイトを設定する方法はいくつも存在します。今回紹介する方法は1つの参考として捉えてください。インターネットを検索するとさまざまな方法がありますので、ぜひ他の方法も調べてみましょう。
ステップ①ボーンの可視化
Blender内のキャラクターを見ると分かるのですが、 ボーンはキャラクターのメッシュ内に隠れて見えません。
この状態では作業しづらいため、ボーンを可視化します。
ボーン選択した状態で、人アイコン(Object Data Properties)の中の 「In Front」 にチェックを入れます。注意点は ボーンを選択していないと人アイコンは表示されないこと です。
「In Front」にチェックを入れるとボーンがメッシュより前面に常時表示されます。
ステップ②Weight Paintの準備
ここからは実際にウェイトの値を設定していく工程です。「Weight Paint」と呼ばれるツールを使います。 ウェイトとhは頂点ごとに設定される値 です。頂点にブラシで塗っていくようにウェイトを設定していきます。
キャラクタモデルを選択してモードを 「Weight Paint」 に変更します。
すると着色されたキャラクターモデルが表示されました。この「色」がウェイトの値です。色の範囲は赤から青です。 赤色が「1.0(最大値)」、青色が「0.0(最小値)」 のウェイト値となります。
最初から色がついている理由は「ステップ②「With Automatic Weights」を実行」でスキニングした際に自動的にウェイトの値が設定されたからです。自動的に設定されたウェイト値が完璧なら良いのですが、そうはいきません。
実際にウェイトを設定するとボーンと頂点は以下のような関係になります。
- ウェイト値が1.0(赤色)の場合、ボーンの動きに対して頂点は100%追いかける
- ウェイト値が0.0(青色)の場合、ボーンをいくら動かしても頂点は無反応
- ウェイト値が0.5(緑色)の場合、ボーンの動きに対して頂点は50%追いかける
といった感じです。 ウェイトの値によってアニメーションのクオリティは大きく左右 するのです。
ではキャラクターの頭のウェイトを設定していきましょう。 ボーン名は「Head」です。
上図の①逆三角形アイコン(Object Data Properties)を選択します。リストアップされたボーンの中から②「Head」を選択します。
すると、頭部が赤く、体の方は青い状態のモデルになります。この状態の何が悪いのかを確認するために、ボーン「Head」を回転させてみましょう。
すると頭を動かしているのに体も引っ張られて動いてしまいます。これで良い場合もありますが、本記事ではボーン「Head」は 頭部の頂点だけが動くようにしてみます。
ステップ③頭部頂点のウェイト値をWeight Paintで設定する
頭部頂点のウェイト値を設定していきます。やるべきことは頭部を含むすべての頂点のウェイト値を0にし、頭のウェイト値だけを1にするのです。
すべてのウェイト値を0にする
ウェイトを設定する前にWeight Paintのブラシを設定します。「Brush Settings」からブラシを以下の設定にします。
- Weight(設定するウェイト値)を0
- Strength(設定の強さ)1
- Radiusは各自調整
※Brush Settingsが表示されていない場合は「Nキー」をクリックしてみてください。
ボーン「Head」を選択した状態にします。
そして、上の動画のように、頂点にウェイトをペイントしていきます。青(ウェイト値 : 0)をすべての頂点に塗りましょう。
全身「青色」が塗れたら頭の頂点に1を塗っていきます。
頭部頂点にウェイト値「1.0」を設定する
再びBrush Settingsからブラシを以下のように設定します。
重要なのは「Weight」を1.0にすることです。
頭部頂点だけにペイントしていきます。はみ出てしまった場合は、Weight値を0にして修正しましょう。
上図のように用に頭部だけ赤が塗られたら完了です。
この状態で正しくアニメーションするか、モードをPose ModeにしてボーンHeadを選択して動かしてみます。
すると無事に頭部だけ動くようになりました。
ウェイト設定後 | ウェイト設定前 |
---|---|
頭部だけ動作 | 頭部外も動作 |
このようにウェイトを適切に指定することでボーンの動きを適用した頂点を設定することができるのです。
ボーン「Head」の要領で他のボーンのウェイト値を設定してみてください。
指定したウェイト値を一発で設定できないときの対処法
ウェイト値を1.0に設定しているにも関わらず、ワンクリックで赤くならない(1.0に設定できない)ときはFalloffを疑いましょう。
Falloffを 「Constant」 に設定することで、指定したウェイト値を一撃で設定できます。
Blenderでウェイト値を設定する方法まとめ
本記事ではBlenderでウェイト値を設定する方法を解説しました。簡単に内容をまとめます。
①ボーンをモデルに適用する(スキニング)
②作業しやすいようにボーンを可視化する
③Weight Paintを使ってウェイトを設定
こんな感じです。3Dモデリングウェイトは必須スキルです。どんなに良い造形物を作ったとしても適切にアニメーションできなければ、その良さは伝わりません。しかし、ウェイトの指定方法はとても地味ですよね。頂点ごとに調整していくのは骨が折れる作業です。
この小さな作業の積み重ねが素晴らしい作品を生み出すことに繋がると思っています。
冒頭で述べたとおりウェイト設定は人それぞれのやり方が存在します。何度もウェイトを設定していくうちに自分なりのやり方を手に入れてみてください。
そして、まずは基本的なウェイト設定の方法をマスターしましょう。この記事を何度も読み返して基本的なウェイト設定を覚えてみてください。1度覚えると3Dモデリングの幅は広がり、そして楽しくなるはずです。
この記事があなたの人生を豊かにする手助けになるとうれしいです。
※最後にジョジョ立ち風ポーズを、ボーンを動かして作ってみました。
この記事が気に入ったらフォローしよう
- Blender2.93.1