先日は、

 

■ 動画の製作と素材 : 素材の作成(2) 【 3DCG 】

 

 

にてBlenderを使って、3DCGと実写の類似点と違う点について触れました。3DCGの場合も被写体とカメラだけではどうにもなりませんから、光源が必要で、カメラで動画を撮る時のように動画の仕様を決める必要があります。そして、現在はデジタルで動画を記録するので、カメラで撮影する映像も3DCGで書き出す映像も動画の形式委した場合には任意のコーディックで記録することになります。その為、かなり共通点が多いので、3DCGAをやってみたいと考える場合、3DCGを使っていますが、基本的には実写の動画と同じ考え方になる部分が多いので、実写における撮影技法やカット割りなどはそのまま使えますし、作る物は動画ですから、脚本や絵コンテも存在するので、基本的な映像制作の工程は同じで、製作する時の作業が素材制作が質量と体積を持つものを物理的に作るのか、データの形式で存在する物を3D空間上に作るのかの違いだけになります。

 

 とは言っても、3DCGの場合、360度パノラマ写真を1つの光学系で撮れたり、インテグラル方式の立体視をするソースを作るのにレンダリング時間がかかるだけという特殊な条件も存在しますから、現実世界の光学系とは全く違いますが、考え方は一緒です。

 

 その為、動画を作りたいと思った場合、映画の撮り方やスイッチャーを使った映像の作り方やコンポジションなど走っておいたほうがいいと思いますし、シーンを作る上ではカメラを使うので、写真における構図や動画の撮影におけるカメラワークや映像の意味の持たせ方なども間違いなく必要になります。その為、CGと実写というのは水彩画と油絵のような違いなので画材の違いで、表現において使われている画材が異なる程度の差になります。当然、油絵で水彩のようなことはできませんし、その逆も無理ですからセオリーが全く異なります。そう考えると、CGAを作る場合には、それに準じた知識や技法を学ぶ必要が出てきます。そして、 【 それが何であり、どう言う物なのか? 】 と言う根本を知る必要もあります。

 

 3DCGの場合、イメージとしては、実写映像だと美術や大道具や小道具と同じで、特撮の着ぐるみやミニチュアやセットなどを作るとの同じ作業が発生します。3大道具で建屋の衝立のようなのを作る場合、それに見えるように素材を組み合わせて上から見るとL字になったセットを作ります。これで、十字路やT字路のような角を用意できます。この状態だと、あおりにすると三点透視図法の視点が可能で、角が存在するので二点透視図法のような使い方もできますが、アクターが角から出てくるようなシーンや道沿いのようなのを作る事ができます。建物の内観はL字の内側を使い、外観だと外側を使います。そうすると、内観を全く使わない条件で外観だけが必要な場合に、そう言った風景の一部として建物を用意する事ができます。この時に使用する素材は塗る前の質感とは全く違う物もありますから、加工で凹凸をつけけて以上を作り、塗装で質感を出します。この作業は3DCGのモデリングと同じですが、こうした作業は、実写の場合、アクターは人が行いますから、無機物に関してのみ制作の工程が発生します。化粧品が生きているわけではないので、メイクに使う道具も含めて無機物ですが、特殊メイクなどで使用される元の状態とは異なる状態変化なども制作の工程が発生する物になります。

 

 3DCGの場合、存在するのは空間ですから、カメラオブジェクトを通して見えている物は、全てポリゴンで生成されたものになります。その為、表示できる物はモデリングされたポリゴンメッシュですから、映像内で登場する物は、セットで使用する物だけではなく、アクターも含めて製作しなくてはなりません。この辺りが実写と全く異なる点になります。

 

 その為、実写でも大道具や小道具や衣装など、その映像で使用する物が製作されますが、3DCGの場合だと、アクターも含めて作る事になります。これは、アニメーションだと当たり前の作業なんですが、アニメーションと言うジャンルは元から有機物が存在しない世界で物理法則の制約を受けない状態で動きを作れる自由な表現が可能な物になっていますから、製作者のイマジネーションをスポイルしないような仕様になっています。実写も現在は嘘のように色々できるようになっているのですが、アニメーションの場合、制作時にはミュートなので、底に音を加えて空間の状況を作るような仕様ですから、カメラの実装マイクがノイズを拾うなどの問題が発生しません。実写の撮影時には音や光の状態なども含めて色々考える必要がありますが、こうしたん点は3DCGやアニメーションでは発生しない物になります。

 

 手書きアニメや2Dと3DのCGAでは光学系の影響を受けないのですが、モデルアニメなどを行う場合、【 カメラでの撮影 】が発生するので、光学系の振る舞いがそこに発生してしまいます。この辺りがアニメと言うジャンルでも手法がタイムラプスなどに近い仕様なので、実写の動画撮影と同じような仕様になっています。

 

 

ニメーションの仕様                

 

 アニメーションの歴史は、特撮よりも古いのですが、セルアニメが登場するまでは、モデルアニメのようなオブジェクトをカメラで撮るような物しか存在しませんでした。このモデルアニメを実写と合成して作られた特撮なども存在しますから、そう言った技法がフィルム時代から存在しています。こうしたモデルアニメーションの技法だと、ダイナメーションと言うアーマチュアを仕込んだモデルを動かしてコマドリをする手法が存在しますが、ロスト・ワールド(1925年)という作品がモデルアニメの作品になりますが、あと5年もすると1世紀前の作品になりますが、初代のキングコングもモデルアニメになりますが、ストップモーションで動くモデルアニメを使った名作は多く存在します。

 

 アニメーションというのは、モデルアニメもそうですが、無機物な物を動かす作業になります。その為、動くの速度などを考えて挙動を指定する必要があります。例えば、上に上げた手を下に降ろす場合、起点は手が上に上がった状態で、終点は降りた状態です。ここは2つの全く異なる状態が存在していますが、挙動という事は、この間に動きが存在します。この時に動きを家れるためには、中割りを用意する必要がありますから、挙動の間に始点から終点までの動きが完結するようにコマを入れます。モデルアニメの場合だと、この始点と終点のコマもそうですが、中割りも含めてポーズを変えたモデルを入れることになります。とは言っても、大昔は現在のようにオニオンスキン表示ができるカメラやソフトウェアもありませんから、フィルムの時代だと、現像から帰ってくるまでどんなものが取れているのか解らないという恐ろしい状態だったわけですが、VTRの時代からはモニターに出せるようになったので様子が変わりますが、それでも、セロファンなどをモニターの手前に張ってアタリをつけてそれを基準に中割りを入れていかないとおかしくなるので、現在と比較すると、信じがたい作業だったはずです。その難しい作業の中で、すごい作品が残っているの訳です。

 

 現在は、モデルアニメを体験したい場合だと、プラモデルと固着しないタイプの粘土などに様な物を使って関節を固めてポーズを変えながら撮るか、からっだを浮かせるパーツを使って撮影して、後処理で消すなどの方法がありますから、モデルのポーズを取らせる方法は多く存在しますが、コマ撮りについては、パナソニックの製品のように標準機能として実装しているカメラもありますし、スマホアプリでもそう言った物が存在しています。

 

 実写映像の場合、人の動きを撮る場合、その挙動は既に完成していて、それをどのフレームレートを使って撮るのか?を考えることになりますが、アニメの場合も考え方は同じなんですが、きょどそのものが存在しないので、 【 指定したフレームレートで適正つに見えるような動きのフレーム数を決めて、その中で適正な挙動に見えるように中割りを入れる 】 という作業を行います。

 

 このことから、実写もそうですが、アニメーションについては、フレームレートで中割りの数が変わってくるので、プロジェクトの仕様が重要になってきますし、事前にこれを決めていないと作業にすらなりません。

 

 モデルアニメとは異なり、セルアニメが存在しますが、これは絵を描くことで動かす手法です。これについては、PC環境だとアニメーションGIFの登場以降は個人でも動く物を使えるようになり、それよりもきれいなラインを使えるベクターグラフィックを使って動くもを作れるようにしたのがマクロメディアの開発したFLASHになります。その後アドビが買収してアドビの取り扱いになりましたが、今年の年末で終了となります。また、FLASHプレイヤーについては削除するようにと言うアナウンスまで来ていますから、完全に現在では終わってしまった仕様になっています。

 

 アニメーションGIFはレイヤーの画像を書き出し段階で順番に下位レイヤーから再生していくような仕様なので、解像度を決めてシーケンシャルを描いていき、連番で保存して、それを、ぐらふぃくツールに読み込んでアニメーションGIFで書き出すとブラウザなどで表示できる動的な画像として保存できます。これを動的な画像ファイルとして書き出すのか、それとも動画ファイルとして書き出すのか?で取り扱いが違ってきますが、現在は、スマホの動画編集アプリでもシーケンシャルに対応していますから、10fpsのストップモーションアニメや手書きアニメだと作れるようになっています。PCの場合だと、色々なソフトがありますが、この内容については書くことが多いので次回以降に書こうかなと思います。

 

 このように中割りを用意して動かすという仕様になっていますが、モデルアニメではアーマチュアの入ったモデルを動かす事で実現していましたが、この仕様は3DCGAのキャラクターも同様の手法で可能する骨格で制御するので考え方は同じです。

 

 ただし、現実世界のモデルアニメには物理法則が働いているので、それを踏まえて動かす必要があるので、完全にアーマチュアの動きだけでモーションを作ろうとすると、骨格が完全に固定できるという条件を満たす必要があります。これに対し、3DCGの空間にはそう言った物は存在しないので、アーマチュアで手付モーションを入れた場合、通常はそのまま指定したボーンの挙動に準拠した動作が実行されます。

 

 その為、アニメーションを作る場合、挙動の視点から終点までの時間が適正でなければ、速すぎたり遅すぎる状態になりますし、コア数が足りないと違和感を感じます。また、人の動きを想定すると、等速で動いている事はありませんから、どう言った挙動になっているのか?を考えてモーションを作る事になります。手書きアニメの場合、これを全て描くことになるので、テレビ用だとフルアニメになっていない場合もありますが、基本は24Fという映画のフレームレートが基準となっています。

 

 当然、8fpsで作る場合には、中割りの入れ方を考えないとカクついて見えますし、ブラーを入れても厳しいので、アニメ的な動きで動かす場合にはそう言った中割りの入れ方を学習する必要があります。

 

 DCGAとキャラクターのモーション       

 

 3DCGの場合もモデルアニメのようにアーマチュアを使いますが、モーションと手付けで指定する場合、手書きアニメとは少し異なります。

 

 3DCGツールでは、始点と終点を指定すると、中割りの部分はカーブの指定で速度を変えて動かす事ができるのですが、始点と終点と中間点の3つでモーションを作って、その間に中割りを入れて適正委動かすというのは通常のアニメのモーションの作り方と同じです。

 

 基本的にアーマチュアの動作で頂点座標が変化するので、単一のボーンの移動に合わせた鼓動が各フレームに割り当てられます。

 

 こうした挙動によって、 【 リグの動作だけで動く頂点座標の制御 】が行えます。ただし、この状態だと、キャラがしゃがむとか腰を下ろすような動作を入れる場合には相当煩雑な処理になりますから、リグの構成を作った後に通常の骨格とは異なるボーンを用意することになります。これはIK(インバースキネマティクス)と言う物になります。

 

 これは、指定したボーンの挙動に影響されるボーンを用意して、その効果の範囲を制御用ボーンでコントロールするような作りになります。これにより、足先を移動すると膝関節が曲がり足が上がるようになったり、センターボーンを移動させると、伸びながらジャンプしたり、しゃがむ事ができるようになっています。

 

 手付モーションを作る場合、腕の動作に連動して移動するような流れを作ったり、ひざが曲がるような作りにすることもできますが、こうした連動して動作させるためのボーンも用意します。ちなみに、アーマチュアを構成する骨として存在する各ボーンについては、オブジェクトと同じような動作を実行して頂点座標を変更させてポーズの変更ができますが、この時に使用している通常のボーンをFK(フォワードキネマティクス)と呼びます。

 

 FKについては、ボーンを選択して、回転させて使用するのですが、IKについては、かなり雑に入れていますが、

 

 ■ IKによるオブジェクトの挙動           

 

のような感じで下位の階層のボーンから上位の階層のボーンを追従するように設定できます。

 

 これを用いて、モーションを作る事になりますが、モデルには衣装を着せますし、髪の毛もありますから、キャラの挙動に合わせて動く物が複数存在します。この制御をする場合、ダイナミクスなどを用いますが、この制御と通常のリグでの制御は別の処理になります。

 

 

 イナミクスを使う                 

 

 3DCGでは物理現象と言う概念がないので、こうした挙動は通常では発生しません。その為、動きを作る場合には、キャラクターオブジェクトだとキーフレームを使った手付のモーションを使うことになります。ただし、物体の挙動だと物理現象を実装して動かしたほうが使いやすい物もあるので、3DCGツールには、物理シミュレーションを行うエンジンが実装されています。

 

 Blenderにも実装されていますが、キャラクターオブジェクトの挙動を制御する場合にもダイナミクスを使う場合があります。


 例えば、MikuMikuDanceのオブジェクトの制御は剛体ですが、この剛体と言うのは、リッジドボディーになります。つまり、固い物どうした衝突した際に発生する物体の挙動をシミュレーションするためのダイナミクスになります。

 

 ■ リッジドボディー(物体の落下)         

 

 ■ リッジドボディー(物体の衝突)         

 

リッジドボディーを使用すると、このように、落下や衝突などの状態を表現できるのですが、引力によって落下する物体を作れるので、ボーンの先端にそう言ったオブジェクトを適応すると、引力で動く物を作る事ができます。この時に、リッジドボディーコンストレイントを行い、連携して動くようにすることも可能ですが、剛体を連結することで柔らかい動きを実装することもできます。リボンとか束ねた髪の毛の房などを柔らかく動かす場合に使用できるのですが、固い物のシミュレーションの場合、物体の変形と言う概念がないので、バーテックスの座標変化の演算が発生しません。その為、凸包(メッシュの頂点間を結んだ形状を衝突判定にした物で、重心はオブジェクトの中心になります。)やメッシュで演算すると負荷は増えますが、慶所ジュの変形の計算が発生しないので軽くなります。その為、剛体のようにダミー形状を用いる場合だと、メッシュの変形の演算はダイナミクスでは発生しないので、そのダイナミクスの影響を受けて動作するボーンの挙動によって発生します。

 

 ソフトボディーとクロスシミュレーターは柔らかい物を作れますが、この柔らかさと言うのは、リッジドボディーのようにオブジェクトのベクトルだけで制御できる物ではありませんから、物体の変化が視覚的に確認できる必要があります。その為、柔らかい物体と言うのは形状の変化も必要になります。その為、リッジドボディーやクロスシミュレーションの場合、ポリゴンの細分化が必要になりますから、シーン内のポリゴン数は増加します。

 

 ソフトボディーは、

 

 ■ ソフトボディーとリッジドボディーの比較    

 

のような動きになりますが、動画内では、リッジドボディーを対比として用意しています。これを比較すると、完全に挙動が違うことが確認できます。アクセサリーなどを用紙いてキャラに実装する場合、その物体が動いてくれた方がリアルですから、そうした場合に、コリジョンによる判定(を行いますが、剛体の形状が適正ではなく、干渉してめり込むと、物凄い勢いで飛んでいくので、適正な形状と適正な制御が必要になります。)

 

 クロスシミュレーションについては、完全に布なので、

 

 ■ クロスシミュレーション               

 

のように動作します。

 

 服や髪の毛をクロスシミュレーションとIKと組み合わせて使う方法もありますから、キャラクターモデルでも使用するダイナミクスになります。

 

髪の毛の作り方としては、ポリゴンメッシュにボーンを入れてリッジドボディーで動かす方法と、クロスシミュレーションとIKで動かす方法がありますが、これとは別にヘアダイナミクスを使う方法があります。

 

 ヘアダイナミクスと言うのは、パーティクルを使った制御になりますが、パーティクルと言うと、

 

 

 ■ パーティクル(1)                   

 

 ■ パーティクル(2)                   

 

 ■ パーティクル(3)                   

 

のように映像内の効果として使用する物になりますが、ヘアの設定にすると、

 

 ■ ヘアの使用                      

 

のような感じで、ヘアを使用する事ができます。髪の毛はパーティクル逃れを決めることが可能で長さも調整できるのですが、それを用いて、髪の毛の流れを作る事ができます。

 

 そして、その髪の毛に対して、

 

 ■ ヘアダイナミクス(1)                

 

のようにダイナミクスを適応する事ができます。また、落下する場合にもその影響をそのまま受けますから、

 

 ■ ヘアダイナミクス(2)                

 

のようになります。この場合、空気抵抗や物体の摩擦係数などで挙動を制御できますから、細かな設定が行えますが、髪の毛の場合本数を増やす必要があるので、負荷は高くなります。

 

 

 ブジェクトの表情の変化            

 

 3DCGの場合、アクターの動きも作る必要があるのですが、体の動きだけでなく、表情のコントロールも必要になります。これはフェイシャルアニメーションになるのですが、体の挙動とは異なり、複数の選択肢があります。この処理については、

 

 

    シェイプキー

    フェイシャルリグ

 

の二つがあります。この二つですが、

 

 

 ■ シェイプキー                      

     ベースとなるモデルを作っておいて、そのオブジェクトの

     頂点座標を変更してターゲットモデルを作り、そのモデ

     ルに合わせて各パラメーターを制御する方法。

 

 ■ フェイシャルリグ                   

     フェイシャルリグは体と同様に顔のボーンを入れて、

     そのボーンを動かして表情を作る方法。

 

になります。シェイプキーを使うとキーの変更で動くので、

 

 ■ シェイプキーによる動作              

 

の動画のように、メッシュの中に、効果として表示する物を仕込んでおくと、それに切り替える事ができます。また、挙動をシェイプキーで登録することもできるので、元のオブジェクトからの変化を登録して使用する事ができます。この時に、ベースのオブジェクトとシェイプキーで指定したオブジェクトのポリゴン数が一致している必要があります。

 

 フェイシャルリグについては、FKやIKで制御するリグが顔に適応されている状態になるので、適正なウェイトが当たっている場合、意図した挙動になります。

 

 シェイプキーは 

 

【 頂点座標の変化をそのまま使用できる物 】

 

ですから、

 

【 平面でも使用可能 】

 

です。

 

■ シェイプキー

で書いていますが、オブジェクトの配置と変更で平面の立ち絵を動かす事もできます。

 

 

 ャラクターオブジェクトのモーション      

 

 オブジェクトを作る上で、何処までがボーン制御で、何処からがそれ以外なのか?を明確にしておく必要がありますし、その制御をどう行うのか?でモデルの作り方も変わってきますが、ゲームの場合だと、ハードウェアの演算能力が低い場合には、重たい処理を除外して作る必要が出てきます。そうなると、現行のコンソールゲーム機やPCゲームでは当たり前にできている内容ができない事もありますから、処理の方法が変わってきます。

 

 その為、動画を作る場合と、ローレゾのゲームを作る場合では条件が全く違うので、モデルの作り方も違ってきます。この辺りは、ゲームエンジンで使うモデルのリグ構成と、動画で使われているキャラクターオブジェクトのリグ構成が全く違うのでそれを参照すると解り易いのですが、ハイポリモデルで適正に動かそうとすると、ボーン数もポリゴン数に比例して多くなります。

 

 モデルの生成段階では、こうした 【 モデルの構成 】 を考える必要がありますが、【 どう言った方法で動かすのか? 】 でも条件が変わってきます。基本的に、動画だと撮影の工程になるのですが、3DCGでもモーションキャプチャーを行う場合には撮影の工程は存在します。

 

 

 ーションキャプチャー               

 

 モーションキャプチャーの技術は今後はさらに気軽に使える時代になっていくと思いますが、

 

 ■ Open Pose

    https://github.com/CMU-Perceptual-Computing-Lab/

    openpose

 

などもあるので、画像解析による処理も可能になっていますが、モーションキャプチャーについては、現在は3Dアバターのリアルタイム処理が可能になっているので、単体でのオブジェクトのモーションキャプチャーが可能になっています。

 

 その為、こうした分野については、RGBAカメラでモーションを得る方法と、画像解析を行う方法と、センサーで検知する方法などがあります。

 

 フェイシャルキャプチャ―については、画像解析なので、それを用いた処理を行いますが、FaceRigなどもそうした機能を用いたものになります。こう言ったアプリケーションは、あくまでも解析したデータをリグに及びシェイプキーに対して適応する仕様なので、元のモデルがそのソフトウェアで動作する仕様になっていなければ機能しません。その為、モデルが適正に動く状態でセットアップされている事が大前提になりますから、キャプチャー環境だけあっても動かすモデルが完成していなければ作業になりません。

 

 キャプチャー環境は気軽な物になっていますが、全体を撮影してそれが空間上を移動する状態まで収録するとなると、VRグラスだけでは厳しいので、異なる環境を用意することになりますし、画像解析の場合だと、始点を変える事ができませんから、必要な条件にあったモーションキャプチャーの環境を選択することになります。

 

 

 DCGの場合                     

 

 空間上で動く物は、全て、モーションを構築して実装する必要がありますが、空間上に運動エネルギーや物理法則が存在しないので、それを数式で実装する必要があります。多くのソフトではそう言った機能は標準機能として実装されていますが、キャラクターモデルのようにリグとダイナミクスを併用する物も存在します。

 

 動画を作る場合、登場人物が存在しますが、この場合、実写だと人が演じることになりますが、アニメーションの場合、実在しない物を作るので、その存在の作成から行う必要があります。また、モデリングと言う作業は、彫刻と同じで形状の実を作る作業になりますから、動きを入れる場合には骨格を用意したり挙動に必要なダイナミクスなどを実装する必要があります。

 

 これに加えてストラクチャーや景観を構成するオブジェクトを作る必要があるので、実写とは少し異なる仕様になります。

 

 手書きアニメの場合だと、焦点距離の変化なども含めて絵で表現することになりますから、パースで焦点距離の変化やレンズの湾曲を表現する事になります。

 

 

 

回の作業環境                   

 

  ■ Core i5 650

  ■ H55M-Pro 

  ■ DDR 1333 2GBx2+1GBx2(DUAL CH)

  ■ Quadro K620(PCI Express x16 【GEN2動作】)

  ■ SATA HDD

  ■ WINDOWS 10 x64 (1909)

 

  ■ Blender 2.83.1 (x64) 

     https://www.blender.org/

 

  ■ Gimp 2.10.18 (x64)

     https://www.gimp.org/