PC FPS Games.net

プレイ動画へのマッチムーブCG合成の方法

2013-04-07 カテゴリ:その他 ソフトウェア タグ:


かっちょいいプレイ動画は山ほどあるけど、実際のゲーム画面には登場していない何かが合成されている動画がたまにある。たとえばこういうのとか。

Careless | A Battlefield 3 Montage by Mr Kees de Koning feat. Sgt.Enigma

俺はたまたまCG作成の知識が少しあるので、そのやり方を簡単に解説してみる。そして興味があったらプレイ動画作成に応用してもらいたい。わりと楽しいから。

まず最初に、必要なものと概略となる目次を書いておく。

必要なもの

・PC
・PCゲーム
・録画ソフト
・トラッキングソフト
・CGソフト
・動画編集ソフト
PCとゲームはまあおいておくとして、録画ソフトは長時間の録画なら有料版が必要ってくらい。短時間なら無料版でもいい。
トラッキングソフトってのが今回のキモなんだけど、これは無料で使えるやつがあるのでそれを使う。
CGソフトもBlenderとか無料で使える高機能なのがあるので、それでいいと思う。
動画編集ソフトは、ものによっては合成のための機能がない場合があるので、ちゃんと調べた方がいい。

目次

0.マッチムーブとは?
1.ゲームをプレイして録画する
2.トラッキングソフトで動画から合成用の情報を作成する
3.CGソフトでマッチムーブの情報を読み込み、合成用動画を作成する
4.動画編集ソフトで元動画と合成用動画を合成する

0.マッチムーブとは?

全部書き終わってから、これを書いてない事に気付いたので付け足し。
と思ったけどめんどくさくなったのでWikipediaへのリンクで済ます。
http://ja.wikipedia.org/wiki/マッチムーブ
一言でいうと、動画からカメラの動きを再現し、それに合わせて合成すること。

1.ゲームをプレイして録画する

好きにして、どうぞ、って感じなんだけど、俺はDxtoryを使っている。Frapsとかbandicamとか何でもいい。ほとんどのソフトが試用版や体験版があるので、試してみて一番トラブルの少ないやつを選べばいい。このへんは環境ごとに違うはずなので、それぞれ使ってみないとわからない。
今回はマッチムーブを前提に考えているので、出来るだけ高解像度で録画出来た方がいいと思う。高解像度の動画を使った方が、より正確にトラッキング(カメラの動きを再現)出来るから。

2.トラッキングソフトで動画から合成用の情報を作成する

有料ソフトだとboujouとかが有名だけど、たしか糞高いはず。なので無料で使えるvoodoo camera trackerってやつを使う。
http://www.digilab.uni-hannover.de/docs/manual.html
翻訳ページはこっちにある。
http://translation.heteml.jp/wiki/index.php?Voodoo Camera Tracker HP 日本語訳

2.1.元素材作成

voodoo camera tracker(以下voodoo)は動画をそのまま読み込むことはできない。読めるのは、連番のTGA、PNG、JPGのいずれか。なので、動画から連番静止画ファイルを作成する。
俺はDxtoryで録画したaviファイルからAviUtlで連番BMPを作成し、それをIrfanViewでPNGに変換した。
個々のソフトの操作は面倒なので割愛する。

2.2.voodooの設定

voodooを起動して、作成した連番静止画ファイルを読み込む。File → Load → Sequenceで選択。
読み込むとき、interlaceをnot interlacedにMove typeをfree moveにする。free moveってのは視点と位置の両方が動くってこと。デフォではrotation(camera on tripod)ってなってるけど、これは視点のみの動きのときに選ぶ。

そしたら次にvoodooのカメラ設定をする。File → Load → Initial CameraでTypeから適切なものを選べばいい。画面サイズが4:3なら「NTSC 4:3(DV)」、16:9なら「HDTV 16:9」。
16:10とか特殊な場合はカスタムする必要がある。
設定が済んだら、右下にあるtrackボタンを押す。うまく行くと下の画像みたいな感じでトラッキングが始まる。

そこそこ時間がかかるので、なんか別なことをして時間つぶすといい。

2.3.データの書き出し

トラッキングが無事終わったらデータを出力する。
voodooは有名な3DCGソフトには対応しているので、使っているソフトに対応していれば、それに合わせてトラッキングしたデータを出力すればいい。
対応しているのは、3DSMAX、Blender、LightWave3D、Maya、Softimageの5種類。
俺は昔安かった頃に買ったSoftimage XSIを持っているのでsoftimageのdotxsi形式で出力した。
これで3DCGソフトに、トラッキングしたカメラの情報を持ち込むことが出来るようになった。

3.CGソフトでマッチムーブの情報を読み込み、合成用動画を作成する

トラッキングしたデータをSoftimage XSIからdotxsiという形式で読み込む。すると、XSIの画面上にトラッキングしたポイントと、トラッキングされたカメラが現れる。

しかしトラッキングされたデータは、XYZ、すべての軸に対して反転したような状態で読み込まれてしまっている。これは俺がはじめてvoodooを使った時からある問題で、いまだいい解決方法がわかっていない。
仕方ないので上下左右が反転しているのはそのままにして進める。ただし、すごく専門的な話になるけど、カメラのアップベクターだけは手動で調整しないとどうにもならない。なので、XSIのanimation editorで、アップベクターのFカーブを反転させ適当な位置まで移動させる。これでほぼ滑りのない合成が可能になる。
ここまで出来たら後は適当になんか作って置いて合成用素材を作ればいい。

ちなみに1920pで出力しようと思っていたんだけど、予想以上に時間がかかりそうだったので720pで妥協した。

4.動画編集ソフトで元動画と合成用動画を合成する

俺はPremiere Proを持っているので、今回はそれを使う。と言っても、ここまで来ちゃえば後は大して説明することもない。
いちおう今回はちょっと凝って、影の合成もやってみた。ソフトシャドウは時間の関係であきらめた。
合成を画像で説明するとこんな感じ

他にもライトの方向をゲーム内とざっくり合わせたり、あといわゆるグローバルイルミネーションを使って、より自然に合成できるように工夫している。時間がかかったのは主にこのグローバルイルミネーションを使ったせい。

今回作った動画は一応下記のようになった。ほんの数秒の動画だけど、作成にはかなりの時間がかかっている。

BF3 voodoo camera tracker テスト動画

で、今気付いたんだけど、どうも地面の水平を取り違えていたみたい。電柱とか建物とかと垂直の線が合ってなくて、少し右に傾いている。テストなんで直すつもりはないけど。あとなんか最後に1フレーム溢れてる。もうどうでもいい。

文字ばっかで糞つまんない記事になっちゃったけど、まじ面白いからこういうの。
そして俺みたいにPCの前で人生の時間を無駄使いしよう。

最新記事

今日のアクセスランキング


人気ブログランキングへ