« 2007年01月 | メイン | 2007年03月 »

2007年02月 アーカイブ

2007年02月03日

Warsow の fps (frame per second) 指定

Warsowフォーラム を眺めていたら demoavi でキャプチャしたシーンが実際のゲームより遅くてサウンドと同期しないバグ が報告されていました(しかも 検証ムービー 付き)。

demoavi_delay_divx.png

ってこれたぶん fumio さんの POV ですよね。で、日本人でこんな検証ムービーをささっと作れる人って... て感じで誰が投稿した人かなんとなくわかってしまったので、早速検証してみました :P

自分のデモを使って cl_demoavi_fps を色々変えて demoavi をテストしてみたところ、cl_demoavi_fps 160 を指定すると出力される jpeg の fps は 166 になり、cl_demoavi_fps 300 を指定すると出力される jpeg の fps は 333 になりました。で、フォーラムを検索したところ、この 記事 によると、Warsow のエンジンの仕様で fps (cl_maxfps、cl_demoavi_fps) は 1000 / n (n は自然数) の値しか指定できないようです(Cyph3R さん情報 thx)。

例えば、

1000 / 11 = 90
1000 /  8 = 125
1000 /  6 = 166
1000 /  3 = 333
という感じで、任意の fps を指定しても 1000 / n に相当する値になる仕様のようです。

P.S. fumio the movie の続編(?)を楽しみにしてます :D

How to make a Warsow movie (My first movie making...)

一つ前の記事で書いたように、Warsow の demoavi というコマンドについて調べていたら、Warsow WikiMovie Making という記事を発見。で、ちょっと読んでみたら結構簡単そうだったので早速ムービーを作ってみました。

with_temporal_smoother.png

何しろ PC でムービーを作るのは初めてなのでほとんどわかってないんですが、こんな手順で Warsow Movie が作れます。

画面のキャプチャ
まず、Warsow を起動してムービーのための設定をしておきます。詳しくは Warsow WikiMovie Making を参照してもらうとして、コンソールから以下のように入力しました。ちなみに r_mode で解像度を変えた場合は vid_restart で有効になります。

cl_demoavi_fps 125 // or 90, 166, 333
r_mode 15 // Wide 1440x900
cl_demoavi_scissor 0
r_screenshot_jpeg 1
r_screenshot_jpeg_quality 100
bind UPARROW "demojump 0"
bind DOWNARROW "demopause"
bind LEFTARROW "timescale 1"
bind RIGHTARROW "timescale 4"
bind n "demoavi"

上記設定をした後、キャプチャしたいデモを再生して撮りたいシーンになったら demoavi を実行します(この例では n キーに割り当てています)。シーンが終わったら再度 n を押してキャプチャを止めます。そうすると warsow/basewsw/avi フォルダに avi000000.jpg みたいな連番の jpeg ファイルがずらずらと出力されますので、これらのファイルをどこかに保存しておきます。

音のキャプチャ
もし、ゲーム中の音もムービーに入れたい場合は、再度同じデモのシーンを再生しながら Audacity 等のソフトで録音しておきます。私はこのソフトを使って WAV ファイルに保存しました。録音するための設定等は Warsow WikiRecording sound を参照してください。

動画編集
次に、動画編集ソフトを使って、先程生成した連番の jpeg ファイルを avi に変換します。とりあえず、私は動画編集ソフトを持っていなかったので、オープンソースソフトウェアの VirtualDub を使いました。まず、VirtualDub を起動して File -> Open video file... で読みこみたい連番 jpeg ファイルの最初の画像を指定します(例えば avi000000.jpg)。そうすると、連番のファイル全てが読みこまれます。次に Video -> Framerate でフレームレートを指定します。ここでは 125 fps でデモをキャプチャしましたので、"Source rate adjustment" のところで 125 を指定します("Change to 125 frames per second")。

ゲーム中の音を入れる場合は Audio -> WAV Audio... で WAV ファイルを指定しておきます。ちなみに、画面と音がずれる場合は Audio -> Interleaving... の "Audio skew correction" のところで、"Delay audio track by 0 ms" を指定して調整します。音が速すぎる時は正の数、音が遅すぎる時は負の数を指定するそうです。

いよいよ avi に変換します。File -> Save as AVI... で出力ファイルを指定すると変換がはじまります。この処理は結構時間がかかります。なお、出力されるファイルは結構サイズが大きいです。1440x900、125fps、10秒の元データを、無圧縮の avi にすると数GByte になりました。

動画圧縮
無圧縮の avi ファイルが出来たら、動画圧縮ソフトで圧縮してやります。私は オープンソースソフトウェアの FFmpeg を使いました(というか、実際使ったのは 携帯動画変換君 :))。こんなオプションで圧縮しました(H264 848x480 40fps 8000bps)

ffmpeg -y -maxfr 40 -i 入力ファイル.avi -bitexact -vcodec h264 -coder 1 -bufsize 128 -g 250 -s 848x480 -b 8000 -acodec aac -ac 2 -ar 48000 -ab 64 -f mp4 出力ファイル.mp4
携帯動画変換君の場合はこんな感じです。
[Item5]
Title=848x480 40fps 8000bps
TitleE=848x480 40fps 8000bps
Command0=""<%AppPath%>\cores\ffmpeg" -y -maxfr 40 -i "<%InputFile%>" -title "<%Title%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec h264 -coder 1 -bufsize 128 -g 250 -s 848x480 -b 8000 -acodec aac -ac 2 -ar 48000 -ab 64 -f mp4 "<%OutputFile%>.mp4""

完成 :D
出来上がった動画ファイルはこれです。コーデックが H264 なので VideoLAN (VLC)QuickTime で再生できます。かなり重い動画です :P。

ちなみにこれは、先日行なわれた RACEATHON という Warsow レース大会に参加したときの第1レースの動画です。

補記: スムースな動画を作るには
この 記事 によると、160 fps でキャプチャして 40 fps にリサンプリングするとスムースな動画が出来るそうです。この記事では Vegas という動画編集ソフトでやったと書いてあるのですが、VirtualDub でも似たようなことがフィルタを使って出来るようです。やり方は Video -> Filters... で "Add..." を押して "temporal smoother" というフィルタを導入すると複数フレームをなめらかに補完してくれるようです。

temporal smoother なしだとこんな感じです。1フレーム毎の画像は綺麗ですが、動画として見るとあまり綺麗に見えません。

without_temporal_smoother.png

こちらは temporal smoother あり。1フレーム毎の画像はぼやけていますが、動画にすると綺麗に見えます。

with_temporal_smoother.png

P.S. せっかく長文を書いたので、近いうちに Warsow Japanese Wiki のほうにもまとめておきたいと思います =)

Warsow Movie: Instagib CTF and Race

というわけで、Warsow Movie の作り方をマスターしたので、ちょっと作ってみました (VLCQuickTime で再生できます)。

これはこの前 #warsow の皆さんとやった Instagib CTF の動画です。必死で旗を持ち帰ろうとする図 :)。

warsow_ictf_13vast.png


こちらは Race モードでスピード 2600 が出た時の動画です。これはかなり疲れました :)

warsow_2600.png

2007年02月09日

Warsow Movie: ESW 2007 Season 1 #1 Frag Movie

先日行われた ESW 2007 Season 1 #1 (オンライン Warsow 1v1 トーナメント) の Frag Movie を作ってみました(VideoLAN (VLC)QuickTime で再生できます)。

次回の ESW は 2/24(土) に開催されます。2/23(金) までが登録期間 です。是非参加してみてください。

まだムービー作るのは初心者なので、フラグシーンを繋げただけのシンプルなものですけど、数日で作るのはこれが精一杯でした。Frag Movie 作るのってとにかく時間がかかるんですね =)

続きを読む "Warsow Movie: ESW 2007 Season 1 #1 Frag Movie" »

2007年02月17日

Let's create the new FPS!

Warsow forumここ とか ここ でも次のバージョンの話題が盛り上がっていますが、新しいアイデアをあれこれ考えるのは楽しいですね。Warsowオープンソース のゲームなので、気にいらなければ自由に変更できるところが魅力だと思います。Warsow に限らず、自分で新しい FPS を作るのはプレイするよりも楽しいと思います :)

新しいゲーム(or パッチ)が出るらしい → 期待 → リリース → ガッカリ ;(
というパターンに食傷気味の方、自分の手で FPS を作ってみませんか?

こちらは最近 G-Gamma さんが作った Warsow のカスタムモデルです。forum でも 好評 のようです。

gachapin.jpg

P.S. 近いうちに nip (Lead Development)ETR (Newser, Mapper, etc.) への インタビューが予定されている そうです =)

2007年02月23日

Warsow 0.3 Information

warsownews.netnip (Lead Development)ETR (Newser, Mapper, etc.) へのインタビューが掲載されています。

9 ページ目に 新マップのスクリーンショット が 4 枚あります。よく見れば、それぞれどのゲームタイプ用のマップかすぐわかると思います :)

wsw-pre03-3.jpg

このマップかなりカッコイイです。どのゲームタイプ用かわかりますよね? :D

ESW 2007 Season1 #2nd, Feb. 24, 2007. from 21:00 JST (12:00 GMT)

ESW 2007 Season1 #2nd が明日 24 日(土) 夜 9 時から開催されます。Video Streaming もありますので是非見てみてください。

今回の見所は、前回悲願の優勝を果たした fumio 選手と元王者 bluespear さんの対戦。さらに最近実力を上げている uxa さんがこの二人にどう切り込むか。といったところでしょうか。

esw_2007_season_1_2.png

おまけとして、久しぶりに Layzie さんが実況に復帰するらしいので楽しみにしています(実況を) :P

2007年02月26日

Warsow 0.3 coming soon...

ClanArena のテストセッションで面白いシーンがあったので demoavi のテストも兼ねてムービーを作ってみました。ムービーを見ればわかりますが、4v4 の CA で、1対4 の状況から必死で逃げつつ... というシーンです。4人まとめてジャンプパッドで登ってくるところがウケました。最後はガンブレードで切られてます :)

ダウンロードはこちらです。(H.264, 720x448, 40fps, 4000bps, 2pass でエンコードしました)

もしうまく再生できなければ、VLC Media PlayerQuickTime を使ってみてください。

0.3 はまだ開発中なので、正式リリース時にこのムービーとは違った感じになるかもしれません。

Have fun :D