動画再生

ウディタ動画再生機能(Ver2.26-)

WOLF RPG Editor Ver2.26から、ピクチャコマンドで動画が扱えるようになりました。

扱える動画フォーマット

  • mpg形式(もう使ってる人も少ない、昔ながらの動画形式)

  • avi形式(地味にCodecが色々あるので環境によっては再生できないかも)

  • ogv形式(ogg音声の動画版みたいなの。一番安定して再生できますがマニアック)

  • mp4(H.264エンコードのもの? Windows機能で再生しててかすかに環境依存)

(以上、SmokingWOLFさんの開発日誌 より抜粋)

以上4種とのこと。一番のおすすめはogvだそうです。
残念ながらフリーの動画作成ソフトでogvに直接エンコードしてくれるものは見つからなかったので、フリーのコンバータを拾ってくるか、Web上でコンバートしてくれるサイトで変換するかになります。

私が探した中で、怪しくないと感じた無料のソフトはPazera SoftwareのFree OGV Video Converterです(怪しくないことを保証するものではありません)。
単機能ですが、ちょっと使ってみたところ問題なく使えます。日本語表示なのも安心。

下にサンプル動画置いてます。このサイズなら違いはわかりませんね。ビットレートや変換ソフト/サイトがまちまちなので一概には言えませんが、ogvとmp4がサイズ小さめの模様。

test_loop.ogv

ogv(5MB)

test.mp4

mp4(6MB)

test.mpg

mpg(10MB)

test.avi

avi(10MB)

※Windows10以前のPCはフリーズが発生するmp4(H.264

第14回ウディコンにて、色々なゲームで「フリーズする」という報告が起きていました。調査したところ、

  • Windows7、もしくはそれより古いPC

  • mp4の動画の再生を始めるタイミングでフリーズ

という現象だったようです。動画を再生させる場合は、ReadMeあたりに【動作環境:Windows10以降のPC】などとするほうが良さそうです。
また、拙作は動画を使っていたのですがフリーズ報告はありませんでした。更に調査したところ、

  • Aviutl で【音声なし】でエンコードした場合はフリーズしない

ということも判明しました。どうしても動画をWindows7でmp4を再生したい場合は、音声なしエンコードの動画と音声ファイルを別で再生するといいかもしれません。

OGVだとこの現象は発生しないので、エンコードできる環境があるならすべてOGVが良さそうです。

使い方

ピクチャとして扱います。動画専用のコマンドはありません。

  • ループさせる場合はファイル名に【_loop】【_LOOP】が含まれていれば自動でループします。

  • 動画の音声は、効果音のように再生されます。BGM音量補正の影響を受けます。

  • セーブ・ロードには非対応(動画ピクチャ再生中にセーブ&ロードすると再生停止状態になります)。ただ、後述のようにエフェクトで再生位置変更はできるので、セーブ時に再生位置を別で保存してあれこれすればなんとかなりそう。

  • 再生開始時やシーク時に30~40ミリ秒程度止まってしまうので、頻繁に表示したり短時間ループするエフェクトとしては不自然になります。

ピクチャコマンドから動画ファイルを直接読み込もうとしても、左図のように候補には出てきません。Movieフォルダを作成し、その中には間違いなく配置しているんですが。

なので、UDBに動画データベースを作っておいて、文字列で呼ぶと扱いやすいと思います。

|■DB読込(ユーザ): CSelf5 = ユーザDB[ Movie : loop.ogv : ファイル名 ] (0 : 3 : 0) |■ピクチャ表示:100 [左上]ウィンドウ(CSelf5)

動画に限らずピクチャもですが、以上のようにすれば間違いなさそう。

新機能

動画ファイルを扱うための新しい機能。

変数操作+

ピクチャの項目に以下が追加されました。

  • [動画時]動画再生位置[ms]

  • [動画時]動画総再生時間[ms] ※得られるのはogv、mp4形式のみ

エフェクト

エフェクト-ピクチャの項目に以下が追加されました。

  • [動画]再生速度変更機能[%] ※再生速度を「0」にすると一時停止になります。

  • [動画]再生位置変更[ms]

  • [動画]音声ボリューム変更[%]

<<GET_SOUNDTIME>>

※動画ファイルでは使用できません。が、新機能

文字列変数で、【に↓のファイル内容読み込み】で
<<GET_SOUNDTIME>>Data/(ファイルパス)
と入力すると、そのオーディオファイルの長さがミリ秒で取得できます。文字列で取得されるので、数値で扱うなら変数操作から変換が必要。
プレイリスト作成などで複数ファイルの長さを取得するときに重宝しそうです。

動画ファイルで試してみましたが、エラーは出ずに数値は取得できます。ただ、変数操作+と<<GET_SOUNDTIME>>で取得できる数値に差が出てしまうようです。だいたいは合ってましたが。

ピクチャコマンド実験

各種コマンドが有効かどうかを確認しました。公式マニュアルの仕様はこちら

otegaru.mp4

お手軽ウィンドウ

ピクチャと同じ挙動でした。3分割して四隅が等倍、フチと中心はそれぞれ拡大。

jiyuu.mp4

自由変形

ピクチャと同じ挙動でした。ねじれもOK。すごい。

genzan.mp4

加算・減算・乗算

正常に動作しました。右のサンプルは減算。

kakudo.mp4

角度・拡大率その他

考えうるパラメータはだいたい試しましたが、おそらく想定通りの動作でした。
(角度・拡大率・縦横拡大率・カラー補正など)

右のサンプルは角度です。

エフェクトコマンド実験

ピクチャコマンド同様、各種コマンドが有効かどうかを確認しました。公式マニュアルの仕様はこちら

bunkatu.mp4

分割・パターン切替

正常に動作しました。右サンプルは、縦横3分割して15フレームで自動切り替え。

effect.mp4

カラー補正・ズーム・フラッシュその他

試したものはおそらく正常に動作しました。

まとめ

以上から、普通のピクチャとして扱って構わないと思います。使い方は色々ありそうなので、考えるのも楽しみ、使ったゲームを触るのも楽しみです。