VMDSpectrum対応ステージの実験
ふと思付いたミニ動画を作成しようと、ダンスステージを探していました。
探していたのは VMDSpectrum で音に合わせて派手に明滅するステージ。
そうして見つけたのが、くうわんこ様の「ダンスステージ」です。
バックスクリーンがキラキラと輝く素敵なステージです。
まさに探していた通りのステージです。カッコイイ。
さて早速、VMDSpectrumで音データからVMDデータを作成し、読み込ませてみると・・・・
ガーン。めったに見ない制限にかかってしまいました。
このステージのバックスクリーンは、シンメトリ版で173のバンド数から成るので、20000÷173=156フレームしか光らせることができない計算になります。
2フレーム置きに光らせたとしても、231フレームしか動画が作成できないことに。
本当なんでしょうか。
VMDSpectrumでステージを光らせる動画はソコソコ見かけるように思いますので、私が勘違いしている可能性が高いです。
数百フレームごとに動画を分割して出力しているとは、ちょっと信じられないので何かテクニックがあるのかもしれません。
ともかく、この制限にひっかかったことによって思いついた実験です。
このステージはバックのライトの1つ1つが材質に分かれていて、それぞれに設定された材質モーフを動かすことで個別に発光させる仕組みになっています。
こんなかんじ。
これを材質モーフではなく、screen.bmp による背景AVIで発光させることはできないか?というのが実験主旨です。
これならモーションを読み込ませる必要が無いので、登録ポイント数の限界の問題は解消されます。
まず第一段階。
バックスクリーンにある無数のライトをUV展開します。
本当はキッチリと展開する必要もないのですが、将来を考えてそれなりにUV展開することにします。
手作業でやっていると大変なので、スクリプトを書いて展開します。
こんな感じに、敷き詰めて展開します。
そして第二段階。
VMDSpectrumで出力したVMDファイルに基づいて、背景AVIファイルを作成します。
第一段階でUV展開された各ライトと対応するUV位置に、モーションの値に基づいた輝度を出力していきます。
こんな感じのAVIになります。
そしてバックスクリーンをscreen.bmpにUV展開したステージモデルと、背景AVIを読み込んで再生!
あるぇぇ・・・・光ってくれない。
MMDではPMXモデルにscreen.bmpは使えませんので、CVN68Nimitz様のDummyScreenCopyを使用しています。
一応、目論見通り、背景AVIの各部分が対応するバックスクリーンのライトに当たっている・・・ような気がしますが、ライトは薄暗く光るだけです。
AutoLuminousの仕組みはよくわかっていないのですが、うまくすれば光ってくれるかなと思っていたのですが。
ちょっと調べてみないとわからないですが、なんだかうまくいかなさそう。
他にも課題はあるので、実験は失敗かも?
探していたのは VMDSpectrum で音に合わせて派手に明滅するステージ。
そうして見つけたのが、くうわんこ様の「ダンスステージ」です。
バックスクリーンがキラキラと輝く素敵なステージです。
まさに探していた通りのステージです。カッコイイ。
さて早速、VMDSpectrumで音データからVMDデータを作成し、読み込ませてみると・・・・
ガーン。めったに見ない制限にかかってしまいました。
このステージのバックスクリーンは、シンメトリ版で173のバンド数から成るので、20000÷173=156フレームしか光らせることができない計算になります。
2フレーム置きに光らせたとしても、231フレームしか動画が作成できないことに。
本当なんでしょうか。
VMDSpectrumでステージを光らせる動画はソコソコ見かけるように思いますので、私が勘違いしている可能性が高いです。
数百フレームごとに動画を分割して出力しているとは、ちょっと信じられないので何かテクニックがあるのかもしれません。
ともかく、この制限にひっかかったことによって思いついた実験です。
このステージはバックのライトの1つ1つが材質に分かれていて、それぞれに設定された材質モーフを動かすことで個別に発光させる仕組みになっています。
こんなかんじ。
これを材質モーフではなく、screen.bmp による背景AVIで発光させることはできないか?というのが実験主旨です。
これならモーションを読み込ませる必要が無いので、登録ポイント数の限界の問題は解消されます。
まず第一段階。
バックスクリーンにある無数のライトをUV展開します。
本当はキッチリと展開する必要もないのですが、将来を考えてそれなりにUV展開することにします。
手作業でやっていると大変なので、スクリプトを書いて展開します。
こんな感じに、敷き詰めて展開します。
そして第二段階。
VMDSpectrumで出力したVMDファイルに基づいて、背景AVIファイルを作成します。
第一段階でUV展開された各ライトと対応するUV位置に、モーションの値に基づいた輝度を出力していきます。
こんな感じのAVIになります。
そしてバックスクリーンをscreen.bmpにUV展開したステージモデルと、背景AVIを読み込んで再生!
あるぇぇ・・・・光ってくれない。
MMDではPMXモデルにscreen.bmpは使えませんので、CVN68Nimitz様のDummyScreenCopyを使用しています。
一応、目論見通り、背景AVIの各部分が対応するバックスクリーンのライトに当たっている・・・ような気がしますが、ライトは薄暗く光るだけです。
AutoLuminousの仕組みはよくわかっていないのですが、うまくすれば光ってくれるかなと思っていたのですが。
ちょっと調べてみないとわからないですが、なんだかうまくいかなさそう。
他にも課題はあるので、実験は失敗かも?