電通総研 テックブログ

電通総研が運営する技術ブログ

Blenderで自作の3Dモデルにアーマチュアを追加して、アニメーションさせる

こんにちは、電通総研金融ソリューション事業部の岡崎です。

今回は3Dモデルにアニメーションをつけるために、
Blenderを使用して、アセット内にアーマチュア(ボーン)を作成して
アニメーションを動かすまでの作成方法をご紹介します。

検証環境/ツール

実装手順

  1. アーマチュアの作成
  2. アーマチュアの各ボーンの名称を変更
  3. アーマチュアとメッシュの結合
  4. アニメーションの作成

1. アーマチュアの作成

まずはアニメーションをする元となるアセットを用意します。
今回は簡易的に作った二足歩行の動物のアセットを使用します。

画面上部ファイルからインポートを選択肢、任意のFBXファイルをインポートします。

インポートが完了したら画面左上のモード切り替えから「オブジェクトモード」を選択します。

「Shift + A」を押して追加ウィンドウを表示させて「アーマチュア」を選択します。

ボーンが生成されました。

次に、メッシュの内部にアーマチュアを配置する際に最前面に表示できるように設定します。
プロパティタブのオブジェクトデータプロパティを押下します。

ビューポート表示の最前面にチェックを入れます。

これでアーマチュアが最前面に表示される様になります。

それではアーマチュアを使ってボーン構造を作成します。
モードを編集モードに切り替えます。

ボーンの色がオレンジに表示され、編集できる様になりました。

アーマチュアの位置を腰の位置まで移動します。

このボーンを基準に胴体、手足、頭などのボーンを追加します。

まずボーンが左右対称に追加できる様に設定します。
ビューポート上でキーボードの「N」を押下して、ツールメニューが表示されるので、「X軸ミラー」をオンにします。

次にボーンを追加します。
ボーンの先端の丸を選択して、「E」を押下し、マウスを移動するとボーンが追加されます。

同様の方法で、キャプチャのように背中、首、頭を作成します。

次に首から腕を作成します。

首の根本を選択して、「Shift + E」を押し、分岐のボーンを作成し、
ボーン追加の時と同様の手順で、マウスを移動させてボーンを追加します。

肩より先は、通常のボーンの追加方法で手の先まで作成します。

続いて腰から足を生やします。

腰のボーンの根本を選択します。

腕の時と同様に、「Shift + E」を押し、分岐のボーンを作成します。

さらに「E」でボーンを追加して足を作成します。

今回のモデルは耳もあるので、耳にもボーンを追加しておきます。

ボーンが完成した様に見えますが、腰と足のボーンはまだ接続できていません。
ボーンは細い先端の部分から追加作成する場合は連結されますが、
根本から作成した場合は連結しない性質があります。


(ボーンをずらしてみると連結していないのがわかります)

ですので、腰のボーンに足のボーンが連動する様に設定します。

まずは足のボーンを選択します。

次に腰のボーンを「Shift」を押しながら追加選択します。

次に「CTRL + P」を押してオフセットを保持を選択します。

これで連結ができる様になりました。

試しにボーンを移動してみると、今度は破線が表示されるようになりました。
ボーンが連結されていることがわかります。(編集モードでは連結してみることはできません)

2. アーマチュアの各ボーンの名称を変更

ここでは、作成したボーンの名称を変更します。
ここまでで作成したボーンは下記キャプチャのような構造になっています。

編集モードのまま腰のボーンを選択します。
プロパティタブのボーンのプロパティを編集します。

キャプチャの「Bone」の部分を「Hip」に変更しました。

ちなみに、ボーンの名称を表示させるためには、オブジェクトデータプロパティの「名前」の欄にチェックを入れます。

同様に任意の名前を付けていきます。
私は下記キャプチャのように命名しました。

3. アーマチュアとメッシュの結合

現在はまだアーマチュアとメッシュには連結していません。
ここではアーマチュアをメッシュ内に埋め込み、連結させる方法を紹介します。

まずはオブジェクトモードを選択し、メッシュを選択して
続けて、「Shift」を押しながらアーマチュアを追加選択します。

次に「CTRL + P」を押して
「アーマチュア変形>自動のウェイトで」を選択します。

これにより、アーマチュアが変形された時、メッシュも同時に変更される様になります。

4. アニメーションの作成

いよいよアニメーションを作成します。
フレームごとにボーンを曲げて動きを付けていきます。

画面下部の対象フレーム選択欄を「1」にします。

次にモード選択画面からポーズモードを選択します。

「A」を押すとボーンがすべて水色になります。
これは全てのボーンが選択されている状態です。まずはこのデフォルトのポーズを登録しておきます。

「I」を押してキーフレーム挿入メニューから「位置・回転・スケール」を押します。

これで1フレーム目のボーン形状とメッシュの形状が保存されました。

次に画面下部の対象フレーム選択欄を「20」にします。
ここで20フレーム目の動きを作成します。

任意のボーンの位置や回転を変えてポーズを変えていきます。
私は「spine1」の背骨を少し前に回転させて、お辞儀のポーズを作成しました。

同様に「A」を押してボーンを全て選択した状態にして
「I」を押してキーフレーム挿入メニューから「位置・回転・スケール」を押します。

同様に任意のフレームに任意の動きを作成します。
これでアニメーションの作成ができました。

アーマチュアの作成方法とアニメーションの作成方法の紹介は以上になります。

おわりに

今回はBlenderを使用して、メッシュにアーマチュア(ボーン)を作成して、アニメーションを作成する方法を学習し、紹介しました。
ボーン編集やアニメーション機能により、UEなど外部のゲームエンジンでも独自のキャラクターアニメーションを追加することができます。3DCGの表現の幅が大きく広がりますので、引き続きアニメーションも学習していきたいと思います。

現在、電通総研はweb3領域のグループ横断組織を立ち上げ、Web3およびメタバース領域のR&Dを行っております(カテゴリー「3DCG」の記事はこちら)。 もし本領域にご興味のある方や、一緒にチャレンジしていきたい方は、ぜひお気軽にご連絡ください!
私たちと同じチームで働いてくれる仲間を、是非お待ちしております!
電通総研採用ページ

参考文献

執筆:@okazaki.wataru、レビュー:Ishizawa Kento (@kent)
Shodoで執筆されました