読者です 読者をやめる 読者になる 読者になる

WarsowのDemoから動画を作る方法

Demoから音声付きで動画を撮る方法。Frapsは使いません。PC性能低くても時間かければそれなりに綺麗な画質になります。

使用ソフト

概要

  1. Warsow v0.42 MMEで録画と録音
  2. OTFFSRでスムージング
  3. VirtualDubModで動画形式に

Warsow v0.42 MMEで録画と録音

録画の準備

autoexec.cfgなり、自分でconfig作ってexecするなりして下さい。
録画fpsは、90, 125, 166, 333 (1000 / n : nは自然数)を指定して下さい。また、後ほどOTFFSRでスムージングをかけるので、最終fpsはここで指定したfpsをOTFFSRで指定した整数で割った物になります。(例:90fpsで撮って、OTFFSRで3を指定すると、最終fpsは30)

// for recording demo
seta cl_demoavi_fps 90  // 録画fps
seta r_mode 4           // 3:640x480 4:800x600
seta vid_fullscreen "0" // Windowモード
seta cl_demoavi_scissor 0 //必須
seta r_screenshot_jpeg 1  //JPEG形式で保存
seta r_screenshot_jpeg_quality 100 //JPEG品質最大

seta s_module 1  // サウンドモジュールqf (録音のため)
seta s_mixahead 0.1 //qfだと音が遅れる問題への対応

seta cg_showFPS "0"  //FPS表示を消す

seta cl_demoavi_video 1 //demoaviコマンドで録画
seta cl_demoavi_audio 0 //demoaviコマンドで録音はしない

vid_restart
録画

デモを再生して、録画したいところで demoavi コマンドを使用。bind n demoavi とバインドしておくと1キーで録画出来ます。
デモを丸々1本録画する場合は、メニュー画面で

demoavi demo.wd10

とすることで、最初から最後まで録画してくれます。Windowのフォーカスが外れても問題無いです。出力結果は連番画像としてbasewsw/avi/以下に保存されています。

録音

次のように設定してdemoaviコマンドの動作を変えます。demoaviでの録音はサウンドモジュールがqfでないと動かないので注意。

seta cl_demoavi_video 0 //demoaviコマンドで録画しない
seta cl_demoavi_audio 1 //demoaviコマンドで録音

demoaviコマンドの使い方は録画時と同じ。Windowモードで録音している場合、フォーカスが外れると音も切れるので注意。音声は画像と同じフォルダにwavファイルとして出力されます。

OTFFSRでスムージング

config.txt に設定を書きます
設定項目は上から順に

  • 入力元フォルダ
  • 出力先フォルダ
  • 入力画像横幅
  • 入力画像高さ
  • スムージング係数(自然数)(元fps / この値 = 最終fps)
  • 出力画像形式
  • スレッド数 (CPUコア数と同じかちょっと多めぐらいが良さげ)
D:\game\Warsow\basewsw\avi
D:\tmp\wswmovie
800
600
3
jpg
4

OTFFSRは処理した入力画像を削除します。
うちの環境のせいかは不明ですが、全部処理したわけではないのに終了したりします。もう1回起動すれば問題無く作業を続けます。
最後1枚だけ残して処理が止まった場合はCtrl+Cで終了させます。

VirtualDubModで動画形式に

File > Open video file からOTFFSRの出力した画像の最初のものを指定すれば、残りの画像も読み込んでくれます。
音声追加は Stream > Stream list から Add で先ほど録音したwavファイルを指定します。音ずれの確認は短時間の動画を範囲選択でエンコードし確認します。調節はstream listから 右クリック > Interleave からDelay Audio Track by 〜 ms の値を変更します。マイナスの値も指定出来ます。
Video > Frame rateでfpsの設定をします。先ほど計算した最終fpsを指定します。何故かずれる場合は、音声ファイルに合わせるのもありかも(Change so video and audio durations match)
設定が終わったら、最終出力なり可逆圧縮で保存するなりします。

蛇足

実況風音声解説では、REAPER v0.999で1文ずつ録音リテイクを繰り返して録音、Audacityでゲーム音とBGMと合成して、aviutilで最終エンコードという形で作業しました。
録音リテイクはREAPERが超便利でした。詳しい使い方はわかってないので解説は省略。
可逆圧縮はhuffyuv使いました。最終エンコードaviutl_h264 - ニコニコ動画まとめwikiを参考にしました。