hibitekitou
VideoTextureで2つのムービーをテクスチャとして貼付けた
cg |2012-12-04
Blenderにて2つのムービーをテクスチャとしてはりつけ、ゲームモードにてムービーを再生する方法。
こちら [blenderartists.org] を参考に、やってみた。
2つのポリゴンで構成されたオブジェクトにそれぞれのポリゴンにUVを設定し、それぞれにマテリアルを設定し、それぞれにテクスチャを設定してます。
![](https://blogimg.goo.ne.jp/user_image/2a/81/e0bc18655340ab6490b3e279b585d74f.jpg?random=e1d43239d368f3c850d043ef1c90e925)
マテリアルは片方にはvideo、もう片方にはvideoBと名付けています。
![](https://blogimg.goo.ne.jp/user_image/38/1f/28dec9aa77d9dd82807afa34c6930b52.jpg?random=57ad5fedc34c429211a566fdad763a47)
この状態で、Logic Editorの内容をこんな感じに設定しています。
ActuatorsのSoundで指定しているファイルは、この後のスクリプトで設定しているムービーファイルの1つと同じファイルです。
![](https://blogimg.goo.ne.jp/user_image/42/a6/375b7db69af7d2ad65a242b73e7ee12b.jpg?random=87a61dfdf25a1bcc118af3fbc207c4c6)
ControllersでPythonを設定して、Modulの内容を video.init_worldやvideo.update としているのは video.pyというファイルにinit_world()やupdate()関数を用意しているからでして、Text Editor上でこんな感じにスクリプトを記述しました。
![](https://blogimg.goo.ne.jp/user_image/45/87/07c49dd5dfa9a9a2c9434e8979c329c8.jpg?random=dc412038b3af5c590c061e20a29c26c1)
こんな感じです。
Pキーを押して再生するとこんな感じで無事ムービーが流れました。
たぶん、音の時間で2つのムービーの時間は同期しているんだろうと思います。
![](https://blogimg.goo.ne.jp/user_image/5b/6f/c1abfe99bff8f746711cc53e003db99b.jpg?random=b24e64b6c185229f1e6b3d61796dc48a)
とりあえず、メモでした。
なんでこんな事やってんだろw Blender、わけわかんねぇよ。
<追記>
うがっ、再生したらムービーが途中で止まる…。
追記>
こちら [blenderartists.org] を参考に、やってみた。
2つのポリゴンで構成されたオブジェクトにそれぞれのポリゴンにUVを設定し、それぞれにマテリアルを設定し、それぞれにテクスチャを設定してます。
![](https://blogimg.goo.ne.jp/user_image/2a/81/e0bc18655340ab6490b3e279b585d74f.jpg?random=e1d43239d368f3c850d043ef1c90e925)
マテリアルは片方にはvideo、もう片方にはvideoBと名付けています。
![](https://blogimg.goo.ne.jp/user_image/38/1f/28dec9aa77d9dd82807afa34c6930b52.jpg?random=57ad5fedc34c429211a566fdad763a47)
この状態で、Logic Editorの内容をこんな感じに設定しています。
ActuatorsのSoundで指定しているファイルは、この後のスクリプトで設定しているムービーファイルの1つと同じファイルです。
![](https://blogimg.goo.ne.jp/user_image/42/a6/375b7db69af7d2ad65a242b73e7ee12b.jpg?random=87a61dfdf25a1bcc118af3fbc207c4c6)
ControllersでPythonを設定して、Modulの内容を video.init_worldやvideo.update としているのは video.pyというファイルにinit_world()やupdate()関数を用意しているからでして、Text Editor上でこんな感じにスクリプトを記述しました。
![](https://blogimg.goo.ne.jp/user_image/45/87/07c49dd5dfa9a9a2c9434e8979c329c8.jpg?random=dc412038b3af5c590c061e20a29c26c1)
import GameLogic as G import VideoTexture as VT def init_world(): ctrl = G.getCurrentController() obj = ctrl.owner if not hasattr(G, 'video0'): matID0 = VT.materialID(obj,"MAvideo") matID1 = VT.materialID(obj,"MAvideoB") G.video0 = VT.Texture(obj, matID0) G.video1 = VT.Texture(obj, matID1) S1 = G.expandPath("//byousoku.mov") S2 = G.expandPath("//byousokuB.mov") G.video0.source = VT.VideoFFmpeg(S1) G.video0.source.repeat = -1 G.video0.source.scale = True G.video0.source.flip = True G.video0.source.play() G.video1.source = VT.VideoFFmpeg(S2) G.video1.source.repeat = -1 G.video1.source.scale = True G.video1.source.flip = True G.video1.source.play() sound = ctrl.actuators["a_sound"] ctrl.activate(sound) G.sound = sound def update(): if hasattr(G, 'video0'): G.video0.refresh(True, G.sound.time) G.video1.refresh(True, G.sound.time)
こんな感じです。
Pキーを押して再生するとこんな感じで無事ムービーが流れました。
たぶん、音の時間で2つのムービーの時間は同期しているんだろうと思います。
![](https://blogimg.goo.ne.jp/user_image/5b/6f/c1abfe99bff8f746711cc53e003db99b.jpg?random=b24e64b6c185229f1e6b3d61796dc48a)
とりあえず、メモでした。
なんでこんな事やってんだろw Blender、わけわかんねぇよ。
<追記>
うがっ、再生したらムービーが途中で止まる…。
追記>
コメント ( 0 )|Trackback ( )
コメント |
コメントはありません。 |
![]() |
コメントを投稿する |
![]() |
ブログ作成者から承認されるまでコメントは反映されません |