前提・実現したいこと
ブラウザ(WebGL)上で、Zoomのバーチャル動画背景を作成するアプリを開発しようとしています。
以下のURL先に開発途中のアプリを掲載していますが、ご確認して頂かなくても問題ありません。
https://aguroshou.github.io/ZoomVirtualBackgroundMovieMaker/
Unity上の画面を録画することによって動画を作成しています。
Unity上に表示している背景の動画をVideoPlayerで再生しているのですが、再生速度が一定ではなくて時々フレームをスキップされてしまいます。
このVideo Playerで再生する動画を、Update関数で1回呼ばれるごとに1フレームだけ固定して進ませることが目標です。
発生している問題・エラーメッセージ
Video Player内のSkip On Dropという項目をFalseに変更することで、目標であるUpdate関数で1回呼ばれるごとに1フレームだけ固定して進ませることが実現できるのですが、Skip On Dropという項目はUnity Editor上のInspectorでしか変更ができず、プログラム上やWebGLに出力したアプリ上でFalseに変更することができませんでした。
試したこと
https://forum.unity.com/threads/videoplayer-cansetskipondrop-purpose.521395/
こちらを参考に、VideoPlayer.Prepare()やcanSetSkiponDropの設定などが必要だと分かり、適当なプログラムで試してみたのですが、うまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
Video Playerで再生する動画を、Update関数で1回呼ばれるごとに1フレームだけ固定して進ませることが目標なので、別の方法でできるのであれば、そちらの方法でも構いません。
1フレームごとに進ませるといった方法も簡単に調査してみたのですが、あまりうまくいきそうになかったので、現段階では保留しています。
Unity2020.2を使用しています。
なにか不足している情報などありましたら、ぜひお伝えしていただけると助かります。
追記
こちらのURLに動画を1フレームずつ動かすプログラムがありました。
このプログラムでは、1フレームを動かす処理は重いようで、連続して1フレームを動かそうとすると、処理が間に合わず動画が固まってしまう不具合がありました。
もし1フレームずつ動かした際に、動画の読み込みが完了するまでUpdate関数の更新を待つものがありましたら、ぜひ教えていただけると助かります。
https://answers.unity.com/questions/1414917/unity-videoplayer-play-frame-by-frame.html
あなたの回答
tips
プレビュー