基本形の球体やドーナツ形状を使ったループアニメーションの習作 です。
アニメーションの習作です。
どんなシンプルなものでも、アニメーションの付け方でキャラクターになりますよね(^^)
円柱オブジェクトとジョイントとIKが入った2つのアームを作る。
円柱オブジェクトをグループ化してピボットは下の方に移動し、回転アニメーションを作れば円弧を描くように円柱が飛んでいくように見える。
円柱の下にコンストレインさせるターゲットとなるロケーターを二つ付け、アームのハンド部分はロケーターにオリエント(方向)コンストレインする。各アームのIKはそのロケーターにポイントコンストレインする。
これでアームは勝手に円柱を投げたりキャッチしたりする。
ただし、IKが伸びきってしまうので、アームの動きは不自然。
そこで適当な空間位置に別のロケーターを置いて、そこにも各アームのIKをコンストレインし、コンストレインのウエイト値にアニメーションをつける。
ウエイト値のキーは1と0の2点だけ。アニメーションカーブは滑らかに繋がるようハンドルはフラットに。
更に円柱の中心ポイントに回転アニメーションを追加してみます。
左右のアームには全くモーションをつけていないのに、複雑で生物的な動きをしているように見えるでしょうか。
でも、このアニーションはアーム側にはモーションが付いていないんです。
カメラが遠いので、ここで見ると画面が小さくてわかりにくいかも。
YouTubeにはHD1080サイズでアップしてるので是非そちらでお持ちのモニターに合わせた画面サイズを選択して見てください。
アームの関節はオブジェクトの階層構造で、そのオブジェクトのピボットを回転させるFKによるアニメーションです。 ジョイントもIKも入ってません。
↑アウトライナで見た階層構造です。
ブルーにハイライトしてる階層にアニメーションのキーを入れてます。
ジャンプなど飛び上がる為の階層や、空中での重心位置のピボットのものなど、複数の役割もつ空の階層が重ねてあります。
arm_visible‥‥表示のオンオフ用の親ノード。
world_position‥‥ワールド座標上の位置と回転。
local_position‥‥ワールド座標で決めた動きに更に別の動きを加えたいときに使用する予備のノード。ピボット位置は行いたいモーションに合わせて位置を変える。
jump‥‥地面のピボット。上下運動のみに使用。
centroid‥‥重心位置のピボット。ジャンプ時の空中姿勢に使う。回転のみに使用。
Base‥‥ピボットは地面(水色のパーツ)
base_rotation‥‥ピボットはarmのピボットと同じ位置(水色のパーツ)
arm‥‥土台から上(青緑のパーツ)
forearm‥‥肘から上(黄緑のパーツ)
hand‥‥手首(黄色のパーツ)
finger_R‥‥掴む部分の右側(オレンジのパーツ)
finger_L‥‥掴む部分の左側(オレンジのパーツ)
ボールをキャッチしてアームが持つところは、アームの中にあらかじめ持ったボールと飛んでくるボールが別オブジェクトでVisibleの切り替えで行っています。
アームも動作によって青いベースが親になった階層構造が向かないものがあります。
頭を地面に着いてBaseを持ち上げるような場合は逆の階層構造の方が扱い易くなります。
具体的に言うとhandが親でforearm→armという順番に組む方が逆立ちするような姿勢には向いているのです。
そしてBaseを地面に着いてarmから上だけ動かす動作であればBaseから上の階層だけあればOKです。
そこで異なる階層構造のモデルを動きに応じてVisibleで入れ替えています。
このアニメーションにはそれぞれのモーションに合わせて異なる階層構造のモデルをVisibleで切り替えながら、まるで1つのモデルが連続して動いているようにみせかけているのです。
ブログ「usm's blog」のカテゴリ「CG [ key frame animation ]」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。
前のカテゴリはCG [ human ]です。
次のカテゴリはCG [ modeling ]です。