#author("2023-05-10T12:32:58+09:00;2022-08-30T09:25:13+09:00","default:inoue.ko","inoue.ko") *第12回 アニメーションの基礎 [[3DCG演習/2023]]|''2023.08.17 -'' ~ ***解説動画 //#youtube(f6L6BQx1O34) //-録画済み動画です。再生して視聴してください。 //-以下名簿が表示されます。''既読確認(出欠確認)''をお願いします。 &fontawesome(far fa-hand-point-right); __[[既読確認>]]__ ~ ***CONTENTS #contents2_1 ~ ~ **はじめに ***様々なアニメーションの手法 -キーフレームの設定によるオブジェクトのトランスフォーム 時間の経過とともに''移動、回転、拡縮''などの変化を与えることができます。また「タイヤを回転させながら移動する車」のように、車のボディ(親)の移動とタイヤ(子)の回転を階層化することで、複合的なアニメーションも実現できます。 -パスアニメーション アニメーションパスにオブジェクトを紐付けすると、パスに沿った移動制御が可能になります。 -オブジェクトの形状変形 以下のような方法で形状の変化をアニメーション化することができます。 --シェイプキー:基本形状と変形パターンを複数設定して制御する --アーマチュア:不可視の内骨格(スケルトン)を持たせて動きを制御する --ラティス:不可視の外骨格を持たせて動きを制御する -様々なプロパティーの変化 アニメーション化できるのは、オブジェクトの動きだけではありません。マテリアルの各種パラメータやライトの輝度、カメラのズームなども変化させることができます。 ~ ***キーフレーム アニメーションの基本は「キーフレームの設定」にあります。移動・回転・拡縮あるいは変形、いずれも変化の「節」となるフレーム(時刻)に、その時点でのパラメータを記憶させることで、中間の状態を自動的に補間するかたちで、アニメーションが実現します。 アニメーションの設定作業では、今見ているシーンが何フレーム目であるかを意識する必要があります。現在フレームは、タイムライン上に表示されます。 #image(Blender/CurrentFrame.jpg) 上の図では、現在位置は 30フレーム、キーフレームが 1, 40, 80 にあります。 ~ ***アニメーションのプレビュー オブジェクトにキーフレームが設定されている場合、以下の操作でアニメーションをプレビューすることができます。 キーボード:[SPACE](トグル) タイムラインの利用:再生(▶︎)・停止(I I)・頭出し(I◀︎) ~ ***アニメーションの設定に使うエディター -Timeline Editor:初期ワークスペースに表示されています。 -Dope Sheet:タイムラインとほぼ同様です(メニュー構成が異なる)。 -Graph Editor:キー値の変化をグラフで表示します。 尚、いずれのエディタも、画面左端のプルダウンメニュー(>)をクリックすることで、キーフレームの状態を詳細に確認することができます。 ~ ***アニメーションのレンダリング アニメーションのアウトプットは当然動画ファイルとなります。以下の方法で、動画ファイルとして出力されます。 Topbar > Render > Render Animation 出力仕様は、プロパティーエディターの Render Property タブと Output Propertyタブで、必要な項目を設定します。 -Render Property --Render Engine:Eevee(高速) または Cycles(高画質) -Output Property --Format:X 1920, Y 1080 など --Frame Rate:30 fps など --Frame Range:開始フレームと終了フレームの間が動画出力されます デフォルトでは 1 - 250 となっています。 30fps で 15秒 であれば 450フレーム必要なので、1 - 450 となります。 --Output:書き出しディレクトリ、File Format(FFmpeg など) ~ ~ **Keyframes アニメーション制御の大半は、キーフレームを用いて行います。キーフレームとは、当該フレーム(時刻)において実現されるべき、位置、回転角その他のプロパティ(属性値)を保持したフレームのことで、時系列に複数のキーフレームを持たせることで、キーフレーム間のプロパティは自動的に補完されます。 ~ ***キーフレームの設定 オブジェクトのキーフレームは、キーボードの [ I ] (Insert Keyframe)をプレスして設定します。 [ I ] Key ( Header Menu > Object > Animation > Insert Keyframe ) #image(Blender/InsertKeyframeMenu.jpg,right,30%) ''3D Viewport 上で対象となるオブジェクトを選択した状態で [ I ] Key をプレス''すると、Insert Keyframe Menu が表示されるので、設定したいプロパティー項目を選択します。 #clear #image(Blender/InsertKeyframeZoom.jpg,right,30%) ''プロパティーパネル上の対象項目の上にマウスを合わせた状態で [ I ] Key をプレス''すると、その値がキーフレームに記録されます。 右の図は、カメラズームのアニメーションを想定して、カメラの焦点距離 50mm をキーフレームとして設定した事例です。このようなキーフレーム設定によって、あらゆるプロパティを時間軸上で変化させることが可能です。 ~ //***キーフレームの自動記録 //#image(Blender/AutoKeying.jpg,right,30%) //タイムラインヘッダー上にある自動記録ボタンが ON になっていると、プロパティの値が変更された場合に、設定されたフレームにキーフレームを自動的に追加します。 //~ ***キーフレームの削除 オブジェクトのキーフレームは、設定時と同様の状態下で、キーボードの [ALT] + [ I ] のプレスで削除できます。 [ALT] +[ I ] Key ( Header Menu > Object > Animation > Delete Keyframe ) タイムラインやグラフエディタ上では、キーフレームのアイコンを選択して [ x ] あるいは [Delete] で削除することもできます。 ~ ***Interpolation(内挿) キーフレーム間のプロパティー値は、自動的に補間(Interpolation)されます。グラフエディタ上では、補間された値の変化がアニメーションカーブとして可視化されます。 #image(Blender/GraphEditor.jpg) 上の図では、Cubeオブジェクトの座標について、XとYの値がそれぞれ変化している様子を見ることができます。 キーフレームの補間には、''定数、線形、2次曲線、ベジエ曲線''などの方法があります。特に、ベジェ補間は、ハンドルのタイプと制御点によってカーブの形が決まります。Illustrator のパスの編集と同様の操作です。 ~ ***Extrapolation(外挿) 最初のキーフレームの前と最後のキーフレームの後の状態を外挿補間する方法には、''定数(状態キープ)、線形(慣性)、繰り返し''などがあります。 ~ ~ **Parent & Track ***ペアレント設定 複数のオブジェクトからなる被写体でアニメーションを実現する場合、オブジェクト同士の親子関係を正しく設定する必要があります。 オブジェクトを 子 → 親の順に選択 Object > Parent( [CTRL] + [P] ) -親を動かす → 子はそれにしたがって動く -子を動かす → 親の位置から相対的に動く ~ ***トラッキング設定 被写体の動きにカメラを追随させたい・・という場合は、カメラを特定の被写体に Track to Constraint します。 カメラ→被写体の順に選択。 Object > Track( [CTRL] + [T] )> Track to Constraint ~ ~ **PathAnimation Curveオブジェクトのひとつである ''Path'' を使うと、オブジェクトをパスに沿って移動させるアニメーションを簡単に実現することができます。 #image(Blender/PathAnimation.jpg,right,30%) パスとオブジェクトに親子関係(Make Parent)を設定するだけで、パスに紐付けられたオブジェクトは、キーフレームの設定なしにパスの始点から終点まで、パスの形状に沿って移動します。 -上面ビューからモーションパスを配置する Add > Curve > Path -パスの形状を編集する(通常の曲線の編集と同様) -パスとオブジェクトに親子関係を設定する オブジェクト → パスの順に選択 Object > Parent( [CTRL]+[P] ) > Follow Path -アニメーションのフレーム数が始点になっていることを確認 -オブジェクト(子)を移動して、パス(親)の始点に合わせる -アニメーションを再生すると、オブジェクトがパスに沿って移動する様子が確認できるはずです。 #image(Blender/PathAnimation2.jpg,right,30%) プロパティーエディタ > Object Data Property パネル > Path Animation の項目で、以下のような各種調整が可能です。 -Frames : パスの始点から終点までのフレーム数 -Follow:オブジェクトの向きを進行方向に調整 #clear ~ ~ **階層アニメーション キーフレーム操作の応用事例として、アニメーションの階層化について説明します。例えば、プロペラを回しながら飛ぶヘリコプターを表現するには、以下のような手順でアニメーションを設定します。 -ヘリコプターの胴体(親)に、プロペラ(子)をペアレント設定 -胴体(親)は、シーンの中を(パスに沿って)移動するように設定。 -プロペラ(子)は、ひたすら回転だけを続けるように設定。 &small(プロペラのキーフレームに位置情報が含まれると、親から離れてしまいます。); ~ ~ ~