ページ 11

ムービー

Posted: 2010年7月23日(金) 20:36
by amu
ムービーを表示したその上から違う画像を表示することはできますか?
もし出来るのならサンプルプログラムもお願いします。

簡単な質問でスイマセン。

Re:ムービー

Posted: 2010年7月23日(金) 21:16
by amu
編集キー忘れたのでこちらで追記します。

目的は、シューティングなどの背景をムービーで表現したいと思いまして・・・
重くなるのはわかるのですが実験としてやってみたいと思っています。

Re:ムービー

Posted: 2010年7月23日(金) 21:42
by 御津凪
技術的に問題ないのであれば「可能」です。

しかし、方法は環境によりますので、下記は期待に添える内容かどうかはわかりません。
(自身でサンプルプログラムを書くのは時間的に無理です)

環境が Windows XP 以降、DirectX9 であれば、DirectShow を利用してムービーを再生・表示しながらムービー以外を描画することができます。
(DXライブラリであれば、リファレンスを熟読すればできるかと思います)

下記に大まかな方法を書いておきます。

・DirectShow のカスタムレンダラを用意する。
・そのカスタムレンダラは、 DirectX9 のテクスチャに転送させる。
・そのテクスチャを背景に描画する

上記ができればムービーをテクスチャ代わりに出来るので、いろいろと自由に扱えるはずです。

なお、上記の方法を行っている処理のサンプルプログラムと解説が下記リンクに掲載されてます。

http://www.shader.jp/xoops/html/masafum ... how001.htm

なお、ムービーの形式やサイズなどのよりますが、再生中は10%程度(あるいはそれ以上)のCPU負荷が掛かります。

Re:ムービー

Posted: 2010年7月24日(土) 00:04
by Dixq (管理人)
可能ですし、サンプルプログラムを見るほどの事ではないですよ。

ただ、動画の描画関数の後で画像の描画関数を書けばいいだけです。(合計2行)
書いた順番に描画されるので、後に書いたものが上にきます。

このHPで公開しているゲームAerobeatはまさに動画の上にゲーム画像を描画しています。
(参考)[nico]http://www.nicovideo.jp/watch/sm8808750[/nico]

少し昔までは動画を背景にするなんて考えられませんでしたが、
最近のPCでは割とまともに動きます。
スペックが低いPCで処理落ちする事を覚悟の上であれば採用するのもありかもしれません。