MIS.W 公式ブログ

早稲田大学公認、情報系創作サークル「早稲田大学経営情報学会」(MIS.W)の公式ブログです!

CGで映像を作れ 【新歓ブログリレー2020 15日目】

こんにちは、54代の何がしたいのか分からない研(??)のみゅーです。情理のくせにプログラミングしてない僕を許してくれ…

新歓ブログを引き受けたはいいものの、何を書くか全く思いつかなくて結局このタイトルの通りに落ち着きました。

というわけで早速本題に入りたいと思います!映像やりたいな~とか、CGやりたいな~って人は是非最後まで読んでみてください。

まずこれを書いた目的は?

行き当たりばったりのテーマとはいえ、多少は考えて書いてます。弊サークルにはそれなりに映像をやってる人間がいるんですが、あまりCGを活用してる人がいなかったんです。かく言う自分もすこーし使うくらいで、がっつりCG使ったものは作らないんですけどね()。

個人的にせっかく3DCGをやるなら、モデリング止まりでなくて映像まで作っちゃおうぜ~って考えがあるんで、これを布教してやろうってことで書いてます。

具体的になにをする?

CGで映像を作るといっても、モデリング部分までは通常と変わりません。そのあとの工程が追加されるだけです(たぶん)。

  • モデル作成、配置
  • マテリアル、テクスチャの設定
  • 動き、アニメーションの設定(あれば)
  • ライト、カメラの設定
  • レンダリング
  • コンポジットし、最終レンダリング

この赤字のところが多少変わるかな~と思います。(映像にしかCGを使わないので実は違いがよく分かりません…)

使うソフトは?

これが一番気になりますよね。多少宗教などが入るので一概には言えないですが、自分や自分の知り合いはこんなものを使ってます。

  • Cinema4D モデル作成からレンダリングまでの一般的にできる無難なやつ
  • Blender 無料で多機能な最強くん Octane Render(後述)がフリーで使える 神(使ったことないけど)
  • Houdini 複雑な物理現象とかを再現するとき
  • Autodesk Maya モーションとかをつけるのによく使ってる(知り合いが)
  • Autodesk Fusion360 これはCADなんですけど操作性の良さからCGに使う人もいます
  • Adobe After Effects 映像制作、コンポジットの定番ソフト
  • Black Magic Fusion ノードベースのコンポジットソフト (無償版はDavinci Resolveに統合されました)

僕は普通の純粋なモデリングが嫌い(下手くそ)(絵が描けないせい)なので、Houdiniというソフトでコードを書いてシミュレーションするのしかほぼやりません(プログラミングしてたわ)。そもそも本職はコンポジットよりなのでCGの方は低レベルな知識しかないです。

記事の後半ではHoudiniとFusion、After Effectsを用いて簡単なワークフロー解説をやります。

CGとなるとつよつよPCないとできないんじゃない?

これに関しては全くその通りです。特にCGで映像を作るとなると、レンダリングにバカみたいな時間がかかるので作業効率にも影響が出ます。一度に複数フレームのレンダリングをするためです。

通常3DCGソフトに標準搭載されているレンダラーはCPUのみを使うレンダラーです。CPUは並列処理を苦手とするので、レンダリングの精度は高くなりますが、時間がものすごくかかります。そこで登場するのがGPUを使う外部レンダラーです。いろいろな種類がありますが、以下の二つがよく使われます。

  • Redshift Render
  • Octane Render

このあたりの違いは深く解説はしませんが、いずれにもメリット・デメリットがあるので使い分けが重要になります。つまり何が言いたいかというと、CPU・GPUともにそれなりのスペックが必要ということです。

不自由なく作業するには、少なくともCPUはCore i7上位モデルかRyzen 7以上のもの、GPUはGeForce GTX1060あたりが最低ラインだと思います。(サクサクレンダリングとかをこなすにはワークステーションレベルのスペックが必要)

とりあえずPCのコストと電気代(こいつが一番やばい)については覚悟しておきましょう…

実際にやってみましょう

御託を並べるのもここまでにして、実際の作業を見てみましょう。

Houdiniによるシミュレーション作成

ここで作るのはパーティクルシミュレーションです。らせん状にパーティクルが拡散されていくものを作りたかったので、らせん状の成長アニメーションを作り、その成長に合わせてパーティクルが生成されるように作りました。

f:id:kokoromyuu:20200408112919p:plain これはらせん状の物体を作ったものですが(せっかくなのでDNAっぽくした)、なんだこれって感じですよね。Houdiniっていうのはこれだけ異色なソフトなんです。なにか物体を置いていじいじなんてのは一切やってません。ノードをつないでコードを書いていくとできるんです。

f:id:kokoromyuu:20200408114216p:plain 最終的にはこのようなパーティクルが得られます。(物体はいらないので消してます)

Octane Renderによるレンダリング

HoudiniにもCPUレンダラーが搭載されてますが、今回はOctaneを使います。Houdiniで外部レンダラーを使う場合、ライトやマテリアルの設定をレンダラー特有のものにする必要があります。Octaneを使うメリットとしては、プレビューが高速な点です。

f:id:kokoromyuu:20200408115144p:plain このようにプレビューされます。

今回は240フレームをレンダリングしようとしましたが、手元にノートPCしかなく時間がかかりすぎたので200で止めました。それでも75時間ほどかかりましたorz

OctaneはNVIDIAのCUDAのみを使います。GPUはGTX1060 Max-Q Editionでしたが、明らかパワー不足でした。

f:id:kokoromyuu:20200408115611p:plain

まあGPUレンダラーの他の利点としては、レンダリング中もCPUが空くんで他のことができることですかね。

Fusionで調整

Fusionを使いグローと色調の調整を行いました。

f:id:kokoromyuu:20200408120059p:plain

左が調整前で右が調整後です。このようにレンダリング後にも様々な調整を行うため、レンダリングにばかり時間はかけれません(個人制作では特に)。ここでレンダリングしたものがこちら

After Effectsで最終調整

もともとこれは暇つぶしで制作していたものに使うために作ったので、そちらに持っていきます。

f:id:kokoromyuu:20200408125149p:plain

DOF(被写界深度)を調整したところまでがこれです。最初にHoudiniからレンダリングしたときに、OpenEXRという形式でZ-depth(簡単に言えば奥行の情報)を含めて出力したので、後々から調整が可能になります。

説明した後なのですが…

ここで扱ったHoudiniというソフトは一癖も二癖もあるもので、通常のものとはかけ離れています。ここではあくまでも映像として扱うワークフローに重きを置いているので、3DCGの方の詳しい解説については2日目の うでメガネさんの記事が参考になるかと思います。

blog.misw.jp

また、ここで出たソフトは有料のものが多いです。レンダラーもそれなりの金額がかかります。手軽に始めたいのであれば、

  • Blenderで作って、フリーのOctane Renderでレンダリング

  • Black Magic Fusionでコンポジット

  • AviUtlで最終的に映像化

の流れが無難です。細かいやり方は変わってきますが、大まかなワークフローはここで述べたものと変わりません。

じゃあなぜHoudiniを出したのか

物理現象などをシミュレーションしてCGを作ると、複雑なものが割と簡単にできてしまいます。例えば木のモデル作成をするとき、枝の多いものを純粋にモデリングするのは骨が折れます。しかし、とあるアルゴリズムを用いると、いくつかのパラメータを設定するだけで木のモデルが完成してしまいます。もちろんアルゴリズムを実装するのは難しいですが、一度実装すればあとは数値をいじるだけです。これほど楽なことはないです。

書いたコードが可視化されてCGになるっていうのはなかなかエモいので、プログラミングに興味がある人にもぜひやってみてもらいたいです。(僕はそこに魅力を感じてのめりこみました)

最後に

話の流れがガバガバで最後の方はHoudiniの布教みたいになってしまいましたが、少しはCGを利用した映像にも興味をもってもらえたでしょうか。映像にも種類がいろいろあってそれぞれ特色があります。脳内で浮かんだものをうまくアウトプットできると最強に楽しいのでぜひいろいろやってみてください。

明日はラストで、幹事長のびらきさんの記事です~!