アニメーション事始め (1)
~第1回「ボーンとスキンの割り当て」
以前の記事で「ポリゴンメッシュでキャラクタを作成(モーション編)」として、さらっとボーンを使ったモーション付けについて説明しました。
今回はこのアニメーションに特化して、できるだけ細かく説明していこうと思います。
こういった動きはどうすればいいだろう、ここは面倒なのでスクリプトで効率化してみよう、など大いに脱線して進めていくことにします。
キャラクタを動かす、Unityなどの外部ツールにスムーズに持っていけるようにする、というのをモットーにしますので、解説はボーン使用に限定します。
「ポリゴンメッシュでキャラクタを作成」であらかじめ復習しておくと理解が早まりますが、そのまま本記事で読み進めても問題ありません。
今回は復習もかねて、前準備のボーンとスキンについて説明します。
ボーンとスキンの割り当て
Shade 3Dではアニメーションを行うための要素として「ジョイント」が存在し、移動や回転、拡大縮小などに特化した動きをつけることができます。
このジョイントの1つとして、ボーンが存在します。ボーン含むジョイントは単体ではレンダリングしても何も表示されません。
このジョイント内に形状を入れたり、形状(ポリゴンメッシュ)と「スキン」でつないで連動させることで形状に動きを与えることができるようになります。
本記事では、スキンを使って形状と連動させる方法でモーション付けを行います。
「スキン」は、ポリゴンメッシュ(もしくは自由曲面)の頂点に対して重み付けを行い、ボーンの動きにあわせて形状の頂点を変形移動させる手段を提供します。
複数のボーンの影響を受けるように指定することで、滑らかな変形を行うことが可能となります。
ボーンを扱う際の注意点として、
「ポリゴンメッシュでキャラクタを作成(ボーン編)」より一部引用。
- ボーンのルートは1つ
- 1つのポリゴンメッシュに対して、1つのボーン構造を割り当てる
- ボーンの変換行列の「スケール」は(1, 1, 1)、「回転」「せん断」は(0, 0, 0)
- 個々のボーン名は異なる名前にする(半角英語名が望ましい)
- ボーン配置時の「自動で軸合わせ」はOffにする
- モーションを割り当てない状態での姿勢は、ボーンジョイント属性の回転とオフセットは0にする
主に他ツールに形状やモーションを渡す際に、できるだけモーションの再現性を保つため作法になります。
Shade 3D内で完結させる場合でもシーン構造の見やすさ/シンプルさにもつながりますので、このルールは守ることをお勧めします。
キャラクタにボーンを入れる
人体や動物などのキャラクタにボーンを入れる際は、ボーンを1つ1つ配置して位置を調整していくことになりますが、結構手間がかかります。
ということで、Shade 3D Standard/Professionalのみになりますが「BoneUtil」プラグイン を使うことでかなりの部分を効率化できます。
ミノさんとスケさん。今回の連載記事でのメインキャラクタです。この2人があんな動きやこんな動きを体験していきます。
人体や亜人間の場合は、1キャラクタに数分でボーンを入れることができるようになるかと思います(スキン割り当ては別)。
手作業でボーンを配置する場合は、1時間近くかかるかと、、、、。
多少しっぽや羽が生えていても、装飾品のごとくちょっとボーン追加すればOK。
この人体キャラクタにボーンを割り当てる流れを説明します。
キャラクタのポーズ
初期状態のキャラクタのポーズは、両手を真横に伸ばしたT-Poseとしています。
また、足元の中心が原点(0, 0, 0)になるようにしておいてください。
このミノタウロスの場合は、1キャラクタ/1ポリゴンメッシュのシンプルな構成です。
人体ボーンを入れる (BoneUtilプラグイン使用)
ポリゴンメッシュ形状を選択し、ブラウザの情報をクリックしたコンテキストメニューで「人体リグの制御点を初期化」を選択します。
BoneUtilプラグインの機能はこのメニューからアクセスできます。
ダイアログボックスで、大まかな身長(ここでは2200mm)とポーズの種類(ここではT-Pose)を指定します。
OKボタンを押すと、RigPointsというパートが生成され、その中に人体キャラクタの部位に相当する球が配置されます。
このhipsやshoulder_leftなどの球の位置を、キャラクタのポリゴンメッシュの位置に合うようにオブジェクトモードで移動させます。
「人体リグの制御点を初期化」ダイアログボックスで「ミラーリング」チェックボックスをOnにした場合は、左腕や左足に値する球を移動させると、自動的に右腕や右足の球も再配置されます。
以下のように調整しました。
RigPointsパートを選択し、ブラウザの情報コンテキストメニューより「人体ボーンの生成」を選択します。
「人体ボーンの生成」ダイアログボックスで、ボーンの種類「HumanIK」、名前「bone」、目とあごのチェックボックスをOnとしてOKボタンを押します。
bone_hipsのボーンをルートとして、HumanIKのルールに従ったボーン構造が自動生成されました。
以降はRigPointsパート以下は不要ですので削除しておいてください。
ボーンの軸方向が+X方向を向いているので、各ボーンの進行方向に合わせましょう。
同じくBoneUtilプラグインの機能を使います。
bone_Hipsのボーンをブラウザで選択し、ブラウザの情報コンテキストメニューから「ボーンの軸方向」を選択。
「ボーン方向に統一」チェックボックスがOnになっているのを確認してOKボタンを押すと、ボーンの向きが整えられます。
なお、このボーンの軸方向はShade 3D内での図形ウィンドウ上のボーンの見た目だけの情報です。
アニメーション時やレンダリング時や、FBXエクスポート時などでは軸方向が何であっても挙動に影響しません。
次に、ボーンが若干細くなっている部分がありますので、まとめて変更しましょう。
bone_Hipsのボーンをブラウザで選択し、ブラウザの情報コンテキストメニューから「ボーンのリサイズ」を選択。
「距離で調整」チェックボックスをOn、スケールを1.0としてOKボタンを押します。
ボーンサイズも図形ウィンドウ上の見た目だけの情報です。
あとは、首の接続部や指先など、細かい部位でポリゴンメッシュの目的の位置にボーンがあるかチェック、修正していきます。
注意点として、ボーンの位置(T-Poseでの初期姿勢)を調整する場合は「オブジェクトモード」で「ボーンの移動」で調整するようにしてください。回転は使わないようにします。
これは、モーションとしてのオフセットやボーン自身に回転要素が入らないようにするためです。
前述したルールの「ボーンの変換行列の「スケール」は(1, 1, 1)、「回転」「せん断」は(0, 0, 0)」を守るための操作になります。
調整後、「ボーンの軸方向」「ボーンのリサイズ」で再度ボーンの表示を更新しておきましょう。
人体ボーンの半分を複製 (BoneUtilプラグイン使用)
人体キャラクタの場合は、左右での腕や足は反転した状態でモデリングしている場合がほとんどだと思われます。
ボーンも同じで、左半分を作成または位置調整した場合は、右側は自動配置しておきたいところです。
1つ前の作業で、腕から指先と足の左半分だけを調整したので、右半分はミラーリングで生成します。
これもBoneUtilプラグインの機能で行います。
Shade 3D本体機能の複製での数値入力でX値を-1.0にしたり、パートに入れて反転させても、どうしてもボーンの変換行列のスケールにマイナス値が入るか180度回転情報が入ってしまいます。
かといって手作業で反転したボーンを作ると時間がかかりますので、このあたりはBoneUtilプラグインで一発生成するほうが間違いも起きなくて手っ取り早いです。
右肩の「bone_RightShoulder」ボーンをブラウザで選択して削除します。
次に「bone_LeftShoulder」をブラウザで選択し、ブラウザの情報コンテキストメニューより「ボーンのミラーリング」を選択。
そのままOKボタンを押します。ボーン名のうち「Left」のものが「Right」に置き換えられて、X軸方向で反転させた「bone_RightShoulder」ボーンが自動生成されます。
軸方向は逆のままなので、「ボーンの軸方向」「ボーンのリサイズ」で再度ボーンの表示を更新しておきましょう。
同様に「bone_RightUpReg」の右足ボーンもいったん削除後、「bone_LeftUpReg」ボーンをミラーリングして右足のボーン位置を調整します。
最終的に以下のように整いました。
あとは、しっぽなどの装飾部のボーンを配置して完成になります。
スキンの割り当て
スキンは、「ポリゴンメッシュでキャラクタを作成(スキン編)」を参考に割り当てます。
- ポリゴンメッシュ形状を選択し、形状編集モードですべての頂点を選択。
- メインメニューから「表示」-「スキン」を選択し、頂点ブレンドを指定。
- スキンウィンドウの「バインド」ボタンを押して自動バインド。
- ツールボックスの「編集」-「共通」-「ウエイトペイント」より、ウエイトペイントをしながらスキン変形での重みづけ調整。
本連載はアニメーションがメインなので、スキンについては説明を省きます。
ジョイントモードでボーンを回転させつつスキンをウエイトペイントで微調整、の繰り返しになります。
ここでのボーンとスキン割り当てが済んでいるミノタウロスは、マーケットプレイス から無料でダウンロードできます。
スケルトンについても本連載の何回目かの解説時にダウンロードできるようにする予定です。
キャラクタが複数いる、といった意図も今後の連載で明らかになります。
ということで、今回は前準備でした。
次回は動きをつけるための知っておいたら効率アップにつながるTipsや、Shade 3Dに限らない一般的なモーションのノウハウなど解説予定です。
実際はこの連載にたどり着くまでに、モデリング - UV - テクスチャ - ボーン - スキニング、と、かなり長い道のりで
今回は大胆にも飛ばしたのですが、個々の掘り下げについてはまたの機会に。
モデリングは、もっと用途別に解説がほしいところですね。
連載回数はまだ決まってませんが いろんなアニメーションについて情報を垂れ流す予定にしてますので、よろしくお願いいたします。
文:ft-lab
※この記事で用いられている「ミノタウルス」のデータはこちらから、無料で入手できます。
この記事へのご意見・ご感想などはこちらで受け付けております。