CriWare Unreal Engine
Plug-ins for CriWare solutions.
読み取り中…
検索中…
一致する文字列を見つけられません
マテリアルを使用したUV値の調整方法

Sofdec ツールの制限

Sofdec2EncWiz ツールなどによって任意の動画ファイルを.usm ファイルにエンコードする際、各コーデックごとに 動画の縦幅 or 横幅に対する制限 があります。

Sofdec.Prime H.264 VP9
8の倍数 4の倍数 2の倍数

これらの制限の対象となった場合は、コーデックの制限に反さぬよう動画の画像サイズが拡張されます。
※ 拡張された領域には黒色 (=0x000000FF) が表示されます。

Sofdec ツールの制限により拡張された領域への対処方法として、マテリアルを使用して拡張された領域を隠す方法があります。

マテリアルを使用して拡張された領域を隠す

拡張前と拡張後の縦幅 or 横幅を比較して実現します。
これらの値は UManaMovie クラスが保持しているFManaVideoTrackInfo 構造体から取得できます。

マテリアルの実装

テクスチャの UV 値を外部から設定できるようにScalar Parameter (UTiling / VTiling) を使用します。 パラメータは参照しているテクスチャの UV 値として使用されます。

外部からのパラメータ設定

UManaMovie オブジェクトからビデオトラック情報取得します。

  • Texture Dimensions = 拡張された動画の画像サイズ
  • Display Dimensions = 動画の表示サイズ

これらの情報から、動画の画像サイズのうち 動画の表示サイズが占めている割合 を求めます。(= Display Dimensions / Texture Dimensions) 上述の「マテリアルの実装」で実装したマテリアルをベースに作成したUMaterialInstanceDynamic オブジェクトでパラメータを設定します。

結果

対処を行わない際は、描画端に黒色が見られます。

対処を行うことで、動画本来の見た目で表示することができます。