本日は3Dモデリング枠です。
3DCGを扱うDCCツールでは単に形状をモデリングするほかに時間軸に対してCGを動かすアニメーションを作成することができます。
画像やセンサー情報などの情報をもとに実際の動きをデジタル情報に落とし込むモーションキャプチャ、アイドルなどのライブ映像を手作業などでトレースしてデジタル情報にするモーショントレース、動きのデータではなく動きそのものの形状をデジタル情報とするボリュメトリックビデオなどアニメーションも様々な形式があります。
今回は外部のハードウェア、ソフトウェアに依存せずに単体で設定する基本的なアニメーションとして①キーフレームを手入力するオブジェクトのアニメーション、②オブジェクト単位ではなく、メッシュが変形するリグ(ボーン)を設定するアニメーションについてBlender及びMayaで比較しながらまとめていきます。
今回はBlender4.0、Maya2024で比較しますが基本的なウィンドウや動作はバージョンが変わっても大きくは変化しないと思います。
〇キーアニメーション
今回はシンプルな比較としてプリミティブオブジェクトのキューブをキーフレームを付けて動かしていきます。

・Mayaの場合
①最初のフレームを設定します。タイムスライダーを使用してフレーム1に移動します。

②最初のフレームのオブジェクトの位置へキューブを動かします。 今回は原点をスタート位置としたため移動はしていません。

③最初のフレームを挿入します。オブジェクトを選択している状態でSキーを押すことで現在のフレームにキーフレームを挿入することができます。
Mayaの場合はキーフレームが挿入されている場所はデフォルトで赤いラインが表示されます。

④タイムスライダーを使用して次のキーフレームを挿入するフレームを選択します。

⑤オブジェクトを移動させてSキーを選択します。

これによって2つのキーフレームが挿入されました。
複数のキーフレームを登録している状態で再生ボタンを押すことでアニメーションを確認することができます。


・Blenderの場合
Blenderの場合はキーフレームウィンドウがデフォルトのレイアウトで3Dビューポートの下部ウィンドウにドッキングされています。
キーフレームを指定して任意のキーを打ち込みアニメーションを作成します。
①最初のフレームを入力します。キーフレームウィンドウ右上部の現在のフレームを1にします。(デフォルトで1になっていると思います。)

②最初のフレームのオブジェクトの位置へキューブを動かします。 今回は原点をスタート位置としたため移動はしていません。

③オブジェクトモードの3Dビューポート上でIキーを押します。
これによってキーフレームの挿入コマンドが出現します。

おそらくIはInsert(挿入)のIだと思っています。
④特に意図がない場合位置・回転・スケールを選択します。

これによって現在のオブジェクトの位置、回転、スケールのトランスフォーム状態がキーフレームとして登録されます。
登録状況はキーフレームウィンドウで確認できます。 現在選択しているオブジェクトにキーフレームが登録されている場合、オレンジの菱形のアイコンが表示されます。(デフォルトのテーマの場合)

またキーフレームが登録されたパラメータは同様に表示ボックスが色づきます。

⑤キーフレームウィンドウで次のフレームを選択します。

キーフレームの移動は現在のキーフレームのウィンドウに直接数値を入力することもできますが、マウスのドラッグで直接キーウィンドウを選択することでも可能です。
⑥キューブを動かします。

今回は鉛直上向きに5mを設定しました。
⑦ ③、④同様にキーフレームを設定します。
これによって2つのキーフレームが登録されました。

以上が基本的なキーフレームの設定法になります。
アニメーションを実行するにはデフォルトのキーマップでスペースキーを押します。
〇リグを用いたアニメーション
現実の人間をイメージするとわかりやすいのですが、機械のようにパーツ(オブジェクト)単位でトランスフォームを変えるのではなく、骨や筋肉を基準としてオブジェクトの形状が滑らかに変形しています。
3DCGでこれらの表現を行うときに現実の人間と同じように基準となる骨をボーンと呼びます。
このボーンを入れることをリグ入れ、リギングと呼びます。
そしてリグとメッシュを紐づけリグに対してメッシュを動かす処理をスキニングと呼びます。
またボーンに対して骨格にあたる意味のアーマーチュアと呼ばれる概念があります。
・Mayaの場合
今回は人を模したこちらのオブジェクトにリグを入れていきます。

新規のジョイントを作成します。なおMayaの場合はアーマーチュアのことをJointという名前を使用します。
①リギングモードへ切り替えます。

②上部スケルトンメニューからジョイントを作成を選択します。

③ビューポート上で任意の場所をクリックします。

④再び別の場所をクリックします。これによってボーンが作成されます。

⑤Qキーでボーンの作成を解除できます。

以上が基本的なボーンの作成方法です。
⑥作成したボーンを腰の位置に配置します。

⑦Ctrlキー+Dキーでボーンを複製します。

⑧ボーンを選択しCtrlキー+Dキーでボーンを複製し別の場所に配置します。

⑨⑧で配置したボーン→接続したいボーンの順に選択しPキーを押します。

これによって複製したボーンが腰のボーンを基準に接続されます。

同様に腕、足のボーンも作成しPキーで接続をします。

以上でリグ(ジョイント)の作成が完了しました。もう少し丁寧な方法がありますが今回は手順優先で行っています。
⑪ジョイント→オブジェクトの順番で選択します。

⑩スキニングを行います。上部スキンメニューからスキンのバインドを選択します。

これによってボーンに合わせてメッシュが変形して動くようになりました。

・Blenderの場合
今回は人を模したこちらのオブジェクトにリグを入れていきます。

①Shiftキー+Aキーを入力し、新規でアーマーチュアを作成します。

これによって新規のボーンが作成されます。

②編集モードでボーンを任意の場所に配置します。今回はこのボーンが基準となるため股間部に配置しています。

③Eキーでボーンを伸ばし上半身のボーンを作成します。

④Shiftキー+Aキーで新規のボーンを作成します。

⑤足のボーンを作成します。

このままでは足だけ胴体のボーンにリンクしていなく独立しているため足のボーンを胴体のボーンと紐づけてリンクさせる必要があります。
⑥足→腰の順でボーンを選択します。

⑦Ctlrキー+Pキーを押しオフセットを保持を選択します。

これによって腰のボーンを親として足のボーンがリンクされました。

⑧反対側の脚も同様に行います。

以上でリグの作成が完了しました。

次にメッシュと紐づけます。
⑨オブジェクトモードでメッシュ、アーマーチュアの順で選択し、Ctrlキー+Pキーを入力し自動のウェイトでを選択します。

これによってリグ入れが完了しました。
ポーズモードでリグを回転させたり動かしたりすることでキャラクターが動きます。

なおこのボーンに追従する際のどのボーンに対してどの割合で追従するかというパラメータをウェイトとよび、ウェイトはウェイトペイントと呼ばれる作業で修正できます。
これによって一般的に破断しないモデルづくりとしてメッシュのトポロジー(メッシュ割)が重要な概念になってきます。
ウェイトに関してはMaya同様これだけで説明が長くなってしまうので別枠にします。
最後にアニメーションのつけ方です。
⑩ポーズモードでAキーを押しポーズを付けたキャラクター全体のボーンを選択しIキーからキャラクター全体を選択します。

⑪任意のキーフレームを選択し別のポーズをつけた状態で再びキーフレームを登録します。

以上がBlenderでのリグを用いたアニメーションの作成方法になります。
以上がMayaとBlenderのアニメーションの基本についての比較になります。
定義やUIなどは違いますが、基本的な概念とワークフローは一致していることが最大の特徴といえます。